Lenguaje de modelado unificado

Herramienta de modelado de diseño de sistemas de software

Logotipo UML

El lenguaje de modelado unificado ( UML ) es un lenguaje de modelado visual de propósito general que tiene como objetivo proporcionar una forma estándar de visualizar el diseño de un sistema. [1]

UML proporciona una notación estándar para muchos tipos de diagramas que pueden dividirse aproximadamente en tres grupos principales: diagramas de comportamiento, diagramas de interacción y diagramas de estructura.

La creación de UML fue motivada originalmente por el deseo de estandarizar los distintos sistemas de notación y enfoques del diseño de software. Fue desarrollado en Rational Software entre 1994 y 1995, y su desarrollo posterior estuvo a cargo de ellos hasta 1996. [2]

En 1997, el Object Management Group (OMG) adoptó el UML como estándar y desde entonces lo ha gestionado esta organización. En 2005, la Organización Internacional de Normalización (ISO) y la Comisión Electrotécnica Internacional (IEC) publicaron también el UML como estándar ISO/IEC 19501. [3] Desde entonces, el estándar se ha revisado periódicamente para incluir la última versión del UML. [4]

En ingeniería de software, la mayoría de los profesionales no utilizan UML, sino que producen diagramas informales dibujados a mano; sin embargo, estos diagramas a menudo incluyen elementos de UML. [5] : 536 

Historia

Historia de los métodos y notación orientados a objetos

Antes de UML 1.0

UML ha evolucionado desde la segunda mitad de la década de 1990 y tiene sus raíces en los métodos de programación orientada a objetos desarrollados a fines de la década de 1980 y principios de la de 1990. La línea de tiempo (ver imagen) muestra los aspectos más destacados de la historia de los métodos y la notación de modelado orientados a objetos.

Se basa originalmente en las notaciones del método Booch , la técnica de modelado de objetos (OMT) y la ingeniería de software orientada a objetos (OOSE), que ha integrado en un solo lenguaje. [6]

En 1994, Rational Software Corporation contrató a James Rumbaugh , de General Electric, y después de eso, la compañía se convirtió en la fuente de dos de los enfoques de modelado orientado a objetos más populares de la época: [7] la técnica de modelado de objetos (OMT) de Rumbaugh y el método de Grady Booch . Pronto recibieron la ayuda de Ivar Jacobson , el creador del método de ingeniería de software orientado a objetos (OOSE), quien se unió a ellos en Rational en 1995. [2]

UML 1.x

Bajo el liderazgo técnico de estos tres (Rumbaugh, Jacobson y Booch), en 1996 se organizó un consorcio llamado UML Partners para completar la especificación del Lenguaje de Modelado Unificado (UML) y proponerla al Object Management Group (OMG) para su estandarización. La asociación también incluía a otras partes interesadas (por ejemplo, HP , DEC , IBM y Microsoft ). El borrador de UML 1.0 de UML Partners fue propuesto al OMG en enero de 1997 por el consorcio. Durante el mismo mes, los UML Partners formaron un grupo, diseñado para definir el significado exacto de las construcciones del lenguaje, presidido por Cris Kobryn y administrado por Ed Eykholt, para finalizar la especificación e integrarla con otros esfuerzos de estandarización. El resultado de este trabajo, UML 1.1, se presentó al OMG en agosto de 1997 y fue adoptado por el OMG en noviembre de 1997. [2] [8]

Después del primer lanzamiento, se formó un grupo de trabajo [2] para mejorar el lenguaje, que lanzó varias revisiones menores: 1.3, 1.4 y 1.5. [9]

Se ha señalado que las normas que produjo (así como la norma original) son ambiguas e inconsistentes. [10]

Notación de cardinalidad

