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 .
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 .
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] .
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 .
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] .
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] .
Los siguientes tipos de diagramas se utilizan en UML (para eliminar la ambigüedad, también se da la notación en inglés):
La estructura de los diagramas UML 2.3 se puede representar en un diagrama de clases UML:
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) - 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 ( 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 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 : 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): 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 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 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 .
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.
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.
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 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.
A pesar de que UML es un estándar bastante extendido y utilizado, a menudo es criticado por las siguientes deficiencias:
Lenguaje de modelado unificado | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| |||||||||||
|
Desarrollo de software | |
---|---|
Proceso | |
Conceptos de alto nivel | |
Direcciones |
|
Metodologías de desarrollo | |
Modelos |
|
Figuras notables |
|
ISO | Normas|
---|---|
| |
1 a 9999 |
|
10000 a 19999 |
|
20000+ | |
Ver también: Lista de artículos cuyos títulos comienzan con "ISO" |