04 modelo dean�lisis-2

Preview:

Citation preview

Desarrollo de software orientado a objetos

Unidad 4:Modelo de Análisis

Agenda

Introducción Clases de Análisis Modelo Conceptual

Introducción

Introducción

En el Workflow de Análisis se analizan, refinan y estructuran los requerimientos capturados con el propósito de estructurar el sistema completo.

Los modelos que se desarrollan describen qué es lo que el sistema va a hacer.

Introducción

Los modelos que se desarrollan están orientados al problema y no al ambiente en el que el sistema va a ser desarrollado e implementado.

El modelo de análisis proporciona una configuración conceptual del sistema que consiste de objetos de control, entidad e interfaces.

Introducción

Se describe un diagrama preliminar de clases persistentes (Modelo Conceptual)

Se describen el comportamiento preliminar del sistema (Diagrama de Secuencia del Sistema y Contratos).

Modelo de Casos de Uso vs. Modelo de Análisis

Modelo de Casos de Uso

Se describe usando el lenguaje del cliente.

Es la vista externa del sistema.

Modelo de Análisis Se describe usando

el lenguaje del desarrollador.

Es la vista interna del sistema

Modelo de Casos de Uso vs. Modelo de Análisis

Modelo de Casos de Uso

Se usa a manera de contrato entre clientes y desarrolladores para definir lo que el sistema debe y no debe hacer

Modelo de Análisis Se usa para que

los desarrolladores comprendan como el sistema debe ser diseñado e implementado.

Modelo de Casos de Uso vs. Modelo de AnálisisModelo de Casos de

Uso Puede contener

redundancias e inconsistencias en el enlace con los requerimientos.

Captura funcionalidad del sistema

Modelo de Análisis No debe contener

redundancias ni inconsistencias en la interpretación de los requerimientos.

Bosqueja como realizar la funcionalidad dentro del sistema.

Clases de Análisis

Clases de análisis

El modelo conceptual de clases de análisis ayuda a refinar los requerimientos y permite a los desarrolladores describir la estructura interna del sistema.

Los estereotipos son tres: interfaces, entidades y controladoras

Clases Interfaz o Frontera

Las Clases “Boundary” se usan para modelar la interacción entre el sistema y los actores.

Esta interacción involucra recibir (y presentar) información y peticiones desde usuarios y sistemas externos.

Clases Interfaz o Frontera

Representan la abstracción de de ventanas, formularios, paneles, interfaces de comunicación, impresoras, sensores, terminales o dispositivos.

Clases Interfaz o Frontera

Ejemplo: La interfaz de pago es usada

para soportar la interacción entre el actor cajero y el caso de uso de Registrar Pago.

Cajero Interfaz Pago

Clases Entidad

Las Clases Entidad (Entity) son usadas para modelar la información que tiene permanencia en el tiempo y es persistente.

Modelan la información y el comportamiento asociado de algún concepto como una persona, evento u objeto del mundo real.

Clases Entidad

Usualmente muestran la estructura de datos lógica que contribuye a la comprensión de la información que depende el sistema.

Clases Entidad

Ejemplo: La clase entidad Pago permite

mostrar la información de un pago en la interfaz de pago.

Cajero Interfaz Pago

Pago

consulta

Clase Controladora

Las clases “control” representan la coordinación, secuencia, gestión de transacciones y control de otros objetos.

Usualmente se usan para encapsular el control relacionado con un caso de uso específico.

Clase Controladora

También se usan para representar cálculos y derivaciones complejas, como la lógica del negocio que no se puede relacionar con ninguna entidad.

La dinámica del sistema se modela en una clase controladora, que se encarga de delegar trabajo a otras clases.

Clase Controladora

Ejemplo: La controladora de pagos es

responsable de la coordinación entre la interfaz de pagos y la entidad pago.

CajeroInterfaz

Pago

Pago

Registrar

Controladorade Pagos

Crear

Diagrama de Clases

Es un diagrama que muestra las clases de análisis y sus relaciones.

Se realizan para cada Caso de Uso.

CajeroInterfaz

Pago

Pago

Registrar

Controladorade Pagos

Crear

¿Cómo encontrar clases?

Análisis de los Casos de Uso. Paquetes.

Análisis de los Casos de Uso

Es el proceso de examinar los casos de uso y descubrir los objetos y clases del sistema bajo estudio.

Se pone énfasis en el estudio de los cursos o flujos de eventos.