Al igual que con los diagramas de base de datos Chen, Bachman e ISO ER , los modelos de clase se especifican para utilizar cardinalidades de "mirar al otro lado" , aunque varios autores ( Merise , [11] Elmasri y Navathe, [12] entre otros [13] ) prefieren el mismo lado o "mirar aquí" para los roles y las cardinalidades mínimas y máximas. Investigadores recientes (Feinerer [14] y Dullea et al. [15] ) han demostrado que la técnica de "mirar al otro lado" utilizada por los diagramas UML y ER es menos efectiva y menos coherente cuando se aplica a relaciones n -arias de orden estrictamente mayor que 2.

Feinerer dice: "Los problemas surgen si operamos bajo la semántica de look-across que se utiliza para las asociaciones UML. Hartmann [16] investiga esta situación y muestra cómo y por qué fallan diferentes transformaciones", y: "Como veremos en las próximas páginas, la interpretación de look-across introduce varias dificultades que impiden la extensión de mecanismos simples de asociaciones binarias a n -arias".

UML2

La revisión principal de UML 2.0 reemplazó a la versión 1.5 en 2005, que se desarrolló con un consorcio ampliado para mejorar aún más el lenguaje y reflejar nuevas experiencias en el uso de sus características. [17]

Aunque UML 2.1 nunca fue publicado como una especificación formal, las versiones 2.1.1 y 2.1.2 aparecieron en 2007, seguidas por UML 2.2 en febrero de 2009. UML 2.3 fue lanzado formalmente en mayo de 2010. [18] UML 2.4.1 fue lanzado formalmente en agosto de 2011. [18] UML 2.5 fue lanzado en octubre de 2012 como una versión "en progreso" y fue lanzado oficialmente en junio de 2015. [18] La versión formal 2.5.1 fue adoptada en diciembre de 2017. [1]

La especificación UML 2.x consta de cuatro partes:

  • La superestructura que define la notación y la semántica de los diagramas y sus elementos modelo.
  • La Infraestructura que define el metamodelo central sobre el que se basa la Superestructura
  • El lenguaje de restricción de objetos (OCL) para definir reglas para elementos del modelo
  • El intercambio de diagramas UML que define cómo se intercambian los diseños de diagramas UML 2

Hasta UML 2.4.1, las últimas versiones de estos estándares eran: [19]

  • Superestructura UML versión 2.4.1
  • Infraestructura UML versión 2.4.1
  • Versión 2.3.1 de OCL
  • Intercambio de diagramas UML versión 1.0.

Desde la versión 2.5, la Especificación UML se ha simplificado (sin Superestructura ni Infraestructura), y las últimas versiones de estos estándares son ahora: [20]

  • Especificación UML 2.5.1
  • Versión 2.4 de OCL

El grupo de trabajo de revisión continúa actualizándolo y mejorándolo, y resuelve cualquier problema con el lenguaje. [21]

Diseño

Un ejemplo de componentes en un sistema de reserva de viajes

UML ofrece una manera de visualizar los planos arquitectónicos de un sistema en un diagrama, incluyendo elementos como: [6]

Aunque originalmente estaba pensado para la documentación de diseño orientado a objetos, UML se ha extendido a un conjunto más amplio de documentación de diseño (como se indica más arriba) [22] y se ha considerado útil en muchos contextos. [23]

Métodos de desarrollo de software

UML no es un método de desarrollo en sí mismo; [24] sin embargo, fue diseñado para ser compatible con los principales métodos de desarrollo de software orientado a objetos de su tiempo, por ejemplo, OMT , el método Booch , Objectory y especialmente RUP, con el que originalmente estaba destinado a usarse cuando comenzó el trabajo en Rational Software.

Modelado

Es importante distinguir entre el modelo UML y el conjunto de diagramas de un sistema. Un diagrama es una representación gráfica parcial del modelo de un sistema. El conjunto de diagramas no tiene por qué cubrir por completo el modelo y la eliminación de un diagrama no modifica el modelo. El modelo también puede contener documentación que guíe los elementos y diagramas del modelo (como casos de uso escritos).

