Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Orientada a Objetos
Diagrama de Clases
d l
Clases
L
•Los atributos
ib d una clase
de l representan los
l d
datos asociados
i d a los
l objetos
bj
instanciados por esa clase.
•Las operaciones o métodos representan las funciones o procesos propios de los
objetos de una clase, caracterizando a dichos objetos.
El diagrama de clases permite representar clases abstractas. Una Clase abstracta es una
clase que no puede existir en la realidad, pero que es útil conceptualmente para el
diseño del modelo orientado a objetos.
j Las clases abstractas no son instanciables
directamente sino en sus descendientes. Una clase abstracta suele ser situada en la
jerarquía de clases en una posición que le permita ser un depósito de métodos y
atributos para ser compartidos o heredados por las subclases de nivel inferior.
Diagrama de Clases
Diagrama de Clases
Las clases y en general todos los elementos de los diagramas, pueden estar
clasificados de acuerdo a varios criterios, como por ejemplo su objetivo
d
dentro d un programa. Esta
de E clasificación
l ifi ió adicional
di i l se expresa mediante
di
un Estereotipo. Algunos de los autores de métodos OO, establecen una
clasificación de todos los objetos que pueden aparecer en un modelo. Los
tipos son:
•Objetos Entidad.
Objetos límite o interfaz.
•Objetos
•Objetos de control.
Clases
Una clase se representa como una caja, separada en tres zonas por líneas horizontales.
La zona central contiene una lista de atributos, uno en cada línea. La notación utilizada
para representarlos incluye, dependiendo del detalle, el nombre del atributo, su tipo y
su valor por defecto, con el formato:
En la zona inferior se incluye una lista con las operaciones que proporciona
la clase. Cada operación aparece en una línea con formato:
visibilidad nombre (lista‐de‐parámetros): tipo‐devuelto { propiedad }
nombre : tipo = valor‐por‐defecto
Diagrama de Clases
Diagrama de Clases
Las diferentes p
propiedades
p de la relación se p
pueden representar
p con la siguiente
g notación:
•Multiplicidad: La multiplicidad puede ser un número concreto, un rango o una colección de números. La
letra ‘n’ y el símbolo ‘*’ representan cualquier número.
•Orden: Se puede especificar si las instancias guardan un orden con la palabra clave ‘{ordered}’
{ordered} . Si el
modelo es suficientemente detallado, se puede incluir una restricción que indique el criterio de
ordenación.
•Navegabilidad: La navegación desde una clase a la otra se representa poniendo una flecha sin relleno en
el extremo de la línea, indicando el sentido de la navegación.
•Rol o nombre de la asociación: Este nombre se coloca junto al extremo de la línea que esta unida a una
clase, para expresar cómo esa clase hace uso de la otra clase con la que mantiene la asociación.
Diagrama de Clases
Diagrama de Clases
Además, existen notaciones específicas para los otros tipos de relación, como son:
g g
•Agregación: Se representa
p con un rombo hueco en la clase cuya
y instancia es una agregación
g g de las
instancias de la otra.
•Composición: Se representa con un rombo lleno en la clase cuya instancia contiene las instancias de la
otra clase.
•Dependencia: Una línea discontinua con una flecha apuntando a la clase cliente. La relación puede tener
un estereotipo que se coloca junto a la línea, y entre el símbolo: << ... >>.
•Herencia: Esta relación se representa como una línea continua con una flecha hueca en el extremo que
apunta a la superclase.
Asociación
Una asociación
U i ió representa t a una familia
f ili de
d enlaces.
l U asociación
Una i ió binaria
bi i
(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
q 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,
bidireccional unidireccional,
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
Relación de Composición
Cuandod intentamos
i representar un todo
d y sus partes. Ejemplo,
j l 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
g sus departamentos.
p
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
d ser partet ded cualquier
l i otro t modelo
d l de
d coche,
h es decir
d i sii eliminamos
li i ell
coche MC01 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"
físico del contenedor.
contenedor
Generalización