UML ejecutable

El lenguaje ejecutable UML ( xtUML o xUML ) es un método de desarrollo de software y un lenguaje de software altamente abstracto. Fue descrito por primera vez en 2002 en el libro "UML ejecutable: una base para la arquitectura basada en modelos". [1] El lenguaje "combina un subconjunto de la notación gráfica UML ( lenguaje de modelado unificado ) con semántica ejecutable y reglas de tiempo". [2] El método UML ejecutable es el sucesor del método Shlaer-Mellor . [3]

Los modelos UML ejecutables "se pueden ejecutar, probar , depurar y medir para determinar su rendimiento", [4] y se pueden compilar en un lenguaje de programación menos abstracto para apuntar a una implementación específica . [5] El UML ejecutable admite la arquitectura basada en modelos (MDA) a través de la especificación de modelos independientes de la plataforma y la compilación de los modelos independientes de la plataforma en modelos específicos de la plataforma . [6] [7]

Descripción general

El UML ejecutable es un nivel de abstracción más alto que los lenguajes de programación de tercera generación . Esto permite a los desarrolladores desarrollar al nivel de abstracción de la aplicación. [8] El UML ejecutable apunta a la separación de preocupaciones . Se supone que esto aumenta la facilidad de reutilización y reduce el costo del desarrollo de software . Esto también permite que los dominios del UML ejecutable sean multiplataforma . Eso significa que no está vinculado a ningún lenguaje de programación, plataforma o tecnología específicos.

El UML ejecutable también permite la traducción de modelos independientes de la plataforma (PIM) a modelos específicos de la plataforma (PSM). El método UML ejecutable permite valorar el modelo como propiedad intelectual , ya que el modelo es una solución completamente ejecutable para el espacio del problema.

Las acciones se especifican en lenguaje de acciones . Esto significa que la generación automática de código de implementación a partir de modelos UML ejecutables se puede generar de forma optimizada.

El UML ejecutable está pensado para servir como código ejecutable y como documentación. Los modelos son una especificación gráfica y ejecutable del espacio del problema que se compila en una implementación de destino . También están pensados ​​para ser legibles por humanos .

Bloques de construcción UML ejecutables

Un sistema se compone de múltiples objetos, conocidos como dominios en términos de UML ejecutable. El UML ejecutable se utiliza para modelar un dominio en el nivel de abstracción de su objeto independientemente de las cuestiones de implementación. El modelo de dominio resultante está representado por los siguientes elementos:

  • El diagrama de dominio proporciona una vista del dominio que se está modelando y las dependencias que tiene en otros dominios.
  • El diagrama de clases define las clases y las asociaciones de clases para el dominio.
  • El diagrama de estados define los estados , eventos y transiciones de estados para una clase o instancia de clase.
  • El lenguaje de acción define las acciones u operaciones que realizan el procesamiento en los elementos del modelo.

Diagrama de dominio

El UML ejecutable requiere la identificación de los dominios (también conocidos como aspectos [9] o preocupaciones ) del sistema. "Cada dominio es un mundo autónomo habitado por entidades conceptuales" [10]. Cada dominio puede modelarse independientemente de los demás dominios del sistema, lo que permite una separación de preocupaciones . A modo de ejemplo, los dominios de un sistema de cajero automático pueden incluir los siguientes:

La separación de preocupaciones permite que cada dominio sea desarrollado y verificado independientemente de los otros dominios del sistema por los respectivos expertos del dominio.

Las conexiones entre dominios se denominan puentes . "Un puente es una dependencia de capas entre dominios". [11] Esto significa que los dominios pueden imponer requisitos a otros dominios. Se recomienda que los puentes sean acordados por los diferentes expertos del dominio.

Un dominio se puede marcar como realizado para indicar que existe y no es necesario modelarlo. Por ejemplo, un dominio de acceso a datos que utiliza una base de datos MySQL se marcaría como realizado.

Diagrama de clases

Las entidades conceptuales, como objetos tangibles, roles, incidentes, interacciones y especificaciones, específicas del dominio que se está modelando se abstraen en clases . Las clases pueden tener atributos y operaciones .

Las relaciones entre estas clases se indicarán mediante asociaciones y generalizaciones . Una asociación puede requerir una mayor abstracción como una clase de asociación .