Los diagramas UML representan dos vistas diferentes de un modelo de sistema: [25]

Los modelos UML se pueden intercambiar entre herramientas UML utilizando el formato de intercambio de metadatos XML (XMI).

En UML, una de las herramientas clave para el modelado de comportamiento es el modelo de casos de uso, creado por OOSE . Los casos de uso son una forma de especificar los usos requeridos de un sistema. Por lo general, se utilizan para capturar los requisitos de un sistema, es decir, lo que se supone que debe hacer un sistema. [26]

Diagramas

UML 2 tiene muchos tipos de diagramas, que se dividen en dos categorías. [6] Algunos tipos representan información estructural y el resto representan tipos generales de comportamiento , incluidos algunos que representan diferentes aspectos de las interacciones . Estos diagramas se pueden categorizar jerárquicamente como se muestra en el siguiente diagrama de clases: [6]

Jerarquía de diagramas UML 2.2, mostrada como un diagrama de clases
Jerarquía de diagramas UML 2.2, mostrada como un diagrama de clases

Todos estos diagramas pueden contener comentarios o notas que expliquen el uso, la restricción o la intención.

Diagramas de estructura

Los diagramas de estructura representan los aspectos estáticos del sistema. Destacan los elementos que deben estar presentes en el sistema que se está modelando. Dado que los diagramas de estructura representan la estructura, se utilizan ampliamente para documentar la arquitectura de software de los sistemas de software. Por ejemplo, el diagrama de componentes describe cómo se divide un sistema de software en componentes y muestra las dependencias entre estos componentes.

Diagramas de comportamiento

Los diagramas de comportamiento representan el aspecto dinámico del sistema. Hacen hincapié en lo que debe suceder en el sistema que se está modelando. Dado que los diagramas de comportamiento ilustran el comportamiento de un sistema, se utilizan ampliamente para describir la funcionalidad de los sistemas de software. Como ejemplo, el diagrama de actividades describe las actividades comerciales y operativas paso a paso de los componentes de un sistema.

Representación visual: Usuario del personal → Sistema de quejas: Enviar queja Sistema de quejas → Sistema de RR.HH.: Reenviar queja Sistema de RR.HH. → Departamento: Asignar queja Departamento → Sistema de quejas: Actualizar resolución Sistema de quejas → Sistema de retroalimentación: Solicitar retroalimentación Sistema de retroalimentación → Usuario del personal: Proporcionar retroalimentación Usuario del personal → Sistema de retroalimentación: Enviar retroalimentación Esta descripción se puede utilizar para dibujar un diagrama de secuencia utilizando herramientas como Lucidchart, Draw.io o cualquier software de diagrama UML. El diagrama tendría actores en el lado izquierdo, con flechas que indican la secuencia de acciones e interacciones entre sistemas y actores como se describe en Diagrama de secuencia drow Los diagramas de secuencia deben dibujarse para cada caso de uso para mostrar cómo los diferentes objetos interactúan entre sí para lograr la funcionalidad del caso de uso.

Artefactos

Componentes que manifiestan artefactos

En UML, un artefacto [1] es la "especificación de una pieza física de información que se utiliza o produce mediante un proceso de desarrollo de software , o mediante la implementación y operación de un sistema". [1]

"Entre los ejemplos de artefactos se incluyen archivos de modelos, archivos fuente , scripts y archivos ejecutables binarios , una tabla en un sistema de base de datos , un producto de desarrollo, un documento de procesamiento de textos o un mensaje de correo ". [1]

Los artefactos son las entidades físicas que se implementan en los nodos [1] (es decir, dispositivos y entornos de ejecución). Otros elementos UML, como clases y componentes, se manifiestan primero en artefactos y luego se implementan instancias de estos artefactos. Los artefactos también pueden estar compuestos de otros artefactos.

Metamodelado

Ilustración de la función Meta-Object