Se descubren y crean las clases controladoras, entidad y de interfaz.

Encontrando Objetos Entidad Los objetos entidad se identifican

examinando los nombres y sustantivos usados en la descripción de los flujos de eventos.

Los sustantivos encontrados pueden ser: Objetos Descripción del estado de un objeto. Entidades externas y/o actores. Nada de lo descrito anteriormente.

Filtrando Sustantivos

Con la identificación de sustantivos podemos darnos cuenta de que: Muchos términos se refieren al

mismo objeto. Un término puede referirse a mas

de un objeto. El lenguaje natural es muy ambiguo

Filtrando Sustantivos

Este método puede identificar objetos sin importancia, en consecuencia: La lista de nombres debe filtrarse. Advertencia: Cualquier nombre

puede verbalizarse y viceversa.

Nota: Cada nombre debe ser considerado dentro del contexto del problema. No singularmente.

Nota: Cada nombre debe ser considerado dentro del contexto del problema. No singularmente.

Observando los sustantivos Un requerimiento se ha

expresado como: “Se deben tomar en cuenta las

condiciones legales vigentes al hacer una venta.”

Si sólo consideramos los nombres sin estudiarlos ¿qué pasaría?

Escenario normal del caso de uso “Crear horario”

Acción del actor Respuesta del sistema1. <Estudiante>: Indica

semestre e ingresa su número de matrícula para crear un nuevo horario.

2. Valida el número y muestra lista de cursos obligatorios disponibles para el semestre.

3. <Estudiante>: Selecciona cursos obligatorios.

4. Muestra lista de cursos electivos del semestre.

5. <Estudiante>: Selecciona cursos electivos.

6. Determina si el alumno cumple con los prerrequisitos requeridos examinando su record académico y si es así, lo incorpora al registro de alumnos del curso.

Escenario normal del caso de uso “Crear horario”

Acción del actor Respuesta del sistema

7. <Estudiante>: Indica que ha terminado el registro si todo está conforme.

8. Graba el registro de nuevo horario y matrícula e imprime boleta de inscripción.

9. <Estudiante>: Indica fin de registro.

10.Envía la información de matrícula al sistema de pagos.

Sustantivos del escenario de “Crear horario”

Estudiante, número de Matrícula Sistema Semestre Nuevo Horario Lista de cursos obligatorios

disponibles Cursos obligatorios Lista de cursos electivos disponibles Cursos electivos

¿Qué nombres deben filtrarse?

¿Qué nombres deben filtrarse?

¿Qué nombres deben filtrarse?

¿Qué nombres deben filtrarse?

Sustantivos del escenario de “Crear horario”

Prerrequisitos requeridos Record académico Lista de alumnos del Curso Matrícula Boleta de inscripción Información de matrícula Sistema de Pagos

Objetos entidad candidatos

Nuevo horario: lista de cursos del estudiante para un semestre.

Lista de cursos disponibles: lista de los cursos ofrecidos en un semestre.

Curso obligatorio: un curso ofrecido en un semestre.

Curso electivo: un curso ofrecido en un semestre.

Objetos entidad candidatos

Prerrequisitos: Una lista de los cursos que son necesarios para llevar un curso dado.

Record académico: Una lista de los cursos llevados por el estudiante en semestres anteriores.

Lista de alumnos del curso: Lista de los estudiantes matriculados en un curso ofrecido.

Información de matrícula: Información requerida por el sistema de pagos.

Creando clases entidad

Los objetos entidad se agrupan en clases. Basados en una estructura y

comportamiento similares. Las clases entidad se refinan

estudiando otros escenarios.

Clases entidad candidatas

Clase Descripción

Horario Lista de los cursos de un estudiante para un semestre

Catálogo Lista de todos los cursos ofrecidos en un semestre

Curso Un curso ofrecido en un semestre

Prerrequisito

Un curso necesario para llevar otro curso

Clases entidad candidatas

Clase Descripción

Record Académico

Lista de los cursos previamente llevados por un estudiante

Alumnos x Curso

Lista de los estudiantes matriculado en un curso ofrecido

Información Matrícula

Información de la matrícula requerida por el Sistema de Pagos

Encontrando clases interfaz

Examinar cada par actor / escenario y crear las clases interfaz obvias.

Ejemplo: Una interfaz “FormularioRegistro” se

requiere para que el estudiante se identifique y seleccione la opción deseada.

