Articulo de referencia

UML ejecutable

UML ejecutable ( xtUML o xUML ) es tanto un método de desarrollo de software como un lenguaje de software altamente abstracto. Fue descrito por primera vez en 2002 en el libro "...

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

Los modelos UML ejecutables "pueden ejecutarse, probarse , depurarse y medirse en cuanto a su rendimiento" [ 4 ] y pueden compilarse en un lenguaje de programación menos abstracto para apuntar a una implementación específica [ 5 ] . El UML ejecutable admite la arquitectura dirigida por modelos (MDA) mediante la especificación de modelos independientes de la plataforma y la compilación de estos modelos en modelos específicos de la plataforma [ 6 ] [ 7 ] .

Descripción general

UML ejecutable ofrece un nivel de abstracción superior al de los lenguajes de programación de tercera generación . Esto permite a los desarrolladores programar a nivel de abstracción de la aplicación. [ 8 ] UML ejecutable busca la separación de responsabilidades . Se supone que esto facilita la reutilización y reduce el costo del desarrollo de software . Además, permite que los dominios de UML ejecutable sean multiplataforma . Esto significa que no está vinculado a ningún lenguaje de programación, plataforma o tecnología específicos.

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

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

El UML ejecutable está diseñado 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 diseñados para ser legibles por humanos .

Bloques de construcción UML ejecutables

Un sistema se compone de múltiples temas, conocidos como dominios en términos de UML ejecutable. UML ejecutable se utiliza para modelar un dominio al nivel de abstracción de su tema, independientemente de las consideraciones de implementación. El modelo de dominio resultante se representa mediante los siguientes elementos:

  • El diagrama de dominio proporciona una vista del dominio que se está modelando y las dependencias que tiene con otros dominios.
  • El diagrama de clases define las clases y las asociaciones de clases para el dominio.
  • El diagrama de máquina de estados define los estados , los eventos y las transiciones de estado para una clase o instancia de clase.
  • El lenguaje de acciones define las acciones u operaciones que realizan el procesamiento de 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 . Como ejemplo, los dominios para un sistema de cajero automático pueden incluir los siguientes:

La separación de responsabilidades permite que cada dominio sea desarrollado y verificado independientemente de los demás dominios del sistema por los expertos en cada dominio correspondiente.

Las conexiones entre dominios se denominan puentes . «Un puente es una dependencia en 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 de los dominios.

Un dominio puede marcarse como realizado para indicar que existe y no necesita ser modelado. 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 cosas 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 abstracción adicional como Clase de Asociación .

Las restricciones en el diagrama de clases se pueden escribir tanto en lenguaje de acción como en lenguaje de restricciones 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. Una complejidad excesiva en los diagramas de estados es un buen indicador de que el diagrama de clases debe revisarse.

Diagrama de estados

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

Cada estado tiene un único procedimiento que se ejecuta al entrar en dicho 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, solo proporcionan una vista estática del dominio. Para tener un modelo ejecutable, debe existir una forma de crear instancias de clase, establecer asociaciones, realizar operaciones con atributos, invocar eventos de estado, etc. En UML ejecutable, esto se logra mediante un lenguaje de acciones que se ajusta a la semántica de acciones de UML.

La semántica de acciones se agregó a la especificación UML en 2001. La RFP de semántica de acciones se basó en trabajos previos en lenguajes de acciones que soportan el método Shlaer-Mellor . Los lenguajes de acciones 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 acciones gráfico.

Pruebas y ejecución de modelos

Una vez modelado 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 de forma independiente de cualquier otro. Esto permite asociar los errores detectados con el dominio en cuestión, independientemente de otros aspectos del sistema.

La verificación incluirá aspectos como la revisión humana de los modelos, realizada por expertos en el dominio correspondiente, y la comprobación automatizada de la semántica UML ejecutable; es decir, comprobar que el modelo UML ejecutable cumple con el metamodelo UML ejecutable .

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

Compilación de modelos

Para que el modelo de dominio pueda ejecutarse en la implementación de destino , 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 se basan en un lenguaje de programación conocido , ya que esto permite reutilizar las tecnologías de compilación existentes .

Optimizar los modelos de dominio para la 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, el compilador del modelo realiza las optimizaciones automáticamente o mediante marcado . El marcado permite que elementos específicos del modelo se dirijan a implementaciones de nivel inferior específicas y permite tomar decisiones arquitectónicas más amplias, como especificar que las colecciones de objetos se implementen como una lista doblemente enlazada .

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

Aspectos clave del UML ejecutable

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

  • No se admite la implementación de construcciones específicas, como la agregación y la composición. [ 14 ]
  • Las generalizaciones siempre se notan como {completas, disjuntas}.
  • Las asociaciones entre clases siempre tienen nombre, incluyen frases verbales en ambos extremos que especifican las funciones y tienen la multiplicidad especificada en ambos extremos.
  • Las multiplicidades en los extremos de la asociación están restringidas a 0..1 (de cero a uno), * (de cero a muchos), 1 (exactamente uno) o 1..* (de uno a muchos).
  • Los tipos de datos se limitan a los siguientes tipos básicos: booleano, cadena, entero, real, fecha, marca de tiempo e ID arbitrario, o a 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 dato compuesto específico del dominio siempre debe tratarse como una sola unidad dentro del dominio. Por ejemplo, se podría declarar un tipo de dato compuesto MailingAddress , pero no se podría extraer información de la ciudad.
  • Las restricciones en los modelos UML ejecutables pueden representarse como lenguaje de restricciones de objetos (OCL) o como lenguaje de acciones.

fUML y ALF

El Object Management Group ha estandarizado el UML fundamental (fUML) , que estuvo 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 Australiana 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 dirigida por 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; et  al. (2004). Arquitectura dirigida por 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: Arquitectura dirigida por modelos: fundamentos y aplicaciones: Segunda Conferencia Europea, ECMDA-FA 2006, Bilbao, España, 10-13 de julio de 2006, Actas . Arend Rensink eds. pág. 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 de modelado estructural del dialecto de 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™ fundamental (ALF™)" . www.omg.org . Consultado el 21 de diciembre de 2016 .
  • http://executableumlbook.com El sitio web oficial de "Executable UML: Una base para la arquitectura basada en modelos".