El Object Management Group (OMG) ha desarrollado una arquitectura de metamodelado para definir el UML, llamada Meta-Object Facility . [27] MOF está diseñado como una arquitectura de cuatro capas, como se muestra en la imagen de la derecha. Proporciona un meta-metamodelo en la parte superior, llamado capa M3. Este modelo M3 es el lenguaje utilizado por Meta-Object Facility para construir metamodelos, llamados modelos M2.

El ejemplo más destacado de un modelo de Meta-Objeto Facility de Capa 2 es el metamodelo UML, que describe el propio UML. Estos modelos M2 describen elementos de la capa M1 y, por lo tanto, modelos M1. Estos serían, por ejemplo, modelos escritos en UML. La última capa es la capa M0 o capa de datos. Se utiliza para describir instancias de tiempo de ejecución del sistema. [28]

El metamodelo se puede ampliar mediante un mecanismo denominado estereotipo . Brian Henderson-Sellers y Cesar Gonzalez-Perez lo han criticado por ser insuficiente o insostenible en "Usos y abusos del mecanismo de estereotipo en UML 1.x y 2.0". [29]

Adopción

En 2013, OMG había comercializado UML para muchos contextos, pero apuntaba principalmente al desarrollo de software con un éxito limitado. [23] [30]

En ocasiones se lo ha tratado como una bala de plata para el diseño , lo que conduce a problemas. El uso incorrecto de UML incluye el uso excesivo (diseñar cada parte del sistema con él, lo cual es innecesario) y suponer que los novatos pueden diseñar con él. [31]

Se considera un lenguaje grande, con muchas construcciones . Algunas personas (incluido Jacobson ) creen que el tamaño de UML dificulta el aprendizaje y, por lo tanto, su adopción. [32]

MS Visual Studio abandonó el soporte para UML en 2016 debido a la falta de uso. [33]

Según Google Trends, UML ha estado en constante declive desde 2004. [34]

Véase también

