stringtranslate.com

Modelado específico del dominio

El modelado específico de dominio ( DSM ) es una metodología de ingeniería de software para diseñar y desarrollar sistemas, como software de computadora . Implica el uso sistemático de un lenguaje específico de dominio para representar las diversas facetas de un sistema.

Los lenguajes de modelado específicos de dominio tienden a soportar abstracciones de mayor nivel que los lenguajes de modelado de propósito general , por lo que requieren menos esfuerzo y menos detalles de bajo nivel para especificar un sistema determinado.

Descripción general

El modelado específico de dominio a menudo también incluye la idea de generación de código : automatizar la creación de código fuente ejecutable directamente desde los modelos de lenguaje específico de dominio. Al estar libre de la creación y el mantenimiento manual del código fuente, el lenguaje específico de dominio puede mejorar significativamente la productividad del desarrollador. [1] La confiabilidad de la generación automática en comparación con la codificación manual también reducirá la cantidad de defectos en los programas resultantes, mejorando así la calidad.

El lenguaje específico de dominio difiere de los intentos anteriores de generación de código en las herramientas CASE de la década de 1980 o las herramientas UML de la década de 1990. En ambos, los generadores de código y los lenguajes de modelado fueron creados por proveedores de herramientas. [ cita requerida ] Si bien es posible que un proveedor de herramientas cree un lenguaje y generadores específicos de dominio, es más normal que el lenguaje específico de dominio ocurra dentro de una organización. Uno o unos pocos desarrolladores expertos crean el lenguaje de modelado y los generadores, y el resto de los desarrolladores los usan.

Tener el lenguaje de modelado y el generador construidos por la organización que los utilizará permite un ajuste perfecto con su dominio exacto y en respuesta a los cambios en el dominio.

Los lenguajes específicos de dominio generalmente pueden cubrir una variedad de niveles de abstracción para un dominio en particular. Por ejemplo, un lenguaje de modelado específico de dominio para teléfonos móviles podría permitir a los usuarios especificar abstracciones de alto nivel para la interfaz de usuario , así como abstracciones de nivel inferior para almacenar datos como números de teléfono o configuraciones. De manera similar, un lenguaje de modelado específico de dominio para servicios financieros podría permitir a los usuarios especificar abstracciones de alto nivel para clientes, así como abstracciones de nivel inferior para implementar algoritmos de negociación de acciones y bonos.

Temas

Definición de lenguajes específicos de dominio

Para definir un lenguaje, se necesita un lenguaje en el que escribir la definición. El lenguaje de un modelo se suele llamar metamodelo , por lo que el lenguaje para definir un lenguaje de modelado es un metametamodelo. Los metametamodelos se pueden dividir en dos grupos: los que se derivan de lenguajes existentes o son personalizaciones de estos, y los que se han desarrollado específicamente como metametamodelos.

Los meta-metamodelos derivados incluyen diagramas de relación de entidades , lenguajes formales , forma Backus-Naur extendida (EBNF), lenguajes de ontología , esquemas XML y Meta-Object Facility (MOF). Las fortalezas de estos lenguajes tienden a estar en la familiaridad y estandarización del lenguaje original.

El espíritu del modelado de dominios específicos favorece la creación de un nuevo lenguaje para una tarea específica, por lo que no sorprende que haya nuevos lenguajes diseñados como meta-metamodelos. La familia de lenguajes más utilizada es la de OPRR, [2] [3] GOPRR, [4] y GOPPRR, que se centran en dar soporte a las cosas que se encuentran en los lenguajes de modelado con el mínimo esfuerzo.

Soporte de herramientas para lenguajes específicos del dominio

Muchos lenguajes de modelado de propósito general ya cuentan con herramientas de soporte disponibles en forma de herramientas CASE . Los lenguajes de dominio específico tienden a tener un tamaño de mercado demasiado pequeño para respaldar la construcción de una herramienta CASE a medida desde cero. En cambio, la mayor parte del soporte de herramientas para lenguajes de dominio específico se construye sobre la base de marcos de lenguaje de dominio específico existentes o mediante entornos de lenguaje de dominio específico.

Un entorno de lenguaje específico de dominio puede considerarse como una herramienta de metamodelado, es decir, una herramienta de modelado utilizada para definir una herramienta de modelado o una herramienta CASE. La herramienta resultante puede funcionar dentro del entorno de lenguaje específico de dominio o, con menos frecuencia, puede producirse como un programa independiente. En el caso más común, el entorno de lenguaje específico de dominio admite una capa adicional de abstracción en comparación con una herramienta CASE tradicional.

