UML
TEMA 5 – 2
Lenguaje unificado de modelado
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.
Es importante remarcar que UML es un "lenguaje de modelado" para
especificar o para describir métodos o procesos.
UML
Se utiliza para definir un sistema, para detallar los artefactos en el sistema y
para documentar y construir. En otras palabras, es el lenguaje en el que está
descrito el modelo.
UML (Lenguaje Unificado de Modelado) NO es programación, solo es una
forma de diagramar la realidad.
UML cuenta con varios tipos de diagramas, los cuales muestran diferentes
aspectos (puntos de vista) del sistema que se quiere modelizar o representar.
Tipos de diagramas en UML 2.5
Existen dos clases principales de tipos de diagramas:
Diagramas estructurales
Diagramas de comportamiento.
Diagramas Estructurales
Muestran la estructura estática de los objetos en un sistema.
Los diagramas estructurales son:
Diagrama de clases
Diagrama de componentes
Diagrama de despliegue
Diagrama de objetos
Diagrama de paquetes
Diagrama de perfiles
Diagrama de estructura compuesta
Diagramas De comportamiento
Muestran el comportamiento dinámico de los objetos en el sistema.
Los diagramas de comportamiento son:
Diagrama de actividades
Diagrama de casos de uso
Diagramas de máquinas de estado
Diagramas de interacción
Diagrama de secuencia
Diagrama de comunicación
Diagrama global de interacción
Diagrama de tiempos
Diagrama de clases
Los diagramas de clase son el tipo de diagrama UML más utilizado.
Es el bloque de construcción principal de cualquier solución orientada a objetos.
Muestra las clases en un sistema, atributos y operaciones de cada clase y la relación
entre cada clase.
En la mayoría de las herramientas de modelado, una clase tiene tres partes:
nombre de la clase en la parte superior
atributos en el centro
operaciones o métodos en la parte inferior.
En sistemas grandes con muchas clases relacionadas, las clases se agrupan para crear
diagramas de clases.
Las Diferentes relaciones entre las clases se muestran por diferentes tipos de flechas.
Diagrama de clases
Relaciones del diagrama de clases
Los tipos más importantes de relaciones estáticas entre clases son los siguientes:
Asociación. Las relaciones de asociación representan un conjunto de enlaces entre objetos o
instancias de clases. Es el tipo de relación más general, y denota básicamente una dependencia
semántica. Por ejemplo, una Persona trabaja para una Empresa.
Herencia. Las jerarquías de generalización/especialización se conocen como herencia. Herencia es el
mecanismo que permite a una clase de objetos incorporar atributos y métodos de otra clase,
añadiéndolos a los que ya posee. Con la herencia se refleja una relación “es un” entre clases.
Agregación. La agregación es un tipo de relación jerárquica entre un objeto que representa la
totalidad de ese objeto y las partes que lo componen. Permite el agrupamiento físico de estructuras
relacionadas lógicamente.
Composición. La composición es una forma de agregación donde la relación de propiedad es más
fuerte, e incluso coinciden los tiempos de vida del objeto completo y las partes que lo componen. Los
objetos “son-parte-de” otro objeto completo. Por ejemplo, motor, ruedas, carrocería son parte
de automóvil.
Dependencia. Una relación de dependencia se utiliza entre dos clases o entre una clase y una
interfaz, e indica que una clase requiere de otra para proporcionar alguno de sus servicios.
Relaciones del diagrama de clases
diagrama de componentes
Un diagrama de componentes representa cómo un sistema de software es
dividido en componentes y muestra las dependencias entre estos
componentes
Componente
Diagrama de componentes
Sistema
encargado de la
gestión de los
préstamos y
reservas de libros
y revistas en una
biblioteca
Diagrama de despliegue
El objetivo de estos diagramas es mostrar la disposición de las particiones
físicas del sistema de información y la asignación de los componentes
software a estas particiones. Es decir, las relaciones físicas entre los
componentes software y hardware en el sistema a entregar.
En estos diagramas se representan dos tipos de elementos:
nodos
conexiones,
así́ como la distribución de componentes del sistema de información con
respecto a la partición física del sistema.
Diagrama de despliegue
El diagrama representa una
arquitectura compuesta por
un servidor central de lógica
de negocio y acceso a datos,
en un monitor de teleproceso
de tipo XXX, al cual hay
conectados 10 servidores
departamentales, con clientes
(100) e impresora conectados
a cada uno de ellos.
Diagrama de objetos
"Un diagrama de objetos es un gráfico de instancias, incluyendo objetos y
datos. Un diagrama de objetos es una instancia de un diagrama de clases;
muestra una 'foto' del estado de un sistema en un punto de tiempo
determinado.“
Los diagramas de objeto están ligados a los diagramas de clase y comparten
virtualmente los mismos símbolos para la notación.
Diagrama de paquetes
El objetivo de estos diagramas es obtener una visión más clara del sistema de
información orientado a objetos, organizándolo en subsistemas, agrupando los
elementos del análisis, diseño o construcción y detallando las relaciones de
dependencia entre ellos. El mecanismo de agrupación se denomina Paquete.
Estos diagramas contienen dos tipos de elementos:
Paquetes: Un paquete es una agrupación de elementos, bien sea casos de uso,
clases o componentes. Los paquetes pueden contener a su vez otros paquetes
anidados que en última instancia contendrán alguno de los elementos anteriores.
Dependencias entre paquetes: Existe una dependencia cuando un elemento de un
paquete requiere de otro que pertenece a un paquete distinto. Es importante
resaltar que las dependencias no son transitivas.
Diagrama de paquetes
Sistema encargado de la
gestión de los préstamos
y reservas de libros y
revistas en una
biblioteca.
Diagrama de estructura compuesta
muestra la estructura interna de una clase y las colaboraciones que esta
estructura hace posibles.
Una estructura compuesta es un conjunto de elementos interconectados que
colaboran en tiempo de ejecución para lograr algún propósito. Cada elemento
tiene algún rol definido en la colaboración.
Diagrama de estructura compuesta
Modelización de una
cajero automático
Diagramas de comportamiento
Muestran el comportamiento dinámico de los objetos en el sistema.
Los diagramas de comportamiento son:
Diagrama de actividades
Diagrama de casos de uso
Diagramas de máquinas de estado
Diagramas de interacción
Diagrama de secuencia
Diagrama de comunicación
Diagrama global de interacción
Diagrama de tiempos
Diagrama de actividades
Estos diagramas muestran básicamente actividades, representando la
realización de operaciones y las transiciones hasta la finalización de todas
operaciones.
Tiene un único inicio
Puede tener varios finales.
Diagrama de actividad
Diagrama de casos de uso
Un caso de uso es una secuencia de acciones realizadas por el sistema, que
producen un resultado observable y valioso para un usuario en particular, es
decir, representa el comportamiento del sistema con el fin de dar respuestas
a los usuarios.
Aquellos casos de uso que resulten demasiado complejos se pueden
descomponer en un segundo nivel, en el que los nuevos casos de uso que
intervengan resulten más sencillos y manejables.
Para especificar este comportamiento existen una serie de recomendaciones o
técnicas que se aplican dependiendo del momento del desarrollo que se esté
y de la complejidad del caso de uso
Diagrama de casos de uso
Los objetivos de los casos de uso son los siguientes:
Capturar los requisitos funcionales del sistema y expresarlos desde el punto de
vista del usuario.
Guiar todo el proceso de desarrollo del sistema de información.
Los casos de uso proporcionan, por tanto, un modo claro y preciso de
comunicación entre cliente y desarrollador.
Desde el punto de vista del cliente proporcionan una visión de “caja negra” del
sistema, esto es, como aparece el sistema desde el exterior sin necesidad de entrar
en los detalles de su construcción.
Para los desarrolladores, suponen el punto de partida y el eje sobre el que se apoya
todo el desarrollo del sistema en sus procesos de análisis y diseño.
Diagrama de casos de uso
Estos diagramas presentan dos tipos de elementos fundamentales:
Actores. Un actor es algo o alguien que se encuentra fuera del sistema y que
interactúa con él. En general, los actores serán los usuarios del sistema y los
sistemas externos al que se esté desarrollando.
Casos de uso. Un caso de uso representa el comportamiento que ofrece el sistema
de información desde el punto de vista del usuario.
Diagrama de casos de uso
Diagrama de secuencia
El diagrama de secuencia es un tipo de diagrama de interacción cuyo objetivo
es describir el comportamiento dinámico del sistema de información haciendo
énfasis en la secuencia de los mensajes intercambiados por los objetos.
Un diagrama de secuencia tiene dos dimensiones:
el eje vertical representa el tiempo
el eje horizontal representa los diferentes objetos.
El tiempo avanza desde la parte superior del diagrama hacia la inferior.
Diagrama de secuencia
Prestar un ejemplar de
una aplicación
encargada de los
prestamos y reservas
de una biblioteca:
Diagrama de colaboración
El diagrama de colaboración es un tipo de diagrama de interacción cuyo
objetivo es describir el comportamiento dinámico del sistema de información
mostrando cómo interactúan los objetos entre sí, es decir, con qué otros
objetos tiene vínculos o intercambia mensajes un determinado objeto.
Un diagrama de colaboración muestra la misma información que un diagrama
de secuencia pero de forma diferente. En los diagramas de colaboración no
existe una secuencia temporal en el eje vertical; es decir, la colocación de los
mensajes en el diagrama no indica cuál es el orden en el que se suceden.
Diagrama de colaboración
Prestar un
ejemplar en una
aplicación
encargada de los
prestamos y
reservas de una
biblioteca.
Diagrama de tiempos
Los diagramas de sincronización son muy similares a los diagramas de
secuencia.
Representan el comportamiento de los objetos en un marco de tiempo dado.
Si es solo un objeto, el diagrama es directo, pero si hay más de un objeto
involucrado, también se pueden usar para mostrar interacciones de objetos
durante ese período de tiempo.
Diagrama global de interacciones
Los diagramas generales o globales de interacción son muy similares a los
diagramas de actividad.
PROGRAMAS PARA TRABAJAR CON UML
Hay muchísimos programas que permiten trabajar con UML, aunque aprender a
usarlos requiere tiempo.
Astah community: herramienta sencilla, adecuada para aprender. Se puede
descargar una versión gratuita en [Link] Astah
(antes conocido como Jude) también tiene una versión profesional.
Rational Rose: conjunto de herramientas IBM usado por muchas empresas.
Lucidchart: herramienta que permite crear muchos tipos de diagramas, entre ellos
UML. Puede probarse visitando
[Link]
Microsoft Visio: herramienta de Microsoft que permite la creación de muchos tipos
de diagramas, entre ellos diagramas UML.
Otros: Erwin, Oracle Designer, EasyCASE, Power Designer, etc. son herramientas que
incorporan muchas utilidades, entre ellas UML.