El Lenguaje de modelado unificado ( UML ) es un lenguaje de modelado de desarrollo de propósito general en el campo de la ingeniería de software que está destinado a proporcionar una forma estándar de visualizar el diseño de un sistema. [1]
La creación de UML fue motivada originalmente por el deseo de estandarizar los distintos sistemas de notación y enfoques para el diseño de software. Fue desarrollado en Rational Software en 1994-1995, con un mayor desarrollo dirigido por ellos hasta 1996. [1]
En 1997, UML fue adoptado como estándar por el Object Management Group (OMG) y ha sido administrado por esta organización desde entonces. En 2005, la Organización Internacional de Normalización (ISO) también publicó UML como una norma ISO aprobada. [2] Desde entonces, el estándar se ha revisado periódicamente para cubrir la última revisión de UML. [3]
Historia
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 orientados a objetos desarrollados a finales 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 orientado 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. [4]
Rational Software Corporation contrató a James Rumbaugh de General Electric en 1994 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 del momento: [5] la técnica de modelado de objetos de Rumbaugh (OMT) y la de Grady Booch . método. Pronto fueron asistidos en sus esfuerzos por 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. [1]
UML 1.x
Bajo el liderazgo técnico de esos 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 partes interesadas adicionales (por ejemplo , HP , DEC , IBM y Microsoft ). El borrador UML 1.0 de UML Partners fue propuesto al OMG en enero de 1997 por el consorcio. Durante el mismo mes, los socios de UML 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, fue presentado al OMG en agosto de 1997 y adoptado por el OMG en noviembre de 1997. [1] [6]
Después del primer lanzamiento, se formó un grupo de trabajo [1] para mejorar el lenguaje, que lanzó varias revisiones menores, 1.3, 1.4 y 1.5. [7]
Los estándares que produjo (así como el estándar original) se han señalado como ambiguos e inconsistentes. [8] [9]
Notación de cardinalidad
Al igual que con los diagramas de base de datos de Chen, Bachman e ISO ER , los modelos de clase se especifican para usar cardinalidades de "mirada cruzada " , aunque varios autores ( Merise , [10] Elmasri & Navathe [11] entre otros [12] ) prefieren las mismas lado o "mirar aquí" para roles y cardinalidades tanto mínimas como máximas. Investigadores recientes (Feinerer, [13] Dullea et al. [14] ) han demostrado que la técnica de "mirar a través" 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: "Surgen problemas si operamos bajo la semántica de búsqueda cruzada como se usa para las asociaciones UML. Hartmann [15] investiga esta situación y muestra cómo y por qué fallan las diferentes transformaciones", y: "Como veremos en las próximas páginas, la interpretación cruzada introduce varias dificultades que impiden la extensión de mecanismos simples de asociaciones binarias a n- arias ".
UML 2
La revisión principal de UML 2.0 reemplazó a la versión 1.5 en 2005, que fue desarrollada con un consorcio ampliado para mejorar aún más el lenguaje para reflejar la nueva experiencia en el uso de sus características. [dieciséis]
Aunque UML 2.1 nunca se lanzó como especificación formal, las versiones 2.1.1 y 2.1.2 aparecieron en 2007, seguidas de UML 2.2 en febrero de 2009. UML 2.3 se lanzó formalmente en mayo de 2010. [17] UML 2.4.1 se lanzó formalmente en agosto de 2011. [17] UML 2.5 se publicó en octubre de 2012 como una versión "en curso" y se lanzó oficialmente en junio de 2015. [17] La versión formal 2.5.1 se adoptó en diciembre de 2017. [18]
Hay cuatro partes en la especificación UML 2.x:
- La superestructura que define la notación y la semántica de los diagramas y sus elementos del modelo.
- La infraestructura que define el metamodelo central en 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
- OCL versión 2.3.1
- Intercambio de diagramas UML versión 1.0.
Desde la versión 2.5, la especificación UML se ha simplificado (sin superestructura e infraestructura), y las últimas versiones de estos estándares ahora son: [20]
- Especificación UML 2.5.1
- OCL versión 2.4
Continúa siendo actualizado y mejorado por el grupo de trabajo de revisión, que resuelve cualquier problema con el idioma. [21]
Diseño
UML ofrece una forma de visualizar los planos arquitectónicos de un sistema en un diagrama, incluidos elementos como: [4]
- cualquier actividad (trabajos);
- componentes individuales del sistema;
- y cómo pueden interactuar con otros componentes de software ;
- cómo funcionará el sistema;
- cómo las entidades interactúan con otras (componentes e interfaces);
- interfaz de usuario externa .
Aunque originalmente estaba destinado a 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 enumera anteriormente), [22] y se ha encontrado ú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 , método Booch , Objectory y especialmente RUP con el que originalmente se pensó que se usaría 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. No es necesario que el conjunto de diagramas cubra completamente el modelo y eliminar un diagrama no cambia el modelo. El modelo también puede contener documentación que impulse los elementos y diagramas del modelo (como casos de uso escritos).
Los diagramas UML representan dos vistas diferentes de un modelo de sistema: [25]
- Vista estática (o estructural ): enfatiza la estructura estática del sistema usando objetos, atributos, operaciones y relaciones. Incluye diagramas de clases y diagramas de estructura compuesta .
- Vista dinámica (o conductual ): enfatiza el comportamiento dinámico del sistema al mostrar colaboraciones entre objetos y cambios en los estados internos de los objetos. Esta vista incluye diagramas de secuencia , diagramas de actividad y diagramas de máquina de estado .
Los modelos UML se pueden intercambiar entre herramientas UML utilizando el formato XML Metadata Interchange (XMI).
En UML, una de las herramientas clave para el modelado de comportamiento es el modelo de casos de uso, causado 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. [4] Algunos tipos representan información estructural y el resto representa tipos generales de comportamiento , incluidos algunos que representan diferentes aspectos de las interacciones . Estos diagramas se pueden clasificar jerárquicamente como se muestra en el siguiente diagrama de clases: [4]
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. Enfatiza las cosas que deben estar presentes en el sistema que se modela. 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 un sistema de software se divide en componentes y muestra las dependencias entre estos componentes.
Diagrama de componentes
Diagrama de clase
Diagramas de comportamiento
Los diagramas de comportamiento representan el aspecto dinámico del sistema. Enfatiza 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 actividad describe las actividades comerciales y operativas paso a paso de los componentes de un sistema.
Diagrama de actividad
Use el diagrama del caso
Diagramas de interacción
Los diagramas de interacción, un subconjunto de diagramas de comportamiento, enfatizan el flujo de control y datos entre las cosas del sistema que se modela. Por ejemplo, el diagrama de secuencia muestra cómo los objetos se comunican entre sí con respecto a una secuencia de mensajes.
Diagrama de secuencia
Diagrama de comunicación
Metamodelado
El Object Management Group (OMG) ha desarrollado una arquitectura de metamodelado para definir UML, denominada 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 instalación de metaobjetos de capa 2 es el metamodelo UML, que describe el propio UML. Estos modelos M2 describen elementos de la capa M1 y, por 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 en tiempo de ejecución del sistema. [28]
El metamodelo se puede ampliar mediante un mecanismo llamado estereotipo . Esto ha sido criticado por ser insuficiente / insostenible por Brian Henderson-Sellers y Cesar Gonzalez-Perez en "Usos y abusos del mecanismo de estereotipo en UML 1.xy 2.0". [29]
Adopción
UML se ha comercializado para muchos contextos. [23] [30]
En ocasiones, se ha tratado como una solución milagrosa en el diseño , lo que genera problemas. El mal uso de UML incluye el uso excesivo (diseñar cada parte del sistema con él, lo cual es innecesario) y asumir que los principiantes pueden diseñar con él. [31]
Se considera un lenguaje extenso, con muchas construcciones . Algunas personas (incluido Jacobson ) sienten que el tamaño de UML dificulta su aprendizaje (y por lo tanto, su uso). [32]
Ver también
- Aplicaciones de UML
- Modelo y notación de procesos de negocio (BPMN)
- Modelo C4
- Pruebas basadas en modelos
- Ingeniería basada en modelos
- Análisis y modelado de roles orientados a objetos
- Lenguaje de modelado de sistemas (SysML)
- Lista de herramientas de lenguaje de modelado unificado
Referencias
- ^ a b c d e Guía del usuario del lenguaje de modelado unificado, The (2 ed.). Addison-Wesley. 2005. p. 496. ISBN 0321267974. , Ver el contenido de muestra, buscar el historial
- ^ "ISO / IEC 19501: 2005 - Tecnología de la información - Procesamiento distribuido abierto - Lenguaje de modelado unificado (UML) Versión 1.4.2" . Iso.org. 1 de abril de 2005 . Consultado el 7 de mayo de 2015 .
- ^ "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 .
- ^ a b c d "Lenguaje de modelado unificado OMG (OMG UML), superestructura. Versión 2.4.1" . Grupo de gestión de objetos . Consultado el 9 de abril de 2014 .
- ^ Andreas Zendler (1997) Conceptos avanzados, modelos de ciclo de vida y herramientas para el desarrollo de software orientado a Objeckt . pag. 122
- ^ "Especificación UML versión 1.1 (documento OMG ad / 97-08-11)" . Omg.org . Consultado el 22 de septiembre de 2011 .
- ^ "UML" . Omg.org . Consultado el 10 de abril de 2014 .
- ^ Génova et alia 2004 "Problemas abiertos en el modelado de casos de uso industrial"
- ^ "¿UML 2.0 será ágil o incómodo?" (PDF) . Consultado el 22 de septiembre de 2011 .
- ^ Hubert Tardieu, Arnold Rochfeld y René Colletti La methode MERISE: Principes et outils (Tapa blanda - 1983)
- ^ Elmasri, Ramez, B. Shamkant, Navathe, Fundamentals of Database Systems, tercera ed., Addison-Wesley, Menlo Park, CA, EE. UU., 2000.
- ↑ ER 2004: 23rd International Conference on Conceptual Modeling, Shanghai, China, 8-12 de noviembre de 2004 Archivado el 27 de mayo de 2013 en Wayback Machine.
- ^ "Un tratamiento formal de los diagramas de clases UML como un método eficiente para la gestión de la configuración 2007" (PDF) . Consultado el 22 de septiembre de 2011 .
- ^ "James Dullea, Il-Yeol Song, Ioanna Lamprou - Un análisis de validez estructural en el modelado entidad-relación 2002" (PDF) . Consultado el 22 de septiembre de 2011 .
- ^ " " Razonamiento sobre las limitaciones de participación y las limitaciones de Chen "S Hartmann - 2003" (PDF) . Consultado el 17 de agosto de 2013 .
- ^ "UML 2.0" . Omg.org . Consultado el 22 de septiembre de 2011 .
- ^ a b c "UML" . Omg.org . Consultado el 22 de septiembre de 2011 .
- ^ "Especificación UML 2.5.1" . Omg.org . Consultado el 24 de octubre de 2018 .
- ^ DIOS MÍO. "Especificaciones formales de OMG (párrafo de modelado y metadatos)" . Consultado el 12 de febrero de 2016 .
- ^ DIOS MÍO. "sobre la especificación del lenguaje de modelado unificado" . Consultado el 22 de febrero de 2020 .
- ^ "Problemas para la lista de correo del grupo de trabajo de revisión de UML 2.6" . Omg.org . Consultado el 10 de abril de 2014 .
- ^ Satish Mishra (1997). "Modelado visual y lenguaje de modelado unificado (UML): Introducción a UML" . Corporación de software racional. Consultado el 9 de noviembre de 2008.
- ^ a b "UML, Historias de éxito" . Consultado el 9 de abril de 2014 .
- ^ John Hunt (2000). El proceso unificado para profesionales: diseño orientado a objetos, UML y Java . Springer, 2000. ISBN 1-85233-275-1 . pag. 5.puerta
- ^ Institución de ingenieros eléctricos Jon Holt (2004). UML para ingeniería de sistemas: mirando las ruedas IET, 2004, ISBN 0-86341-354-4 . pag. 58
- ^ Manuel Almendros-Jiménez, Jesús e Iribarne, Luis. (2007). Descripción de relaciones de casos de uso con diagramas de secuencia. Computación. J .. 50. 116-128. 10.1093 / comjnl / bxl053.
- ^ Iman Poernomo (2006) " The Meta-Object Facility Typed " en: Proceeding SAC '06 Proceedings of the 2006 ACM symposium on Applied computing . págs. 1845–1849
- ^ "Infraestructura UML 2.4.1" . Omg.org. 5 de agosto de 2011 . Consultado el 10 de abril de 2014 .
- ^ B. Henderson-Sellers; C. González-Pérez (2006). "Usos y abusos del mecanismo de estereotipo en UML 1.xy 2.0". en: Sistemas y lenguajes de ingeniería impulsados por modelos . Springer Berlín / Heidelberg.
- ^ "UML 2.5: ¿Te importa siquiera?" . "UML realmente es omnipresente"
- ^ "Muerte por fiebre UML" .
- ^ "Ivar Jacobson sobre UML, MDA y el futuro de las metodologías" .
- Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencias" de la GFDL , versión 1.3 o posterior.
Otras lecturas
- Ambler, Scott William (2004). The Object Primer: Desarrollo basado en modelos ágiles con UML 2 . Prensa de la Universidad de Cambridge. ISBN 0-521-54018-6.
- 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 para el 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 de desarrollo de software unificado . Addison Wesley Longman. ISBN 0-201-57169-2.
- Martin, Robert Cecil (2003). UML para programadores de Java . Prentice Hall. ISBN 0-13-142848-9.
- Noran, Ovidiu S. "Modelado empresarial: UML vs. IDEF" (PDF) . Consultado el 28 de diciembre de 2005 .
- 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: Desarrollo de software y sistemas ágiles en tiempo real" (web) . Consultado el 1 de enero de 2019 .
- Douglass, Bruce (2014). Taller de UML en tiempo real 2ª edición . Newnes. ISBN 978-0-471-29551-8.
- Douglass, Bruce (2004). Real-Time UML 3rd Edition . 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 para sistemas empotrados en C Diseño . Newnes. ISBN 978-1856177078.
enlaces externos
- Página web oficial