El uso de un entorno de lenguaje específico de dominio puede reducir significativamente el costo de obtener soporte de herramientas para un lenguaje específico de dominio, ya que un entorno de lenguaje específico de dominio bien diseñado automatizará la creación de partes del programa que son costosas de construir desde cero, como editores, navegadores y componentes específicos de dominio. El experto en el dominio solo necesita especificar las reglas y construcciones específicas del dominio, y el entorno de lenguaje específico de dominio proporciona una herramienta de modelado adaptada al dominio de destino.

La mayoría de los lenguajes específicos de dominio existentes se desarrollan con entornos de lenguajes específicos de dominio, ya sean comerciales como MetaEdit+ o Actifsource , de código abierto como GEMS o académicos como GME . La creciente popularidad de los lenguajes específicos de dominio ha llevado a que se agreguen marcos de lenguajes específicos de dominio a los IDE existentes, por ejemplo, Eclipse Modeling Project (EMP) con EMF y GMF , o en las herramientas DSL de Microsoft para fábricas de software .

Lenguaje específico de dominio y UML

El lenguaje de modelado unificado (UML) es un lenguaje de modelado de propósito general para sistemas con uso intensivo de software que está diseñado para soportar principalmente la programación orientada a objetos . En consecuencia, a diferencia de los lenguajes de dominio específico, UML se utiliza para una amplia variedad de propósitos en una amplia gama de dominios. Las primitivas que ofrece UML son las de la programación orientada a objetos, mientras que los lenguajes de dominio específico ofrecen primitivas cuya semántica es familiar para todos los profesionales de ese dominio. Por ejemplo, en el dominio de la ingeniería automotriz , habrá modelos de software para representar las propiedades de un sistema de frenos antibloqueo , o un volante , etc.

UML incluye un mecanismo de perfil que permite restringirlo y personalizarlo para dominios y plataformas específicos. Los perfiles UML utilizan estereotipos , atributos de estereotipo (conocidos como valores etiquetados antes de UML 2.0) y restricciones para restringir y extender el alcance de UML a un dominio en particular. Quizás el ejemplo más conocido de personalización de UML para un dominio específico es SysML , un lenguaje específico de dominio para ingeniería de sistemas .

UML es una opción popular para diversos enfoques de desarrollo basados ​​en modelos, mediante los cuales artefactos técnicos como código fuente, documentación, pruebas y más se generan algorítmicamente a partir de un modelo de dominio. Por ejemplo, los perfiles de aplicación del estándar de documentos legales Akoma Ntoso se pueden desarrollar mediante la representación de conceptos y ontologías legales en objetos de clase UML. [5]

Véase también

Referencias

  1. ^ Kelly, S. y Tolvanen, J.-P., (2008) Modelado específico de dominio: habilitación de la generación de código completo, John Wiley & Sons, Nueva Jersey. ISBN  978-0-470-03666-2 [1]
  2. ^ RJ Welke. El repositorio CASE: más que otra aplicación de base de datos. En WW Cotterman y JA Senn, editores, Actas del Simposio INTEC de 1988 Análisis y diseño de sistemas: una estrategia de investigación, Atlanta, Georgia, 1988. Universidad Estatal de Georgia. [2]
  3. ^ Smolander, K., (1992) OPRR - Un modelo para modelar métodos de desarrollo de sistemas. En: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Ámsterdam, Países Bajos, págs. 224-239.[3]
  4. ^ Kelly, S., Lyytinen, K. y Rossi, M., "MetaEdit+: Un entorno CASE multiusuario y multiherramienta totalmente configurable", Actas de CAiSE'96, 8.ª conferencia internacional sobre ingeniería avanzada de sistemas de información, Lecture Notes in Computer Science 1080, Springer-Verlag, págs. 1-21, 1996. (en tesis doctoral como 3metools.pdf)
  5. ^ Flatt, Amelie; Langner, Arne; Leps, Olof (2022). Desarrollo basado en modelos de perfiles de aplicaciones Akoma Ntoso: un marco conceptual para la generación basada en modelos de subesquemas XML (1.ª ed.). Heidelberg: Sprinter Nature. ISBN 978-3-031-14131-7.

Enlaces externos