Una interfaz “FormularioHorario” se necesita para ingresar la información de cursos seleccionados por el estudiante.

Prototipo Se usan para comunicar la apariencia y

manejo de una interfaz al usuario.

Encontrando clases interfaz

Las clases interfaz se crean también para la comunicación sistema-a-sistema.

Se adicionan para describir el protocolo de comunicación elegido.

Encontrando clases controladoras

Las clases controladoras típicamente contienen información secuencial.

Advertencia: No deben realizar responsabilidades que le competen a las clases entidad e interfaz.

Encontrando Clases Controladoras En este nivel de análisis debe

adicionarse una controladora por caso de uso.

Una sola controladora se responsabiliza por cada escenario y flujo de eventos de un caso de uso.

Encontrando Clases Controladoras Este estudio es inicial. A medida que se desarrollan

mas casos de uso y sus escenarios se pueden eliminar, dividir o combinar.

Clase controladora candidata

Se adicionar una clase de Control denominada AdministradorRegistros Recibe información de la Interfaz

“FormularioHorarios”. Para cada curso seleccionado:

Solicita sus prerrequisitos. Verifica en el Record académico del estudiante si

este aprobó los prerrequisitos del curso de su elección.

Clase controladora candidata

..... Sabe que hacer si un prerrequisito no ha sido

aprobado. Verifica si el curso esta con cupo. Sabe que hacer cuando uno de los cursos

seleccionados por el estudiante ya no tiene cupo.

Crea los objetos de Horario e InformacionMatrícula.

Asocia el pago al Horario matriculado.

Paquete

Paquetes

Es un mecanismo de propósito general para organizar elementos en grupos.

Como el número de clases crece a medida que se van analizando más y más escenarios es conveniente: Que las clases se agrupen en paquetes. Proporciona la habilidad de organizar el modelo en

desarrollo.

Paquetes en el Sistema de Matrícula Para agrupar clases podemos

reconocer tres paquetes: Artefactos de la Universidad Reglas de Negocio e Interfaces.

Artefactos de la Universidad: Horario, Catalogo, Curso,

RecordAcademico, AlumnosXCurso InformacionPago.

Paquetes en el Sistema de Matrícula

Reglas del Negocio: AdministradoraRegistros

Interfaces: FormularioRegistro,

FormularioHorario, SistemaPago, e Impresora.

Diagramas de Clases

Es una vista de los paquetes y clases del sistema en estudio. Usualmente se elabora mas de uno

para su correcta revisión y control. El diagrama de clases principal

muestra solamente la relación entre paquetes.

Los secundarios usualmente muestran las clases relacionadas con el paquete o con un caso de uso específico.

Diagrama de Clases Principal

Arterfactos de la

Universidad

InterfacesReglas del

Negocio

Clases por Paquete Interfaces

FormularioRegistro

FormularioHorario

Sistemade Pago

Impresora

Clases por Paquete Reglas del Negocio

AdministradoraRegistros

Clases por Paquete Arterfactos de la

Universidad

Catálogo

InformaciónPago

Curso

1

0..n

Alumno

Matricula

Record1

0..n

1

0..n

0..n

1

1

0..n

0..n

1

1

1..nHorari

o

Modelo Conceptual

El Modelo Conceptual

Es una vista que muestra los conceptos básicos del sistema: sus partes y relaciones.

Se utiliza un diagrama de clases de UML simplificado.

Es una representación de las relaciones entre clases entidad.

Relaciones

Son vínculos que se establecen entre los conceptos o clases.

En esta primera etapa del análisis revisaremos las: Asociaciones Agregaciones Herencia

Relación de Asociación

Representa una relación o conexión semántica entre objetos de diferentes clases

Indica un camino de comunicación o vínculo en el que las objetos de las clases tienen cierta independencia.

Relación de Asociación

Pueden ser binarias, ternarias o de orden superior.

Por defecto son bidireccionales

Relación de Asociación

Asociación binaria Se denota gráficamente

como un arco sólido conectando dos símbolos de clase.

Relación de Asociación

Asociación binaria

VUELOviajaTRIPULANTE

Atributos de las Relaciones

Multiplicidad: Es indicada por un rango en el rol. Indicar el número de instancias vinculadas entre las clases.

Rol: Cada final de la asociación es un rol (opcionalmente se documenta con un nombre).

La Multiplicidad

