Sirve para visualizar las relaciones entre las clases que involucran al sistema.
Esta compuesta por los siguientes elementos:
Clase: atributos, métodos y visibilidad.
Relaciones: herencia, composición, agregación, asociación y uso.
En UML se representa por un rectángulo que posee tres divisiones.
Atributos: Caracterizan a la clase.
Métodos: son la forma como interactúan los objetos con su entorno.
Tanto los métodos como los atributos tienen unas características que se conocen como visibilidad e interactúan de esta manera:
Public.
Private.
Protected.
Pueden interrelacionar dos o mas clases (cada uno con características y objetivos diferentes).
Entre las cuales podemos ver:
Herencia.
Agregación.
Asociación.
Dependencia o instancia.
HERENCIA.
(especialización / generalización) se representa de esta manera
Indica que una subclase hereda los métodos y atributos especificados por una superclase, por ende la subclase además de poseer sus propios métodos y atributos, poseerán las características y atributos visibles de la superclase (public, protected).
AGREGACIÓN:
Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:
Por valor: comúnmente llamada composición.
Por referencia: comúnmente llamado agregación
Se representa de esta forma:
ASOCIACIÓN:
Permite asociar objetos que colaboran entre si, cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Se representa de la siguiente manera:
ejemplo:
Un cliente puede tener asociadas muchas Órdenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente. Dependencia o Instanciación (uso):
DEPENDENCIA O INSTANCIA:
Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto / clase).
Se representa de la siguiente forma: ------------>
El uso mas particular de este tipo de relación es para detonar la independencia que tiene una clase de otra.