UML
Tipo de diagramas UML
En la versión actual de UML (UML 2.5) se definen los siguientes tipos de diagramas:
- Diagramas estructurales
Muestran la estructura estática de los objetos en un sistema.- Diagrama de clases. 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. La clase se suele representar con tres partes: nombre en la parte superior, atributos en el centro y operaciones o métodos en la parte inferior. Las Diferentes relaciones entre las clases (asociación,agregación, composición, dependencia y herencia) se representan por diferentes tipos de flechas.
- Diagrama de componentes. Muestra la relación estructural de los componentes de un sistema de software. Los componentes se comunican entre sí mediante interfaces y éstas se enlazan mediante conectores. )
- Diagrama de despliegue. Muestra el hardware del sistema y el software de ese hardware.
- Diagrama de objetos. Son muy similares a los diagramas de clases, pero usan ejemplos del mundo real. Se utilizan para mostrar cómo se verá un sistema en un momento dado.
- Diagrama de paquetes. Muestra las dependencias entre diferentes paquetes de un sistema.
- Diagrama de perfiles. Es un nuevo tipo de diagrama introducido en UML 2. Es un diagrama auxiliar que permite definir estereotipos personalizados, valores etiquetados y restricciones como un mecanismo de extensión ligero al estándar UML.
- Diagrama de estructura compuesta. Se utilizan para mostrar la estructura interna de una clase.
- Diagramas de comportamiento
Muestran el comportamiento dinámico de los objetos en el sistema.- Diagrama de actividades. Representan los flujos de trabajo.
- Diagrama de casos de uso. Ofrecen una visión general de los actores involucrados en un sistema, las diferentes funciones que necesitan esos actores y cómo interactúan estas diferentes funciones.
- Diagrama de máquina de estados. Son similares a los diagramas de actividad. Son útiles para describir el comportamiento de los objetos que actúan de manera diferente de acuerdo con el estado en que se encuentran en el momento.
- Diagramas de interacción. Es un subconjunto de los diagramas de comportamiento. Comprende los siguientes diagramas:
- Diagrama de secuencia. Muestran cómo los objetos interactúan entre sí y el orden en que se producen esas interacciones. Los procesos se representan verticalmente y las interacciones se muestran como flechas.
- Diagrama de comunicación. En UML 1 se llamaba de colaboración. Es similar a los diagramas de secuencia, pero el foco está en los mensajes pasados entre objetos.
- Diagrama de tiempos, o de sincronización. Son muy similares a los diagramas de secuencia. Representan el comportamiento de los objetos en un marco de tiempo dado.
- Diagrama global de interacciones. Son muy similares a los diagramas de actividad. Mientras que los diagramas de actividad muestran una secuencia de procesos, los diagramas de interacción muestran una secuencia de diagramas de interacción.
UML y análisis orientado a objetos
Con UML se puede documentar:
- Objetos, representan una entidad y el bloque básico de construcción.
- Clases, el plano de un objeto.
- Abstracción, representa el comportamiento de una entidad en el mundo real.
- Encapsulación, el mecanismo de unir los datos y esconderlos del mundo exterior.
- Herencia, el mecanismo de hacer nuevas clases a partir de las existentes.
- Polimorfismo, define el mecanismo para existir de diferentes maneras.
El propósito del análisis y el diseño orientado a objetos es:
- Identificar los objetos de un sistema.
- Identificar sus relaciones.
- Hacer un diseño, que pueda convertirse en ejecutables mediante lenguajes OO.
Diagrama de clases
Una clase representa un conjunto de objetos que tienen responsabilidades similares.
El diagrama de clases se usa para definir un diseño detallado del sistema. Describe los atributos (variables miembro) y las operaciones (métodos) de una clase.
Relaciones entre clases
Cuando una clase es "un tipo" de otra clase es una relación is-a (herencia).
Cuando existen asociaciones entre dos clases se puede dar:
- Una clase "contiene" otra clase (relación has-a).
- Una clase "usa" otra clase (relación uses-a).
- Una clase "crea" otra clase.
Existen variaciones sobre esas posibilidades:
- El item contenido es parte del item que lo contiene (como el motor de un coche): composición.
- Se tiene una colección de cosas que pueden existir por sí mismas (como los aviones de un aeropuerto): agregación.
Notación
Cada rectángulo representa una clase. En este rectángulo se pueden representar tres aspectos de una clase:
- El nombre de la clase.
- Los datos que componen la clase.
- Los métodos (funciones) de la clase.
Accesibilidad
La accesibilidad se indica de la siguiente forma:
- Público:
+
- Todos los objetos pueden acceder este dato o método.
- Protegido:
#
- Solo esta clase y todas sus subclases pueden acceder este dato o método.
- Privado:
-
- Solo los métodos de esta clase pueden acceder este dato o método.
Relaciones
classDiagram
claseA --|> claseB : Herencia
claseC --* claseD : Composición
claseE --o claseF : Agregación
claseG --> claseH : Asociación
claseI -- claseJ : Enlace(Sólido)
claseK ..> claseL : Dependencia
claseM ..|> claseN : Realización
claseO .. claseP : Enlace (Discontinuo)
Los diferentes tipos de relaciones disponibles en UML son:
-
Extensibilidad – herencia, la relación "is-a".
classDiagram A <|-- B
- La clase B se deriva de A
- A generaliza B
-
Asociación – describe cómo varios elementos toman parte en una interacción.
-
Agregación.
classDiagram A o-- B
- A agrega B
- B es parte de A
-
Composición – relación "has-a"
classDiagram A *-- B
- A está compuesto por B
- A contiene objetos de tipo B
-
-
Dependencia – representa la dependencia entre dos clases en us sistema; relación "uses-a".
classDiagram A ..> B
- A depende de B
- A usa B