Define cuántas ocurrencias de un tipo A pueden ser asociados con una instancia de un tipo B.

ASIENTOposee

1 nVUELO

lugar

La Multiplicidad

Exactamente uno

Cero or muchos

Uno o muchos

Cero o uno

Rango específico

1

0..n

1..n

0..1

2..4

Muchosn

Atributos de las Relaciones

Navegabilidad: Indica el grado de visibilidad que tienen las intancias de una clase respecto de otra.

Nombre: Cada asociación puede tener un nombre

Nombre de Asociaciones

Legible y Entendible

ASIENTOposee

AVION

Relación de Asociación

Empresa Persona1..nTrabaja-para

empleador empleado

Trabajadorsalario

jefe

gerencia

0..1

trabajador n

Dirección de lectura del nombre de relación

Clase asociativ

a

1..n

Relación involutiv

a

Agregaciones

Las agregaciones se identifican con relaciones entre tipos que impliquen que uno “tiene a” otro.

Agregaciones Vs. Asociaciones

Aeropuerto

VueloAvion

¿El Vuelo está compuesto de Avión y Aeropuerto?

Agregación

Polígono Punto3..*Contiene

Estilo

colortexturadensidad

n1

Composición

Es una forma fuerte de agregación donde el tiempo de vida de la parte coincide con el todo.

Las partes no deben sobrevivir fuera del todo.

Operaciones de copia o eliminación al todo deben propagarse a las partes.

Soporta encapsulamiento.

Agregación vs. Composición

Círculo

Polígono

Punto

Estilo

Test de Agregaciones

¿Para describir la relación se usa la frase “es parte de”? Una puerta “es parte de” un Carro

¿Hay operaciones sobre el todo que se aplican automáticamente a las partes? Al mover el carro, se mueven sus

puertas

Test de Agregaciones

¿Hay valores de atributos que se propagan del todo a sus partes? El carro es azul, sus puertas son

azules ¿Existe una asimetría intrínseca

en la relación donde una clase está subordinada a la otra? Las puertas SON parte del carro, un

carro NO ES parte de una puerta

Atributos

Los atributos deben definirse de en correspondencia con los necesarios para representar los objetos del mundo real y no con componentes de software.

Atributos

No utilizar atributos complejos (objetos). Utilice asociaciones

Vuelo

Destino

Destino es complejo, modele como concepto sus posibles valores

Atributos

No utilizar atributos que sean llaves foráneas. Utilice asociaciones

Vuelo

NumPiloto

NumPiloto es una llave foránea, modele una asociación con Piloto

Atributos

Los atributos “Tipo”, “Categoría”, “Estado” generalmente no se modelan como tales.

Vuelo

Tipo

Existe otra forma de Modelarlos.¡Son objetos con comportamientosDistintos!

Herencia La herencia define una relación entre clases, donde

una clase comparte estructura y/o comportamiento con una o mas clases.

La herencia define una jerarquía de abstracciones en que una subclase hereda de una o mas superclases. Con una herencia simple, la subclase hereda de una única

superclase. Con una herencia múltiple la subclase hereda de una o mas

superclases.

Superclase

Subclase

Relación de Herencia

Estudiante

Usuario

Diagramando una Herencia

Herencia es la relación que se define como: “es un” o “es una clase de”.

Herencia es la relación que se define como: “es un” o “es una clase de”.

Consideraciones

Desde que la herencia no relaciona objetos individuales. La relación no tiene nombre La multiplicidad no es significativa

En teoría no existen límites para los niveles de herencia. Depende del lenguaje de desarrollo.

¿Qué ventajas tiene la herencia?

Una subclase hereda de su padre: Atributos Operaciones Relaciones

Una subclase puede: Tener atributos adicionales,

operaciones y relaciones propios. Redefinir operaciones heredadas

(¡ Usar esto con precaución !)

Heredando Atributos

Los atributos son definidos en el mas alto nivel de la jerarquía de herencia en donde son aplicables.

Las subclases de una clase hereda todos sus atributos.

Cada subclase puede tener atributos propios.

Un camión tiene tres atributos:• NumeroPlaca• Peso• Tonelaje

Un camión tiene tres atributos:• NumeroPlaca• Peso• Tonelaje

Camion

Tonelaje

Vehiculo

PesoNumeroPlaca

Carro

Heredando Atributos

Ejemplo

Heredando Operaciones.

Las operaciones son definidas en el mas alto nivel de la jerarquía de herencia en donde son aplicables.

