2. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Clases y Objetos
Diagrama de Clases y Diagramas de Objetos pertenecen
a dos vistas complementarias del modelo
Un Diagrama de Clases muestra la abstracción de una
parte del dominio
Un Diagrama de Objetos representa una situación
concreta del dominio
Las clases abstractas no son instanciadas
3. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Permite gestionar la complejidad mediante un
ordenamiento taxonómico de clases
Se obtiene usando los mecanismos de abstracción de
Generalización y/o Especialización
La Generalización consiste en factorizar las propiedades
comunes de un conjunto de clases en una clase más
general
4. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Nombres usados: clase padre - clase hija. Otros nombres:
superclase - subclase, clase base - clase derivada
Las subclases heredan propiedades de sus clases padre, es
decir, atributos y operaciones (y asociaciones) de la clase
padre están disponibles en sus clases hijas
5. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
La Generalización y Especialización son equivalentes en
cuanto al resultado: la jerarquía y herencia establecidas
Generalización y Especialización no son operaciones
reflexivas ni simétricas pero sí transitivas
6. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
Vehículo
Veihículo Terrestre Vehículo Aéreo
Coche Camión Avión Helicóptero
• Diagramas de Clases - Generalización
7. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
La especialización es una técnica muy eficaz para la
extensión y reutilización
Funcionando Estropeado
Coche
8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
La noción de clase está próxima a la de conjunto
Dada una clase, podemos ver el conjunto relativo a las
instancias que posee o bien relativo a las propiedades de la
clase
Generalización y especialización expresan relaciones de
inclusión entre conjuntos
• Diagramas de Clases - Generalización
9. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Particionamiento del espacio de objetos => Clasificación
Estática
Particionamiento del espacio de estados de los objetos =>
Clasificación Dinámica
En ambos casos se recomienda considerar
generalizaciones/especializaciones disjuntas
10. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Un ejemplo de clasificación estática
Vehículo Aéreo
Avión Helicóptero
11. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Un ejemplo de clasificación dinámica
Funcionando Estropeado
Coche
12. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Extensión: Posibles instancias de una clase
Intensión: Propiedades definidas en una clase
A
B
int(A) ⊆ int(B)
ext(B) ⊆ ext(A)
14. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
ext(C0) = ∪ ext(Ci) ⇒ completa
extt(Ci) ∩ extt(Cj) = ∅ ⇒ disjunta en t
extt1(Ci) ∩ extt2(Cj) ≠ ∅ ⇒ posiblemente
no disjunta en
diferentes
instantes
Clasificación dinámica:
C0
C1 Cn
{ dinámica }
15. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
Ejemplo: varias especializaciones a partir de la misma
clase padre, usando discriminadores:
Vehículo Aéreo
Avión Helicóptero
Comercial Militar
estructura
uso
16. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Herencia Múltiple
Se presenta cuando una subclase tiene más de una
superclase
La herencia múltiple debe manejarse con precaución.
Algunos problemas son el conflicto de nombre y el
conflicto de precedencia
Se recomienda un uso restringido y disciplinado de la
herencia. Java y Ada 95 simplemente no ofrecen
herencia múltiple
17. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Herencia Múltiple
Ejemplo: Uso disciplinado de la herencia múltiple;
clasificaciones disjuntas con clases padre en hojas de
jerarquías alternativas
Animal
Bípedo Cuadrúpedo
Con Pelos
Con Plumas
Con Escamas
Herbívoro
Carnívoro
cobertura
cobertura
cobertura
comida
nro patas
comida
Conejo
nro patas
18. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Modelo Conceptual
Ejemplo en desarrollo:
Modelo Conceptual
para el sistema de
Administración de
Proyectos.
19. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Modelo Conceptual
Como se aprecia, la flecha que relaciona las clases asalariado y part-
time con recurso, representa una asociación de generalización (o bien,
relación “es un”).
Sólo por simplicidad, se han omitido los atributos de cada clase. Sin
embargo, normalmente éstos se consideran en lo que se denomina
Diagrama de Clases de Alto Nivel , como por ejemplo:
20. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Modelo Conceptual
Ejemplo en desarrollo:
Diagrama de Clases
de Alto Nivel para el
subsistema de
Administración de
Recursos.
21. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagrama Resumen AOO
El siguiente diagrama resume las asociaciones entre los casos de uso,
modelo conceptual, escenarios y diagramas de secuencia: