UML, Lenguaje de Modelado Gráfico
UML, Lenguaje de Modelado Gráfico
UML, Lenguaje de Modelado Gráfico
Índice
Desde finales de la década de 1980 hasta la de 1990 se desarrolló un gran número de métodos y
lenguajes para la representación de la programación orientada a objetos. El resultado fue una
confusa abundancia de métodos que apenas eran comparables entre sí. Para unificarlos, los tres
desarrolladores James Rumbaugh, Grady Booch e Ivar Jacobson decidieron fusionar varios
lenguajes existentes en un estándar común.
Los tres ya habían creado sus propios métodos de desarrollo de software orientado a objetos:
el método Booch
Como lenguaje de modelado, UML debía definir la semántica para la representación de estos
métodos. Bajo el nombre de "Socios UML", los desarrolladores comenzaron a trabajar con un
equipo para completar UML en 1996. Luego se lo entregaron a la Object Management Group
(OMG), que introdujo la versión 1.1 de Unified Modeling Language como estándar en 1997.
No satisfechos, los desarrolladores crearon un grupo de trabajo para mejorar el lenguaje a través
de múltiples versiones. Las críticas existentes incluían una semántica imprecisa e
innecesariamente compleja, la falta de adaptabilidad y una estandarización inadecuada. Por lo
tanto, se llevó a cabo una revisión a fondo. El resultado fue finalmente UML 2.0, que definió el
nuevo estándar en 2005. La versión 2.4.1 constituye la base de la normalización ISO 19505-1
(Infraestructura) y 19505-2 (Superestructura) de 2012. La UML-Version 2.5.1 apareció en
diciembre de 2017.
El Lenguaje Unificado de Modelado es referido por algunos como la lingua franca entre los
lenguajes de modelado. Como se mencionó al principio, el UML visualiza los estados y las
interacciones entre objetos dentro de un sistema. Su extensa popularidad se debe probablemente
a la fuerte influencia que ejercen los miembros del OMG (IBM, Microsoft y HP entre otros). La
semántica estructurada hace el resto. Los diagramas UML se utilizan para representar los
siguientes componentes del sistema:
Metamodelismo
UML 2.0 define unidades de lenguaje que operan en diferentes niveles. Se utilizan para expresar la
estructura y el comportamiento de un sistema. Algunos elementos utilizan el lenguaje de
modelado para definirse. La metamodelación incluye todos los elementos de UML, incluyendo
aquellos que describen el propio UML. Para ello utiliza cuatro niveles dispuestos jerárquicamente
(M0 a M3).
El nivel meta-meta M3 especifica los metadatos del lenguaje de modelado y sus relaciones usando
la Meta Object Facility (MOF). Define el metamodelo. También le permite transferir metadatos. El
formato XMI definido por el OMG es una herramienta para compartir datos orientados a objetos a
nivel meta-meta entre herramientas de desarrollo. El Object Constraint Language (OCL), un
lenguaje de programación declarativo, complementa el UML y regula las condiciones de contorno
de los respectivos modelos. Como lenguaje de texto, sin embargo, solo tiene un efecto de apoyo,
en lugar de estar disponible para el modelado en sí mismo.
Si deseas crear un diagrama UML comprensible, necesitas conocer el metamodelo UML y sus
reglas. El nivel más alto, M3, es un metamodelo del metamodelo. El mencionado Meta Object
Facility trabaja a un nivel abstracto que define los metamodelos. Este nivel se define a sí mismo,
porque de lo contrario surgirían metaniveles más altos.
Unidades lingüísticas
UML (nivel M2) define las reglas de su propia semántica. Las unidades de lenguaje son términos
definidos en la superestructura UML 2.0. Esto permite una representación formal que todos los
participantes pueden entender. Las unidades lingüísticas, en inglés language units, abstraen
objetos y procesos de estructura y funcionamiento similares y les dan una forma visualmente
representable. Según el nivel jerárquico dentro del modelo, los elementos asumen tareas más
especializadas o definen más estrechamente otros elementos.
Clase: como unidad lingüística, las clases son un aspecto central de UML. Definen lo que constituye
una clase y cómo las clases interactúan entre sí. Esta language unit tiene cuatro niveles, que van
desde elementos simples hasta relaciones más complejas:
Núcleo (describe elementos de la infraestructura UML 2.0 como paquetes, espacios de nombres,
atributos, etc.)
Componente: los componentes son elementos que separan su contenido del sistema externo. Solo
existe una conexión con el exterior a través de interfaces o puertos. Un conector de composición
establece una conexión con otro componente a través de la interfaz. El conector de delegación
une los elementos interiores con una interfaz en el borde exterior. Los componentes son
modulares e intercambiables.
Perfil: un perfil configura UML 2.0 para necesidades específicas. Los términos abstractos como
actividad u objeto deben ser especificados para algunos proyectos con el fin de aumentar la
comprensión. La semántica y las notaciones que están colocadas en lugares sueltos se pueden
adaptar con un perfil.
Modelo: el modelo comprende todos los elementos necesarios para presentar una visión
específica de la estructura o el comportamiento de un sistema. Esto también incluye las influencias
externas, como los actores.
Acción: cuando se trata de representar el comportamiento, las acciones son de importancia
central. Los valores se aceptan a través de los pines de entrada y se envían a los pines de salida.
Estos son los grupos temáticos que UML define para las acciones:
Manipular objetos
Acciones de llamada
Generar valores
Recibir eventos
Actividad: las acciones interactúan a través flujos de datos y control. Esto resulta en un sistema
complejo de comportamientos, las actividades.
Interacción: este metamodelo describe cómo se intercambian los flujos de mensajes entre
objetos, cuándo se envía un mensaje a qué objeto y qué otros elementos se ven afectados por él.
Estado de las máquinas: en un diagrama de estado, este modelo de metamodelo muestra tanto
estados (situaciones con propiedades inmutables) como semiestados (estados sin asignación de
valor) y sus transiciones. Los objetos de un estado pueden asignarse a acciones o actividades.