Referencias

  1. ^ abcdef Lenguaje de modelado unificado 2.5.1. Número de documento OMG formal/2017-12-05. Organización de desarrollo de estándares de Object Management Group (OMG SDO). Diciembre de 2017. Error de cita: La referencia nombrada "OMG" fue definida varias veces con contenido diferente (ver la página de ayuda ).
  2. ^ Guía del usuario del lenguaje de modelado unificado abcd (2.ª edición). Addison-Wesley. 2005. pág. 496. ISBN 0321267974.Vea el contenido de muestra: busque historial
  3. ^ "ISO/IEC 19501:2005 - Tecnología de la información - Procesamiento distribuido abierto - Lenguaje de modelado unificado (UML) Versión 1.4.3". Iso.org. 1 de abril de 2005. Consultado el 7 de mayo de 2015 .
  4. ^ "ISO/IEC 19505-1:2012 - Tecnología de la información - Lenguaje de modelado unificado del grupo de gestión de objetos (OMG UML) - Parte 1: Infraestructura". Iso.org. 20 de abril de 2012. Consultado el 10 de abril de 2014 .
  5. ^ Sebastian Baltes; Stephan Diehl (11 de noviembre de 2014). "Bocetos y diagramas en la práctica". Actas del 22.º Simposio internacional ACM SIGSOFT sobre fundamentos de la ingeniería de software . FSE 2014. Association for Computing Machinery . págs. 530–541. arXiv : 1706.09172 . doi :10.1145/2635868.2635891. ISBN . 978-1-4503-3056-5.S2CID2436333  .
  6. ^ abcd «OMG Unified Modeling Language (OMG UML), Superstructure. Versión 2.4.1». Object Management Group . Consultado el 9 de abril de 2014 .
  7. ^ Andreas Zendler (1997) Conceptos avanzados, modelos de ciclo de vida y herramientas para el desarrollo de software orientado a objetos , pág. 122
  8. ^ "Especificación UML versión 1.1 (documento OMG ad/97-08-11)". Omg.org . Consultado el 22 de septiembre de 2011 .
  9. ^ "UML". Omg.org . Consultado el 10 de abril de 2014 .
  10. ^ Génova et alia 2004 "Cuestiones abiertas en el modelado de casos de uso industrial"
  11. ^ Hubert Tardieu, Arnold Rochfeld y René Colletti La método MERISE: Principes et outils (rústica - 1983)
  12. ^ Elmasri, Ramez, B. Shamkant, Navathe, Fundamentos de sistemas de bases de datos, tercera ed., Addison-Wesley, Menlo Park, CA, EE. UU., 2000.
  13. ^ Paolo Atzeni; Wesley Chu; Hongjun Lu; Shuigeng Zhou; Tok Wang Ling, eds. (27 de octubre de 2004). Modelado conceptual – ER 2004: 23.ª Conferencia internacional sobre modelado conceptual, Shanghái, China, del 8 al 12 de noviembre de 2004. Lecture Notes in Computer Science 3288 (edición de 2004). Springer . ISBN 3540237232.
  14. ^ Ingo Feinerer (marzo de 2007). Un tratamiento formal de los diagramas de clases UML como método eficiente para la gestión de la configuración (PDF) (tesis de doctorado en ciencias técnicas). Viena: Universidad Técnica de Viena.
  15. ^ James Dullea; Il-Yeol Song; Ioanna Lamprou (1 de noviembre de 2003). "Un análisis de la validez estructural en el modelado de relación entre entidades". Ingeniería de datos y conocimiento . 47 (2): 167–205. doi :10.1016/S0169-023X(03)00049-1.
  16. ^ Sven Hartmann (17 de enero de 2003). Razonamiento sobre las restricciones de participación y las restricciones de Chen. ADC '03: Actas de la 14.ª conferencia de bases de datos de Australasia. Sociedad Australiana de Computación . págs. 105-113. Icono de acceso abierto
  17. ^ "UML 2.0". Omg.org . Consultado el 22 de septiembre de 2011 .
  18. ^ abc "UML". Omg.org . Consultado el 22 de septiembre de 2011 .
  19. ^ OMG. "OMG Formal Specification (modeling and Metadata paragraph)" (Especificaciones formales de OMG (párrafo sobre modelado y metadatos)) . Consultado el 12 de febrero de 2016 .
  20. ^ OMG. "sobre la especificación del lenguaje de modelado unificado" . Consultado el 22 de febrero de 2020 .
  21. ^ "Lista de correo del grupo de trabajo sobre problemas de la revisión de UML 2.6". Omg.org . Consultado el 10 de abril de 2014 .
  22. ^ Satish Mishra (1997). "Modelado visual y lenguaje de modelado unificado (UML): Introducción a UML" Archivado el 20 de julio de 2011 en Wayback Machine . Rational Software Corporation. Consultado el 9 de noviembre de 2008.
  23. ^ ab "UML, Casos de éxito" . Consultado el 9 de abril de 2014 .
  24. ^ John Hunt (2000). El proceso unificado para profesionales: diseño orientado a objetos, UML y Java . Springer, 2000. ISBN 1-85233-275-1 . p. 5. 
  25. ^ Jon Holt Institution of Electrical Engineers (2004). UML para ingeniería de sistemas: observando las ruedas IET, 2004, ISBN 0-86341-354-4 . p. 58 
  26. ^ Manuel Almendros-Jiménez, Jesús & Iribarne, Luis. (2007). Descripción de relaciones de casos de uso con diagramas de secuencia. Computadora. J. 50. 116-128. 10.1093/comjnl/bxl053.
  27. ^ Iman Poernomo (2006) "La facilidad de meta-objetos tipificados Archivado el 30 de junio de 2016 en Wayback Machine " en: Actas del simposio ACM de 2006 sobre computación aplicada . pp. 1845–1849
  28. ^ "Infraestructura UML 2.4.1". Omg.org. 5 de agosto de 2011. Consultado el 10 de abril de 2014 .
  29. ^ Brian Henderson-Sellers ; Cesar Gonzalez-Perez (1 de octubre de 2006). "Usos y abusos del mecanismo de estereotipos en UML 1.x y 2.0". MoDELS '06: Actas de la 9.ª Conferencia Internacional sobre Lenguajes y Sistemas de Ingeniería Basados ​​en Modelos . Apuntes de clase en Ciencias de la Computación 4199. 4199 . Berlín , Alemania: Springer-Verlag : 16–26. doi :10.1007/11880240_2. ISBN 978-3-540-45772-5.
  30. ^ "UML 2.5: ¿Te importa?"."UML es verdaderamente omnipresente"
  31. ^ "Muerte por fiebre UML".
  32. ^ "Ivar Jacobson sobre UML, MDA y el futuro de las metodologías".
  33. ^ Krill, Paul (18 de octubre de 2016). "UML será expulsado de Microsoft Visual Studio". InfoWorld . Consultado el 23 de julio de 2023 .
  34. ^ "Google Trends". Google Trends . Archivado desde el original el 23 de julio de 2023. Consultado el 23 de julio de 2023 .

