UML
El lenguaje unificado de modelado (UML, por sus siglas en inglés, Unified Modeling
Language) es el lenguaje de modelado de sistemas de software más conocido y
utilizado en la actualidad; está respaldado por el Object Management Group (OMG).
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema.
UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo
aspectos conceptuales tales como procesos, funciones del sistema, y aspectos
concretos como expresiones de lenguajes de programación, esquemas de bases de
datos y compuestos reciclados.
La finalidad de UML según OMG
El OMG define los propósitos de UML de la siguiente manera:
Brindar a arquitectos de sistemas, ingenieros y desarrolladores de software las
herramientas para el análisis, el diseño y la implementación de sistemas basados en
software, así como para el modelado de procesos de negocios y similares.
Hacer progresar el estado de la industria permitiendo la interoperabilidad de
herramientas de modelado visual de objetos. No obstante, para habilitar un
intercambio significativo de información de modelos entre herramientas, se requiere
de un acuerdo con respecto a la semántica y notación.
UML cumple con los siguientes requerimientos:
Establecer una definición formal de un metamodelo común basado en el estándar
MOF (Meta-Object Facility) que especifique la sintaxis abstracta del UML. La sintaxis
abstracta define el conjunto de conceptos de modelado UML, sus atributos y sus
relaciones, así como las reglas de combinación de estos conceptos para construir
modelos UML parciales o completos.
Brindar una explicación detallada de la semántica de cada concepto de modelado
UML. La semántica define, de manera independiente a la tecnología, cómo los
conceptos UML se habrán de desarrollar por las computadoras.
Especificar los elementos de notación de lectura humana para representar los
conceptos individuales de modelado UML, así como las reglas para combinarlos en una
variedad de diferentes tipos de diagramas que corresponden a diferentes aspectos de
los sistemas modelados.
Definir formas que permitan hacer que las herramientas UML cumplan con esta
especificación. Esto se apoya (en una especificación independiente) con una
especificación basada en XML de formatos de intercambio de modelos
correspondientes (XMI) que deben ser concretados por herramientas compatibles.
UML y el modelado de datos
El UML es popular entre programadores, pero no suele ser usado por desarrolladores
de bases de datos. Una razón es sencillamente que los creadores de UML no se
enfocaron en las bases de datos. A pesar de ello, el UML es efectivo para el modelado
de alto nivel de datos conceptuales y se puede usar en diferentes tipos de diagramas
UML. Puedes encontrar información sobre la multidimensionalidad de un modelo de
clases orientado a objetos en una base de datos relacional en este artículo sobre
Modelado de bases de datos en UML.
Glosario de términos de UML
Familiarízate con el vocabulario de UML, con esta lista extraída del documento UML
2.4.1, cuya finalidad es ayudar a quienes no son miembros de OMG a entender los
términos comúnmente usados.
Compatibilidad con sintaxis abstracta Los usuarios pueden mover modelos a través de
diferentes herramientas, incluso si usan diferentes notaciones.
Metamodelo de almacén común (CWM) Interfaces estándares que se usan para
permitir el intercambio de metadatos de almacén e inteligencia de negocios entre
herramientas de almacén, plataformas de almacén y repositorios de metadatos de
almacén en entornos heterogéneos distribuidos.
Compatibilidad con sintaxis concreta Los usuarios pueden continuar usando una
notación con la que estén familiarizados a través de diferentes herramientas.
Núcleo En el contexto de UML, el núcleo comúnmente se refiere al "paquete central",
que es un metamodelo completo particularmente diseñado para una alta reutilización.
Unidad de lenguaje Consiste en una colección de conceptos de modelado
estrechamente vinculados que proporciona a los usuarios la capacidad de representar
aspectos del sistema en estudio según un paradigma o formalismo en particular.
Nivel 0 (L0) Nivel de cumplimiento inferior para la infraestructura UML - una sola
unidad de lenguaje que hace posible el modelado de tipos de estructuras basadas en
clases que se encuentran en los lenguajes más populares de programación orientados
a objetos.
Meta Object Facility (MOF) Una especificación de modelado de OMG que brinda la
base para las definiciones de metamodelos en la familia de lenguajes MDA de OMG.
Metamodelo Define el lenguaje y los procesos a partir de los cuales formar un modelo.
Construcciones de metamodelos (LM) Segundo nivel de cumplimiento en la
infraestructura UML - una unidad adicional de lenguaje para estructuras más
avanzadas basadas en clases, usadas para construir metamodelos (por medio de
CMOF), tales como el UML mismo. UML solo tiene dos niveles de cumplimiento.
Arquitectura dirigida por modelos (MDA) Un enfoque y un plan para lograr un conjunto
coherente de especificaciones de tecnología dirigida por modelos.
Lenguaje de restricciones para objetos (OCL) Un lenguaje declarativo para describir
reglas que se aplican al Lenguaje Unificado de Modelado. OCL complementa a UML
proporcionando términos y símbolos de diagramas de flujo que son más precisos que
el lenguaje natural, pero menos difíciles de dominar que las matemáticas.
Object Management Group (OMG) Es un consorcio sin fines de lucro de
especificaciones para la industria de la computación, cuyos miembros definen y
mantienen la especificación UML.
UML 1 Primera versión del Lenguaje Unificado de Modelado.
Lenguaje Unificado de Modelado (UML) Un lenguaje visual para especificar, construir y
documentar los artefactos de los sistemas.
XMI Una especificación basada en XML de formatos de intercambio de modelos
correspondientes.
Conceptos de modelado especificados por UML
El desarrollo de sistemas se centra en tres modelos generales de sistemas diferentes:
• Funcionales: Se trata de diagramas de casos de uso que describen la
funcionalidad del sistema desde el punto de vista del usuario.
• De objetos: Se trata de diagramas de clases que describen la estructura del
sistema en términos de objetos, atributos, asociaciones y operaciones.
• Dinámicos: Los diagramas de interacción, los diagramas de máquina de estados
y los diagramas de actividades se usan para describir el comportamiento
interno del sistema.
Tipos de diagramas UML
UML usa elementos y los asocia de diferentes formas para formar diagramas
que representan aspectos estáticos o estructurales de un sistema, y diagramas
de comportamiento, que captan los aspectos dinámicos de un sistema.
Diagramas UML estructurales
El diagrama UML más comúnmente usado, y la base principal de toda solución
orientada a objetos. Las clases dentro de un sistema, atributos y operaciones, y
la relación entre cada clase. Las clases se agrupan para crear diagramas de
clases al crear diagramas de sistemas grandes.
Diagrama de componentes Muestra la relación estructural de los elementos del
sistema de software, muy frecuentemente empleados al trabajar con sistemas
complejos con componentes múltiples. Los componentes se comunican por
medio de interfaces.
Diagrama de estructura compuesta Los diagramas de estructura compuesta se
usan para mostrar la estructura interna de una clase.
Diagrama de implementación Ilustra el hardware del sistema y su software. Útil
cuando se implementa una solución de software en múltiples máquinas con
configuraciones únicas.
Muestra la relación entre objetos por medio de ejemplos del mundo real e
ilustra cómo se verá un sistema en un momento dado. Dado que los datos
están disponibles dentro de los objetos, estos pueden usarse para clarificar
relaciones entre objetos.
Diagrama de paquetes Hay dos tipos especiales de dependencias que se
definen entre paquetes: la importación de paquetes y la fusión de paquetes.
Los paquetes pueden representar los diferentes niveles de un sistema para
revelar la arquitectura. Se pueden marcar las dependencias de paquetes para
mostrar el mecanismo de comunicación entre niveles.
Diagramas UML de comportamiento
Flujos de trabajo de negocios u operativos representados gráficamente para
mostrar la actividad de alguna parte o componente del sistema. Los diagramas
de actividades se usan como una alternativa a los diagramas de máquina de
estados.
Similar a los diagramas de secuencia, pero el enfoque está en los mensajes que
se pasan entre objetos. La misma información se puede representar usando un
diagrama de secuencia y objetos diferentes.
Diagrama de panorama de interacciones Hay siete tipos de diagramas de
interacciones. Este diagrama muestra la secuencia en la cual actúan.
Diagrama de secuencia Muestra cómo los objetos interactúan entre sí y el
orden de la ocurrencia. Representan interacciones para un escenario concreto.
Similar a los diagramas de actividades, describen el comportamiento de
objetos que se comportan de diversas formas en su estado actual.
Al igual que en los diagramas de secuencia, se representa el comportamiento
de los objetos en un período de tiempo dado. Si hay un solo objeto, el diagrama
es simple. Si hay más de un objeto, las interacciones de los objetos se muestran
durante ese período de tiempo particular.
Representa una funcionalidad particular de un sistema. Se crea para ilustrar
cómo se relacionan las funcionalidades con sus controladores (actores)
internos/externos.
Cómo crear un diagrama UM