Está en la página 1de 4

Lenguajes de dominio específico (DSL: domain-specific

languages)

Los lenguajes de dominio específico (DSL) permiten describir sistemas desde un nivel
muy alto de abstracción, utilizando una terminología y una notación muy próxima a la de
los expertos del dominio.

De hecho, un mismo sistema puede ser descrito con diversos DSL adecuados a los
diferentes tipos de expertos. Esta característica permite que sea el propio experto el que
modele su sistema; más adelante, esta descripción deberá ser procesable
automáticamente

A menudo se traduce domain-specific language por ‘lenguaje específico de dominio’.


Consideramos más acertado utilizar ‘lenguaje de dominio específico’, ya

que un DSL es un lenguaje especialmente adecuado para representar un dominio de


aplicación muy concreto.

Un DSL se compone de:

• Una sintaxisabstracta, que contiene los conceptos del lenguaje, el vocabulario, las
relaciones entre ellos y las reglas que permiten construir sentencias válidas.

• Una sintaxisconcreta, que describe la notación permitida para construir

modelos, y que puede ser visual o textual.

• Una semántica, que asocia significado al modelo y a sus elementos, y que

puede ser denotacional25, operacional26 o axiomática27

.
Línea de producto de software

“Un conjunto de sistemas software que comparten un conjunto común y gestionado de


características (features) que satisfacen las necesidades específicas de un dominio o
segmento particular de mercado, y que se desarrollan a partir de un sistema común de
activos base (core assets) de una manera preestablecida”.

De hecho, la idea de las LPS consiste en la construcción de productos software a partir de


la reutilización de los mencionados core assets.

Además El enfoque de reutilización en este contexto es más planificado que oportunista ,


de manera que se reutilizan la mayor parte de los activos base en todos los productos de
la línea.
Si se desea, por ejemplo, desarrollar un sistema cliente-servidor que permita

a varias personas jugar a juegos de mesa de manera remota (ajedrez, damas,

parchís, trivial, etcétera), la empresa de desarrollo puede aplicar un enfoque

de LPS e identificar los siguientes core assets, que estarán presentes en todos o

casi todos los productos que se implementen:

1)Mover ficha. En todos estos juegos se mueve una ficha en el turno del

jugador.

2)Gestióndelturno. En todos los juegos mencionados se sigue una cierta

política de asignación del turno al siguiente jugador, que varía en función del

juego28

3)Lanzamientodedados. Algunos de los juegos (parchís, trivial y otros) necesitan que el


jugador lance los dados para mover.

4)Permanecerenlasaladeespera. Para poder comenzar una partida se necesitan


exactamente dos jugadores en ajedrez y damas, y dos o más de dos en

los restantes.

5)Incorporaciónaunapartida. Para que una partida pueda comenzar, es

preciso que los jugadores se incorporen a ella.

6)Sistemaderegistro. Dado que se trata de un sistema cliente-servidor, es

probable que se exija a todos los jugadores estar previamente registrados en

el sistema.

7)Sistemadeidentificación. Para incorporarse a una partida es necesario estar registrado y


haberse identificado mediante, por ejemplo, un sistema basado en un nombre de usuario
y una contraseña.

8)Comer. En algunos de los juegos se pueden comer fichas del contrincante:

en ajedrez y damas, la ficha comida desaparece; en el parchís, la ficha comida

vuelve a la casilla de origen; en el trivial no se comen fichas


un dominio es un conjunto de conceptos y términos relacionados con un área de
conocimiento determinada (por ejemplo: hospitales, gasolineras, universidades) y que
entienden las personas involucradas en dicha área (médicos, gasolineros, profesores

y alumnos). Además, la identificación y estructuración de los conceptos que

pertenecen al dominio debe orientarse hacia la construcción de sistemas de

software para esa área y deben maximizar la satisfacción de los requisitos de

las personas involucradas.

Programación generativa

La programación generativa aparece en 1998 para resolver algunos de los problemas que
presenta el desarrollo tradicional de software en cuanto a reutilización, adaptabilidad,
gestión de la complejidad creciente y rendimiento.

La programación generativa trata del diseño e implementación de software reutilizable


para generar familias de sistemas de un dominio, y no sistemas independientes.

Programación genérica

La programación genérica se dedica más al desarrollo de algoritmos que al diseño de las


estructuras de datos sobre las que aquellos operan.

La idea de esta forma de programar pretende generalizar las funciones utilizadas para
que puedan usarse en más de una ocasión.

Fábricas de software:

Es un centro de trabajo dedicado al desarrollo de sofware que aborda dicha actividad


como un proceso indrustrial, definible, repetible y medible en un entorno de alta
producctividad.

Las fábricas de software seleccionan componentes, los ajustan, los adaptan, los amplían
y ensamblan dichos componentes; intentan aprender de otras industrias que encaran
problemas similares y aplican patrones específicos de automatización; vuelven más
rápida, barata y fácil la construcción de aplicaciones y desarrollan productos de software
con rapidez y calidad a través de procesos conocidos, repetibles y gerenciables, y, sobre
todo, mejorables continuamente.
La Ingeniería dirigida por modelos

(IDM) es un paradigma de ingeniería de software, el cual se centra en la creación y


explotación de modelos de dominio (es decir, son representaciones abstractas de los
conocimientos y actividades que rigen un dominio de aplicación particular)

objetivos

aumentar la productividad mediante la maximización de la compatibilidad entre los


sistemas (a través de la reutilización de modelos estandarizados),

simplificar el proceso de diseño (a través de modelos de patrones de diseño que se


repiten en el dominio de aplicación),

Promover la comunicación entre los individuos y equipos que trabajan en el sistema (a


través de una estandarización de la terminología y las mejores prácticas utilizadas en el
dominio de aplicación).

https://www.exabyteinformatica.com/uoc/Informatica/Tecnicas_avanzadas_de_ingenieria_
de_software/Tecnicas_avanzadas_de_ingenieria_de_software_(Modulo_2).pdf

También podría gustarte