Lectura adicional

  • Ambler, Scott William (2004). Introducción a los objetos: desarrollo ágil basado en modelos con UML 2. Cambridge University Press. ISBN 0-521-54018-6Archivado desde el original el 31 de enero de 2010 . Consultado el 29 de abril de 2006 .
  • Chonoles, Michael Jesse; James A. Schardt (2003). UML 2 para principiantes. Wiley Publishing. ISBN 0-7645-2614-6.
  • Fowler, Martin (2004). UML Distilled: Una breve guía del lenguaje de modelado de objetos estándar (3.ª ed.). Addison-Wesley. ISBN 0-321-19368-7.
  • Jacobson, Ivar ; Grady Booch; James Rumbaugh (1998). El proceso unificado de desarrollo de software . Addison Wesley Longman. ISBN 0-201-57169-2.
  • Martin, Robert Cecil (2003). UML para programadores Java. Prentice Hall. ISBN 0-13-142848-9.
  • Noran, Ovidiu S. "Modelado empresarial: UML frente a IDEF" (PDF) . Consultado el 14 de noviembre de 2022 .
  • Horst Kargl. "Metamodelo UML interactivo con ejemplos adicionales".
  • Penker, Magnus; Hans-Erik Eriksson (2000). Modelado de Negocios con UML. John Wiley e hijos. ISBN 0-471-29551-5.
  • Douglass, Bruce Powel. «Bruce Douglass: sistemas ágiles en tiempo real y desarrollo de software» (web) . Consultado el 1 de enero de 2019 .
  • Douglass, Bruce (2014). Taller UML en tiempo real, segunda edición . Newnes. ISBN 978-0-471-29551-8.
  • Douglass, Bruce (2004). UML en tiempo real, 3.ª edición . Newnes. ISBN 978-0321160768.
  • Douglass, Bruce (2002). Patrones de diseño en tiempo real . Addison-Wesley Professional. ISBN 978-0201699562.
  • Douglass, Bruce (2009). Agilidad en tiempo real . Addison-Wesley Professional. ISBN 978-0321545497.
  • Douglass, Bruce (2010). Patrones de diseño para sistemas embebidos en C. Newnes. ISBN 978-1856177078.
  • Sitio web oficial
  • Especificación UML actual: Lenguaje de modelado unificado 2.5.1. Número de documento OMG formal/2017-12-05. Organización de desarrollo de estándares de Object Management Group (OMG SDO). Diciembre de 2017.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lenguaje_de_modelado_unificado&oldid=1247998796#Diagramas_de_interacción"