Las subclases de una clase hereda todas sus operaciones. Cada subclase puede aumentar o redefinir las operaciones

heredadas.

Un camión tiene tres atributos:

• NumeroPlaca• Peso• Tonelaje

y dos operaciones:• registrar()• obtenerImp()

Un camión tiene tres atributos:

• NumeroPlaca• Peso• Tonelaje

y dos operaciones:• registrar()• obtenerImp()

Heredando Operaciones.

Ejemplo:

Camion

Tonelaje

Vehiculo

PesoNumeroPlaca

Carro

registrar( )

obtenerImp ( )

Heredando Relaciones

Las relaciones también se heredan y son definidas en el mas alto nivel de la jerarquía de herencia en donde son aplicables

Las subclases de una clase hereda todas sus relaciones Cada subclase puede participar de otras relaciones.

• Un carro se relaciona con su dueño

• Un camión se relaciona con su dueño

• Un camión tiene un trailer

• Un carro se relaciona con su dueño

• Un camión se relaciona con su dueño

• Un camión tiene un trailer

Heredando Relaciones

Ejemplo:

Camion

tonelaje

Vehiculo

PesonumeroPlaca

Carro

dueña

registrar( )

obtenerImp()

Persona

0..*

Trailer

1

Jerarquía de herencias

Tanto la generalización como la especialización se usan para desarrollar una jerarquía de herencias.

Durante el análisis las herencias de las clases se establecen si son evidentes y necesarias.

Jerarquía de herencias

Durante el diseño estas jerarquías se refinan para: Incrementar el reuso. Incorporar clases de

implementación. Incorporar librerías de clases

disponibles.

Niveles de Abstracción

Las clases deben ser modeladas de

acuerdo a un mismo nivel de

abstracción

Las clases deben ser modeladas de

acuerdo a un mismo nivel de

abstracción

Vehiculo

Ford

Terrestre

Camion Avion

Aéreo

Helicoptero

Avion Helicoptero Lobo Caballo

ObjetoVolador Animal

Pajaro

Herencia Múltiple

El Pajaro hereda tanto de ObjetoVolador como de Animal

El Pajaro hereda tanto de ObjetoVolador como de Animal

Herencia Múltiple

Conceptos de herencia múltiple Conceptualmente son necesarias

para modelar de manera adecuada el mundo real.

En la práctica puede haber problemas para su implantación. No todos los lenguajes del

programación dan soporte al problema de la herencia múltiple de manera directa.

Conceptos de herencia múltiple Conceptualmente son necesarias

para modelar de manera adecuada el mundo real.

En la práctica puede haber problemas para su implantación. No todos los lenguajes del

programación le dan soporte al problema de la herencia múltiple de manera directa.

Use herencia múltiple sólo

cuando se requiera

pero siempre con precaución !

Use herencia múltiple sólo

cuando se requiera

pero siempre con precaución !

Conflicto de nombres en atributos y operaciones Herencia Repetida

Problemas de Herencia Múltiple

Cada lenguaje/ambiente escoje la manera de resolver el problema

Cada lenguaje/ambiente escoje la manera de resolver el problema

ObjetoVoladorcolor

getColor

Animalcolor

getColor

Pajaro

ObjetoVolador

Animal

Pajaro

ObjetoAnimadocolor

Encontrando la Herencia

Es importante evaluar todas las clases para descubrir herencias posibles. Examinar el comportamiento común

(operaciones) y estado (atributos) en clases.

Técnica de adición... Adicionar nuevas operaciones/atributos

a la(s) subclase(s).

Encontrando la Herencia

Técnica de modificación... Redefinir operaciones

Cuidar de no cambiar la semántica. Las operaciones modificadas no deben cambiar su propósito.

Herencia versus Agregación

Usualmente se confunden..... La herencia representa una relación

“es un”. La agregación representa la relación

“tiene a”. Esta palabras clave ayudan a

aclarar la relación

Una WindowScrollbar “es una” Window

Una WindowScrollbar “tiene una” Scrollbar

¿Que relaciones deben usarse?

Una WindowScrollbar “es una” Window

Una WindowScrollbar “tiene una” Scrollbar

¿Que relaciones deben usarse?

Window y Scrollbar

Window Scrollbar

WindowScrollbar

Window y Scrollbar (cont.)

Window

WindowScrollbar

Scrollbar

Scrollbar

Window