Las restricciones en el diagrama de clases se pueden escribir tanto en lenguaje de acción como en lenguaje de restricción de objetos (OCL).

El método UML ejecutable limita los elementos UML que se pueden utilizar en un diagrama de clases UML ejecutable.

Un diagrama de clases UML ejecutable tiene como objetivo exponer información sobre el dominio. Un exceso de complejidad en los diagramas de estado es un buen indicador de que el diagrama de clases debe ser rediseñado.

Diagrama de estado

Las clases tienen ciclos de vida que se modelan en UML ejecutable con un diagrama de estado . El diagrama de estado define los estados , las transiciones , los eventos y los procedimientos que definen el comportamiento de una clase.

Cada estado tiene un solo procedimiento que se ejecuta al ingresar a ese estado . Un procedimiento se compone de acciones, que se especifican en un lenguaje de acciones.

Lenguaje de acción

Los modelos de clase y estado por sí solos pueden proporcionar una vista estática del dominio. Para tener un modelo ejecutable, debe haber una manera de crear instancias de clase, establecer asociaciones, realizar operaciones sobre atributos, invocar eventos de estado, etc. En UML ejecutable, esto se hace utilizando un lenguaje de acción que se ajusta a la semántica de acción de UML.

La semántica de acción se agregó a la especificación UML en 2001. La RFP de semántica de acción se basó en trabajos previos en lenguajes de acción que respaldaban el método Shlaer-Mellor . Los lenguajes de acción existentes son Object Action Language (OAL), Shlaer-Mellor Action Language (SMALL), Action Specification Language (ASL), Model Action Specification Language (MASL), [12] That Action Language (TALL), Starr's Concise Relational Action Language (SCRALL), Platform-independent Action Language (PAL) y PathMATE Action Language (PAL). SCRALL es el único que es un lenguaje de acción gráfico.

Prueba y ejecución de modelos

Una vez que se modela un dominio, se puede probar independientemente de la implementación de destino mediante la ejecución del modelo. Cada dominio se puede verificar y validar independientemente de cualquier otro dominio. Esto permite que los errores detectados se asocien con el dominio y sean independientes de otros problemas del sistema.

La verificación implicará cosas como la revisión humana de los modelos, realizada por expertos en el dominio relevante, y la verificación automática de la semántica de Executable UML, es decir, verificar que el modelo Executable UML cumple con el metamodelo Executable UML .

La validación normalmente implica el uso de una herramienta UML ejecutable para ejecutar el modelo. La ejecución puede ocurrir antes o después de la compilación del modelo.

Recopilación de modelos

Para poder ejecutar la implementación de destino , el modelo de dominio debe traducirse a una forma menos abstracta . Este proceso de traducción se denomina compilación de modelos . La mayoría de los compiladores de modelos apuntan a un lenguaje de programación conocido , ya que esto permite la reutilización de tecnologías de compilación existentes .

La optimización de los modelos de dominio por razones de implementación de destino reducirá el nivel de abstracción , afectará negativamente la independencia del dominio y aumentará el costo de reutilización . En UML ejecutable, las optimizaciones las realiza el compilador de modelos de forma automática o mediante marcado . El marcado permite que elementos específicos del modelo se destinen a implementaciones específicas de nivel inferior y permite tomar decisiones arquitectónicas más amplias, como especificar que las colecciones de objetos se deben implementar como una lista doblemente enlazada .

En términos de MDA , el compilador de modelos crea el PSM . La separación entre el PIM y el PSM en el UML ejecutable deshabilita la capacidad de realizar ingeniería de ida y vuelta del modelo y evita modificaciones al PSM . [13]

Aspectos clave del UML ejecutable

El UML ejecutable define la semántica de ejecución para un subconjunto del UML. Los aspectos clave del subconjunto del UML ejecutable incluyen lo siguiente:

  • No hay soporte para construcciones específicas de implementación, como agregación y composición. [14]
  • Las generalizaciones siempre se anotan como {completas, disjuntas}.
  • Las asociaciones entre clases siempre tienen nombre, tienen frases verbales en ambos extremos que especifican los roles y tienen multiplicidad especificada en ambos extremos.
  • Las multiplicidades en los extremos de la asociación están restringidas a 0..1 (cero a uno), * (cero a muchos), 1 (exactamente uno) o 1..* (uno a muchos).
  • Los tipos de datos están restringidos a los siguientes tipos de datos básicos: booleano, cadena, entero, real, fecha, marca de tiempo y arbitrary_id, o uno de los siguientes tipos de datos específicos del dominio: numérico, cadena, enumerado y compuesto. Los tipos de datos numéricos y de cadena específicos del dominio pueden representar subconjuntos de los tipos de datos básicos. El tipo de datos compuesto específico del dominio siempre debe tratarse como una sola unidad dentro del dominio. Por ejemplo, se podría declarar un tipo de datos compuesto MailingAddress , pero no se podría extraer de él información sobre la ciudad.
  • Las restricciones en los modelos UML ejecutables se pueden representar como lenguaje de restricción de objetos (OCL) o lenguaje de acción.

fUML y ALF

El Object Management Group ha estandarizado el UML Fundacional (fUML) , que fue fuertemente influenciado por el UML Ejecutable.

Action Language for Foundational UML (ALF), [15] es una especificación de lenguaje de acción estándar del Object Management Group .

Véase también

Publicaciones

  • Gerry Boyd (2003) "UML ejecutable: diagramas para el futuro". publicado en devx.com , 5 de febrero de 2003.
  • Shayne Flint y Clive Boughton (2003) "UML ejecutable/traducible e ingeniería de sistemas". Enfoques prácticos para sistemas complejos (SETE 2003) .
  • Shayne Flint, Henry Gardner y Clive Boughton (2004). "UML ejecutable/traducible en la enseñanza de la informática". Actas de la Sexta Conferencia Australasiana sobre Educación en Informática, volumen 30. Australian Computer Society, Inc.
  • HS Lahman (2011). Desarrollo basado en modelos: aplicaciones . Addison-Wesley Professional. ISBN 0-321-77407-8.
  • Stephen J. Mellor y Marc Balcer (2002). UML ejecutable: una base para la arquitectura basada en modelos . Addison Wesley. ISBN 0-201-74804-5.Capítulo 1 en línea
  • UML ejecutable y traducible
  • Stephen J. Mellor (2004), Introducción a UML ejecutable y traducible
  • Stephen J. Mellor (2004), Un marco para el modelado orientado a aspectos
  • Chris Raistrick y otros (2004). Arquitectura basada en modelos con UML ejecutable . Cambridge University Press. ISBN 0-521-53771-1.
  • Leon Starr (2002). UML ejecutable: cómo construir modelos de clases . Prentice-Hall. ISBN 0-13-067479-6.

Referencias

  1. ^ Mellor y Balcer 2002
  2. ^ Starr 2002, pág. 3.
  3. ^ G. O'Keefe (2006) "Semántica de lógica dinámica para la consistencia UML" en: Model-Driven Architecture - Foundations and Applications: Second European Conference, ECMDA-FA 2006, Bilbao, España, 10-13 de julio de 2006, Actas . Arend Rensink eds. p. 124
  4. ^ Starr 2002, pág. 3.
  5. ^ Mellor y Balcer 2002, sección 1.4.
  6. ^ Mellor y Balcer 2002, sección 1.5.
  7. ^ Raistrick et al. 2004, secciones 2.3.3 y 2.3.4.
  8. ^ Mellor y Balcer 2002, sección 1.1.
  9. ^ Mellor y Balcer 2002, sección 3.4.
  10. ^ Mellor y Balcer 2002, pág. 14.
  11. ^ Mellor y Balcer 2002, pág. 35.
  12. ^ "MASL es un lenguaje de acción y modelado estructural del dialecto Shlaer-Mellor: xtuml/masl". xtUML. 27 de diciembre de 2018. Consultado el 26 de octubre de 2019 .
  13. ^ Mellor y Balcer 2002, capítulo 9.
  14. ^ Mellor y Balcer 2002, pág. xxx.
  15. ^ "Lenguaje de acción para UML™ fundacional (ALF™)". www.omg.org . Consultado el 21 de diciembre de 2016 .
  • http://executableumlbook.com El sitio web oficial de "UML ejecutable: una base para la arquitectura basada en modelos".
Obtenido de "https://es.wikipedia.org/w/index.php?title=UML_ejecutable&oldid=1245640295"