SlideShare una empresa de Scribd logo
1 de 21
FERNANDO SOLIS
INTERACCIÓN
ENTRE CLASES,
GENERALIZACIÓN
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
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
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
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
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
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
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
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
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
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
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)
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Generalización
 Clasificación estática:
ext(C0) = ∪ ext(Ci) ⇒ completa
ext(Ci) ∩ ext(Cj) = ∅ ⇒ disjunta
C0
C1 Cn
{ static }
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 }
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
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
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
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.
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:
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.
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:

Más contenido relacionado

La actualidad más candente

UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
Moises Cruz
 

La actualidad más candente (20)

UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
09 package diagram
09 package diagram09 package diagram
09 package diagram
 
Elementos de diagramas de objetos
Elementos de diagramas de objetosElementos de diagramas de objetos
Elementos de diagramas de objetos
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Patrones GRASP de tipo de bajo acoplamiento
Patrones GRASP de  tipo de bajo acoplamientoPatrones GRASP de  tipo de bajo acoplamiento
Patrones GRASP de tipo de bajo acoplamiento
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
Association agggregation and composition
Association agggregation and compositionAssociation agggregation and composition
Association agggregation and composition
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominio
 
Elementos basados en clases
Elementos basados en clasesElementos basados en clases
Elementos basados en clases
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 

Similar a INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN

2 clases y conceptos a fines
2 clases y conceptos a fines2 clases y conceptos a fines
2 clases y conceptos a fines
Mauricio Alarcon
 
Análisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesAnálisis y diseño oo con umldclases
Análisis y diseño oo con umldclases
Roberto Garcia
 
Portafolio ingenieria de software ii
Portafolio ingenieria de software iiPortafolio ingenieria de software ii
Portafolio ingenieria de software ii
COLOMA22
 

Similar a INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN (20)

INTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIAS
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
2 clases y conceptos a fines
2 clases y conceptos a fines2 clases y conceptos a fines
2 clases y conceptos a fines
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Diagramas de uml
Diagramas de umlDiagramas de uml
Diagramas de uml
 
Diagramas del uml
Diagramas del umlDiagramas del uml
Diagramas del uml
 
Diagramas del uml
Diagramas del umlDiagramas del uml
Diagramas del uml
 
Diagramas del uml
Diagramas del umlDiagramas del uml
Diagramas del uml
 
Diagramas del uml
Diagramas del umlDiagramas del uml
Diagramas del uml
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
diagramas_del_uml.pdf
diagramas_del_uml.pdfdiagramas_del_uml.pdf
diagramas_del_uml.pdf
 
Clases 2
Clases 2Clases 2
Clases 2
 
Fun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetosFun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetos
 
Análisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesAnálisis y diseño oo con umldclases
Análisis y diseño oo con umldclases
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
Portafolio ingenieria de software ii
Portafolio ingenieria de software iiPortafolio ingenieria de software ii
Portafolio ingenieria de software ii
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
CLASES DE DIAGRAMAS
CLASES DE DIAGRAMAS CLASES DE DIAGRAMAS
CLASES DE DIAGRAMAS
 
Clase5
Clase5Clase5
Clase5
 

Más de mellcv

Más de mellcv (20)

Asp .net
Asp .netAsp .net
Asp .net
 
Asp
AspAsp
Asp
 
Eventos
EventosEventos
Eventos
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICES
 
Arquitectura basada en componentes
Arquitectura basada en componentesArquitectura basada en componentes
Arquitectura basada en componentes
 
Poc 2
Poc 2Poc 2
Poc 2
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Poc
PocPoc
Poc
 
Programacion orientada a componentes
Programacion orientada a componentesProgramacion orientada a componentes
Programacion orientada a componentes
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 
MODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESOMODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESO
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVA
 
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
Principios fundamentales de la programación orientado a objetos
 Principios fundamentales de la programación orientado a objetos  Principios fundamentales de la programación orientado a objetos
Principios fundamentales de la programación orientado a objetos
 
Introduccion al lenguage java
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage java
 
Programar aplicaciones windows forms
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows forms
 

Último

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN

  • 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)
  • 13. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Generalización  Clasificación estática: ext(C0) = ∪ ext(Ci) ⇒ completa ext(Ci) ∩ ext(Cj) = ∅ ⇒ disjunta C0 C1 Cn { static }
  • 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: