UML

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 5 de septiembre de 2018; las comprobaciones requieren 24 ediciones .

UML ( Lenguaje de modelado unificado en inglés   , un lenguaje de modelado unificado) es un lenguaje de descripción gráfica para el modelado de objetos en el campo del desarrollo de software , para modelar procesos comerciales , diseño de sistemas y mostrar estructuras organizativas .

UML es un lenguaje general, es un estándar abierto que usa notación gráfica para crear un modelo abstracto de un sistema llamado modelo UML . El UML fue creado para definir, visualizar, diseñar y documentar, básicamente, sistemas de software . UML no es un lenguaje de programación, pero es posible generar código basado en modelos UML .

Uso

UML también permite a los desarrolladores de software ponerse de acuerdo sobre la notación gráfica para representar conceptos comunes (como clase , componente , generalización , agregación  y comportamiento ) y centrarse más en el diseño y la arquitectura . 

Historia

Los requisitos previos para el surgimiento del lenguaje de modelado UML se identificaron en relación con el rápido desarrollo en la segunda mitad del siglo XX de los lenguajes de programación orientados a objetos ( Simula 67 , Smalltalk , Objective C , C ++ , etc.) . Debido a la constante complicación de los productos de software creados, existe la necesidad de tener en cuenta cada vez más las nuevas características de los lenguajes y herramientas de desarrollo en el análisis, formulación de requisitos y en el proceso de diseño de aplicaciones de software. Por ejemplo, en un corto período de tiempo de 1989 a 1994, la cantidad de herramientas orientadas a objetos creció de una docena a más de cincuenta. Sin embargo, a muchos desarrolladores les resultó difícil elegir un lenguaje de modelado que satisficiera completamente todas sus necesidades. Como resultado, ha surgido una nueva generación de métodos de desarrollo, entre los cuales el método Booch , creado por Jacobson Object-Oriented Software Engineering ( OOSE ) y desarrollado por Rambaud Object Modeling Technique ( OMT ), ha ganado particular popularidad. Además de ellos, había otras tecnologías completas, como Fusion , Shlaer-Mellor y Coad-Yourdon , sin embargo, todas ellas tenían no solo ventajas, sino también desventajas significativas [1] .

Antes de UML 1.x

En 1994, Grady Booch y James Rumbaugh , que trabajaban para Rational Software , unieron fuerzas para crear un nuevo lenguaje de modelado orientado a objetos. Tomaron los métodos de modelado de Object-Modeling Technique y Booch como base del lenguaje . OMT se centró en el análisis, mientras que Booch se centró en el diseño de sistemas de software. En octubre de 1995, se lanzó una versión preliminar 0.8 del Método Unificado .  En el otoño de 1995, Ivar Jakobson , el autor de Ingeniería de software orientada a objetos - OOSE, se unió a Rational . OOSE proporcionó excelentes capacidades para especificar procesos comerciales y analizar requisitos a través de casos de uso . OOSE también se ha integrado en el método unificado.

En esta etapa, el papel principal en la organización del proceso de desarrollo de UML pasó al consorcio OMG (Object Management Group) . El equipo de diseño de OMG, que también incluía a Butch, Rambeau y Jacobson (los "tres amigos"), lanzó las especificaciones de la versión 0.9 y 0.91 de UML en junio y octubre de 1996 .

UML 1.x

Versión Fecha de aceptación
1.1 noviembre de 1997 [2]
1.3 marzo de 2000 [3]
1.4 septiembre de 2001 [4]
1.4.2 julio de 2004 [3]
1.5 marzo de 2003 [5]
2.0 julio de 2005 [6]
2.1 formalmente no aceptado [3]
2.1.1 agosto de 2007 [7]
2.1.2 noviembre de 2007 [8]
2.2 febrero de 2009 [9]
2.3 mayo de 2010 [10]
2.4 beta 2 marzo de 2011 [11]
2.5 junio de 2015 [12]
2.5.1 Diciembre 2017 [13]

A raíz del creciente interés en UML , empresas como Digital Equipment Corporation , Hewlett-Packard , i-Logix, IntelliCorp, IBM , ICON Computing, MCI Systemhouse, Microsoft , Oracle Corporation , Rational Software se han sumado al desarrollo de nuevas versiones del dentro del consorcio UML Partners , Texas Instruments y Unisys . La colaboración resultó en la especificación UML 1.0, lanzada en enero de 1997 . Le siguió en noviembre del mismo año la versión 1.1, que contenía mejoras de notación, así como algunas extensiones semánticas.

Las versiones posteriores de UML han incluido las versiones 1.3, 1.4 y 1.5, publicadas en junio de 1999 , septiembre de 2001 y marzo de 2003 , respectivamente .

UML 1.4.2 ha sido adoptado como estándar internacional ISO / IEC 19501:2005 [12] .

UML 2.x

La especificación formal de UML 2.0 se publicó en agosto de 2005. La semántica del lenguaje ha sido significativamente refinada y ampliada para soportar la metodología Model Driven Development-MDD . La última versión de UML 2.5 se publicó en junio de 2015.

UML 2.4.1 ha sido adoptado como estándar internacional ISO / IEC 19505-1, 19505-2 [12] .

Diagramas

Los siguientes tipos de diagramas se utilizan en UML (para eliminar la ambigüedad, también se da la notación en inglés):

Diagramas de estructura:

Diagramas de comportamiento:

Diagramas estructurales:

Diagramas de comportamiento:

La estructura de los diagramas UML 2.3 se puede representar en un diagrama de clases UML:

Diagrama de clases

Diagrama de clases ( diagrama de clases) - un diagrama estructural estático que describe la estructura del sistema, mostrando las clases del sistema, sus atributos, métodos y dependencias entre clases.

Existen diferentes puntos de vista sobre la construcción de diagramas de clases, dependiendo del propósito de su aplicación:

Diagrama de componentes

Diagrama de componentes ( Diagrama de componentes) - un diagrama estructural estático, muestra la división de un sistema de software en componentes estructurales y relaciones (dependencias) entre componentes. Los componentes físicos pueden ser archivos, bibliotecas, módulos, archivos ejecutables, paquetes, etc.

Diagrama de estructura compuesta/compuesta

Diagrama de estructura compuesta ( Diagrama de estructura compuesta ) - un diagrama estructural estático que demuestra la estructura interna de las clases y, si es posible, la interacción de los elementos (partes) de la estructura interna de la clase.

Una subespecie de diagramas de estructura compuesta son los diagramas de colaboración (diagrama de colaboración, introducido en UML 2.0), que muestran los roles y las interacciones de las clases dentro de una colaboración. Las colaboraciones son útiles cuando se modelan patrones de diseño .

Los diagramas de estructura compuesta se pueden usar junto con los diagramas de clase.

Diagrama de despliegue

Diagrama de implementación ( diagrama de implementación ): se utiliza para modelar los nodos de trabajo (hardware, nodo en inglés  ) y los artefactos implementados en ellos. UML 2 implementó artefactos en nodos , mientras que UML 1 implementó componentes en nodos. Se establece una dependencia de manifestación entre un artefacto y el elemento lógico (componente) que implementa.  

Diagrama de objetos

Diagrama de objetos : muestra una instantánea completa o parcial del sistema simulado en un momento determinado. El diagrama de objetos muestra instancias de clase (objetos) del sistema con los valores actuales de sus atributos y enlaces entre objetos.

Diagrama de paquete

Diagrama de paquete ( Diagrama de paquete): un diagrama estructural, cuyo contenido principal son los paquetes y las relaciones entre ellos. No existe una separación estricta entre los diferentes diagramas estructurales, por lo que este nombre se ofrece solo por conveniencia y no tiene significado semántico (los paquetes y los diagramas de paquetes pueden aparecer en otros diagramas estructurales). Los diagramas de paquetes sirven, en primer lugar, para organizar los elementos en grupos según algún atributo para simplificar la estructura y organización del trabajo con el modelo del sistema.

Diagrama de actividades

Diagrama de actividad : un diagrama que muestra la descomposición de alguna actividad en sus partes componentes. Una actividad es una  especificación de comportamiento ejecutable en forma de una ejecución secuencial y paralela coordinada de elementos subordinados: actividades anidadas y acciones separadas ( acción en inglés ), interconectadas por flujos que van desde las salidas de un nodo a las entradas de otro.  

Los diagramas de actividad se utilizan en el modelado de procesos comerciales, procesos tecnológicos, computación en serie y en paralelo.

Un análogo de los diagramas de actividad son los esquemas de algoritmos según GOST 19.701-90 y los esquemas de dragón .

Diagrama de autómatas

Diagrama de autómatas (diagrama de máquina de estados, diagrama de máquina de estados finitos , diagrama de estados ): un diagrama que muestra una máquina de estados finitos con estados simples, transiciones y estados compuestos.

Una máquina de estados es una  especificación de la secuencia de estados a través de los cuales pasa un objeto o interacción en respuesta a los eventos de su vida, así como la respuesta del objeto a estos eventos. Una máquina de estado se adjunta a un elemento fuente ( clase , colaboración o método) y sirve para definir el comportamiento de sus instancias.

Un análogo de los diagramas de autómatas (diagramas de estado) son los diagramas de dragón .

Diagrama de caso de uso (Use Case Diagram)

Un diagrama de casos de uso o un diagrama de casos de uso (Use case diagram) es un diagrama que muestra las relaciones que existen entre los actores y los casos de uso .

El objetivo principal es proporcionar una herramienta única que permita al cliente, al usuario final y al desarrollador discutir juntos la funcionalidad y el comportamiento del sistema.

Diagramas de comunicación y secuencia

Los diagramas de comunicación y secuencia son transitivos , expresan interacción, pero la muestran de diferentes maneras y con suficiente precisión se pueden convertir de uno a otro.

Diagrama de comunicación ( diagrama de comunicación, en UML 1.x - diagrama de cooperación, diagrama de colaboración ): un diagrama que representa interacciones entre partes de una estructura compuesta o roles de colaboración. A diferencia del diagrama de secuencia, el diagrama de comunicación indica explícitamente la relación entre elementos (objetos) y no usa el tiempo como una dimensión separada (se usan números de secuencia de llamadas).

Diagrama de secuencia : un diagrama que muestra las interacciones de los objetos, ordenados por el momento de su manifestación. En particular, representa los objetos que participan en la interacción y la secuencia de mensajes que intercambian.

Diagrama de colaboración  : este tipo de diagrama le permite describir las interacciones de los objetos, haciendo abstracción de la secuencia de paso de mensajes. Este tipo de diagrama refleja de forma compacta todos los mensajes recibidos y transmitidos de un objeto en particular y los tipos de estos mensajes.

Dado que los diagramas de Secuencia y Colaboración son vistas diferentes de los mismos procesos, Rational Rose le permite crear diagramas de Colaboración a partir de diagramas de Secuencia y viceversa, y también sincroniza automáticamente estos diagramas.

Diagrama general de interacción

Un diagrama de resumen de interacción  es un tipo de diagrama de actividad que incluye fragmentos de diagramas de secuencia y construcciones de flujo de control.

Este tipo de diagrama incluye Diagrama de secuencia (diagramas de secuencias de acciones) y Diagrama de colaboración (diagramas de colaboración). Estos diagramas le permiten considerar la interacción de los objetos en el sistema que se está creando desde diferentes puntos de vista.

Diagrama de sincronización

Diagrama de tiempo : una representación alternativa del diagrama de secuencia, que muestra explícitamente los cambios de estado en la línea de vida con una escala de tiempo dada. Puede ser útil en aplicaciones en tiempo real.

Beneficios de UML

Crítica

A pesar de que UML es un estándar bastante extendido y utilizado, a menudo es criticado por las siguientes deficiencias:

Véase también

Notas

  1. G. Butch, D. Rambeau, I. Jacobson. Breve historia de UML // Lenguaje UML. Guía del usuario = La guía del usuario del lenguaje de modelado unificado. - 2do. - M. : DMK Press, 2006. - S. 14. - 496 p. — ISBN 5-94074-334-X .
  2. Especificación UML versión 1.1 (documento OMG ad/97-08-11) Archivado el 18 de noviembre de 2018 en Wayback Machine . 
  3. 1 2 3 OMG Versiones formalmente lanzadas de UML Archivado el 31 de julio de 2010 en Wayback Machine . 
  4. Documentos asociados con la versión 1.4 de UML . Archivado el 10 de mayo de 2011 en Wayback Machine . 
  5. Documentos asociados con la versión 1.5 de UML . Archivado el 10 de mayo de 2011 en Wayback Machine . 
  6. Documentos asociados con UML Versión 2.0 Archivado el 9 de enero de 2010 en Wayback Machine . 
  7. Documentos asociados con la versión 2.1.1 de UML . Archivado el 7 de mayo de 2011 en Wayback Machine . 
  8. Documentos asociados con la versión 2.1.2 de UML . Archivado el 6 de junio de 2011 en Wayback Machine . 
  9. Documentos asociados con la versión 2.2 de UML. Archivado el 17 de abril de 2021 en Wayback Machine . 
  10. Documentos asociados con la versión 2.3 de UML . Archivado el 7 de junio de 2011 en Wayback Machine . 
  11. Documentos asociados con UML Versión 2.4 - Beta 2 Archivado el 9 de junio de 2011 en Wayback Machine . 
  12. UML 123. _ _ _ Consultado el 26 de junio de 2010. Archivado desde el original el 31 de julio de 2010.
  13. Acerca de la especificación del lenguaje de modelado unificado, versión 2.5.1 . www.omg.org. Consultado el 10 de septiembre de 2019. Archivado desde el original el 3 de julio de 2019.
  14. http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 Archivado el 7 de diciembre de 2008 en Wayback Machine ACM
  15. Punto oblicuo | El código es el diseño . Consultado el 21 de mayo de 2022. Archivado desde el original el 22 de abril de 2009.
  16. Code as Design: Three Essays by Jack W. Reeves por Jack W. Reeves - desarrollador.*, Desarrollador Dot Star . Consultado el 13 de febrero de 2007. Archivado desde el original el 13 de febrero de 2007.

Literatura

Enlaces