Diagrama de Clases
Diagrama de
clases
Es un tipo de diagrama de
estructura estática que describe la estructura de un sistema mostrando las
clases del sistema, sus atributos, operaciones (o métodos), y las relaciones
entre los objetos.
Miembros
UML proporciona mecanismos
para representar los miembros de la clase, como atributos y métodos, así como
información adicional sobre ellos.
Visibilidad
Para especificar la
visibilidad de un miembro de la clase (es decir, cualquier atributo o método),
se coloca uno de los siguientes signos delante de ese miembro:
+ Público
- Privado
# Protegido
/ Derivado
(se puede combinar con otro)
~ Paquete
Ámbitos
UML especifica dos tipos de
ámbitos para los miembros: instancias y clasificadores y estos últimos se
representan con nombres subrayados.
- Los miembros
clasificadores se denotan comúnmente como “estáticos” en muchos lenguajes de
programación. Su ámbito es la propia clase.
* Los valores de los
atributos son los mismos en todas las instancias
* La invocación de métodos
no afecta al estado de las instancias
- Los miembros instancias
tienen como ámbito una instancia específica.
* Los valores de los
atributos pueden variar entre instancias
* La invocación de métodos
puede afectar al estado de las instancias(es decir, cambiar el valor de sus
atributos)
Para indicar que un miembro
posee un ámbito de clasificador, hay que subrayar su nombre. De lo contrario,
se asume por defecto que tendrá ámbito de instancia.
Relaciones
Una relación es un término
general que abarca los tipos específicos de conexiones lógicas que se pueden
encontrar en los diagramas de clases y objetos. UML presenta las siguientes
relaciones:
Relaciones a nivel de
instancia
==== Un enlace es la
relación más básica entre objetos.
Asociación
Una asociación representa a
una familia de enlaces. Una asociación binaria (entre dos clases) normalmente
se representa con una línea continua. Una misma asociación puede relacionar
cualquier número de clases. Una asociación que relacione tres clases se llama
asociación ternaria.
A una asociación se le
puede asignar un nombre, y en sus extremos se puede hacer indicaciones, como el
rol que desempeña la asociación, los nombres de las clases relacionadas, su
multiplicidad, su visibilidad, y otras propiedades.
Hay cuatro tipos diferentes
de asociación: bidireccional, unidireccional, agregación (en la que se incluye
la composición) y reflexiva. Las asociaciones unidireccional y bidireccional
son las más comunes.
Por ejemplo, una clase
vuelo se asocia con una clase avión de forma bidireccional. La asociación
representa la relación estática que comparten los objetos de ambas clases.
Agregación
La agregación o agrupación
es una variante de la relación de asociación “tiene un”: la agregación es más
específica que la asociación. Se trata de una asociación que representa una
relación de tipo parte-todo o parte-de.
Al ser un tipo de
asociación, una agregación puede tener un nombre y las mismas indicaciones en
los extremos de la línea. Sin embargo, una agregación no puede incluir más de
dos clases; debe ser una asociación binaria.
Una agregación se puede dar
cuando una clase es una colección o un contenedor de otras clases, pero a su
vez, el tiempo de vida de las clases contenidas no tienen una dependencia
fuerte del tiempo de vida de la clase contenedora (de él todo). Es decir, el
contenido de la clase contenedora no se destruye automáticamente cuando
desaparece dicha clase.
En UML, se representa
gráficamente con un rombo hueco junto a la clase contenedora con una línea que
lo conecta a la clase contenida. Todo este conjunto es, semánticamente, un
objeto extendido que es tratado como una única unidad en muchas operaciones,
aunque físicamente está hecho de varios objetos más pequeños.
Composición
La representación en UML de
una relación de composición es mostrada con una figura de diamante rellenado
del lado de la clase contenedora, es decir al final de la línea que conecta la
clase contenido con la clase contenedor.
Diferencias entre
Composición y Agregación
Relación de Composición
- Cuando intentamos
representar un todo y sus partes. Ejemplo, un motor es una parte de un coche.
- Cuando se elimina el
contenedor, el contenido también es eliminado. Ejemplo, si eliminamos una
universidad eliminamos igualmente sus departamentos.
Relación de Agregación (o
Agrupación)
- Cuando representamos las
relaciones en un software o base de datos. Ejemplo, el modelo de motor MTR01 es
parte del coche MC01. Como tal, el motor MTR01 puede hacer parte de cualquier
otro modelo de coche, es decir si eliminamos el coche CM01 no es necesario
eliminar el motor pues podemos usarlo en otro modelo.
- Cuando el contenedor es
eliminado, el contenido usualmente no es destruido. Ejemplo, un profesor tiene
estudiantes, cuando el profesor muere los estudiantes no mueren con él o ella.
Así, una relación de
agregación es a menudo "clasificar" o "catalogar" contenido
para distinguirlo del todo "físico" del contenedor.
Diagramas
- El diagrama de clases
puede tener como ejemplo: una clase que sería un objeto o persona misma en la
cual se especifica cada acción y especificación.
- Propiedades de objetos
que tienen propiedades y/u operaciones que contienen un contexto y un dominio,
los primeros dos ejemplos son clases de datos y el tercero clase de lógica de
negocio, dependiendo de quién diseñe el sistema se pueden unir los datos con
las operaciones.
- El diagrama de clases
incluye mucha más información como la relación entre un objeto y otro, la
herencia de propiedades de otro objeto, conjuntos de operaciones/propiedades
que son implementadas para una interfaz gráfica.
- Presenta las clases del
sistema con sus relaciones estructurales y de herencia.
- El diagrama de clases es
la base para elaborar una arquitectura MVC o MVP.
________________________________________________________________
Fuente:
Comentarios
Publicar un comentario