WindowScrollbar

11

Cuadro Comparativo

Herencia Agregación

• Keywords “es una”

• Un objeto

•Respresentada por una flecha

• Keywords “tiene a”

• Relaciona objetos de diferentes clases

• Representada por un diamante

Problema: ¿Cómo se puede modelar?

Problema: ¿Cómo se puede modelar?

¿Qué es una metamorfosis?

Es un cambio de forma, estructura o función

Cualquier cambio marcado como en carácter, apariencia o condición.

Ejemplo:

En la Universidad hay estudiantes a tiempo completo y a tiempo parcial. Los estudiantes a tiempo completo

tienen un Id y una fecha de graduación esperada, pero un estudiante a tiempo parcial no.

Los estudiantes a tiempo parcial pueden tomar un máximo de 3 cursos. Los a tiempo completo no tienen un máximo de cursos.

EstudiantePartTime

Nombre

Direccion

NroDeCursos

Ejemplo:

EstudianteFullTime

Nombre

Direccion

IDEstudiante

FechaGraduacion

¿Qué pasa si un estudiante a tiempo parcial se convierte en un estudiante a tiempo completo?

¿Qué pasa si un estudiante a tiempo parcial se convierte en un estudiante a tiempo completo?

Una aproximación.....

Estudiante

NombreDireccion

EstudiantePartTime

NroDeCursos

EstudianteFullTime

IDEstudianteFechaGraduacion

Definiciones

Es muy difícil cambiar la clase de un objeto.

Una mejor técnica de modelamiento es…: Situar la estructura y

comportamiento que “cambia” dentro de la propia clase.

Definiciones

Estudiante

NombreDireccion

ClasificaPartTime

NroDeCursos

ClasificaFullTime

IDEstudianteFechaGraduacion

0,1 0,1

Definiciones (cont.)

Mary SmithFull time student

Joe JonesPart time student

MarySmith : Estudiante

: ClasificaFullTime

1

1

JoeJones : Estudiante

: ClasificaPartTime

1

1

: Estudiante :ClasificaFullTime

: ControlEstudiante

: ClasificaPartTime

Eliminar()

Crear()

CambiarAFullTime()

Definiciones (cont.)

La Metamorfosis está acompañada de la conversación de un objeto a sus partes cambiantes.

Metamorfosis y herencia

La herencia se debe usar para modelar la estructura, comportamiento y/o relaciones comunes para las partes “cambiantes”.

Estudiante

NombreDireccion

1 Clasificacion

PartTime

NroCursos

FullTime

IDEstudianteFechaGraduacion

Metamorfosis y flexibilidad

Esta técnica también adiciona flexibilidad al modelo.

Ejemplo: Un estudiante puede también vivir en el campus. En este caso, existe un identificador de residencia (pabellón), un número de cuarto y de llave.

Metamorfosis y flexibilidad

InformacionResidencia

PabellonCuartoIDCuarto 1

0..1

Estudiante

NombreDireccion

1 Clasificacion

PartTime

NroCursos

FullTime

IDEstudianteFechaGraduacion

Resumen de Relaciones

Una asociación es una conexión entre dos clases que representa comunicación.

La multiplicidad es el número de instancias que participan en una asociación. Se la representa en cada final de la

línea de asociación.

Resumen de Relaciones (cont.)

Una agregación es una forma especial de asociación en la cual un todo se relaciona con sus partes.

Una clase puede tener una asociación reflexiva o involutiva. Dos objetos de una misma clase

relacionados entre si. Las agregaciones también pueden ser

involutivas. Problemas de Catálogo de Materiales

(partes que se confeccionan a partir de otras partes).

Resumen de Relaciones(cont.)

La herencia define una relación donde una clase comparte su estructura y/o comportamiento con una o mas clases. Define una jerarquía de abstracciones en

donde una subclase hereda de una o muchas superclases.

Herencia Simple - una clase hereda de una única superclase.

Herencia Múltiple - una clase hereda de mas de una superclase.

Resumen de Relaciones(cont.) Una subclase hereda atributos,

operaciones y relaciones de sus superclase(s).

Una subclase puede: Tener atributos, operaciones y relaciones

propias. Refinar operaciones heredadas.

Resumen de Relaciones (cont.) La herencia y la agregación se

confunden usualmente. La herencia representa una relación

“es-un” o “es-una-clase-de”. La agregación representa una

relación “tiene-a”.