04 modelo dean�lisis-2

115
Desarrollo de software orientado a objetos Unidad 4: Modelo de Análisis

Transcript of 04 modelo dean�lisis-2

Page 1: 04 modelo dean�lisis-2

Desarrollo de software orientado a objetos

Unidad 4:Modelo de Análisis

Page 2: 04 modelo dean�lisis-2

Agenda

Introducción Clases de Análisis Modelo Conceptual

Page 3: 04 modelo dean�lisis-2

Introducción

Page 4: 04 modelo dean�lisis-2

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.

Page 5: 04 modelo dean�lisis-2

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.

Page 6: 04 modelo dean�lisis-2

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).

Page 7: 04 modelo dean�lisis-2

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

Page 8: 04 modelo dean�lisis-2

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.

Page 9: 04 modelo dean�lisis-2

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.

Page 10: 04 modelo dean�lisis-2

Clases de Análisis

Page 11: 04 modelo dean�lisis-2

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

Page 12: 04 modelo dean�lisis-2

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.

Page 13: 04 modelo dean�lisis-2

Clases Interfaz o Frontera

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

Page 14: 04 modelo dean�lisis-2

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

Page 15: 04 modelo dean�lisis-2

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.

Page 16: 04 modelo dean�lisis-2

Clases Entidad

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

Page 17: 04 modelo dean�lisis-2

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

Page 18: 04 modelo dean�lisis-2

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.

Page 19: 04 modelo dean�lisis-2

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.

Page 20: 04 modelo dean�lisis-2

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

Page 21: 04 modelo dean�lisis-2

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

Page 22: 04 modelo dean�lisis-2

¿Cómo encontrar clases?

Análisis de los Casos de Uso. Paquetes.

Page 23: 04 modelo dean�lisis-2

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.

Page 24: 04 modelo dean�lisis-2

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.

Page 25: 04 modelo dean�lisis-2

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

Page 26: 04 modelo dean�lisis-2

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.

Page 27: 04 modelo dean�lisis-2

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?

Page 28: 04 modelo dean�lisis-2

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.

Page 29: 04 modelo dean�lisis-2

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.

Page 30: 04 modelo dean�lisis-2

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?

Page 31: 04 modelo dean�lisis-2

¿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

Page 32: 04 modelo dean�lisis-2

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.

Page 33: 04 modelo dean�lisis-2

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.

Page 34: 04 modelo dean�lisis-2

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.

Page 35: 04 modelo dean�lisis-2

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

Page 36: 04 modelo dean�lisis-2

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

Page 37: 04 modelo dean�lisis-2

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.

Page 38: 04 modelo dean�lisis-2

Prototipo Se usan para comunicar la apariencia y

manejo de una interfaz al usuario.

Page 39: 04 modelo dean�lisis-2

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.

Page 40: 04 modelo dean�lisis-2

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.

Page 41: 04 modelo dean�lisis-2

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.

Page 42: 04 modelo dean�lisis-2

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.

Page 43: 04 modelo dean�lisis-2

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.

Page 44: 04 modelo dean�lisis-2

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.

Page 45: 04 modelo dean�lisis-2

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.

Page 46: 04 modelo dean�lisis-2

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.

Page 47: 04 modelo dean�lisis-2

Paquetes en el Sistema de Matrícula

Reglas del Negocio: AdministradoraRegistros

Interfaces: FormularioRegistro,

FormularioHorario, SistemaPago, e Impresora.

Page 48: 04 modelo dean�lisis-2

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.

Page 49: 04 modelo dean�lisis-2

Diagrama de Clases Principal

Arterfactos de la

Universidad

InterfacesReglas del

Negocio

Page 50: 04 modelo dean�lisis-2

Clases por Paquete Interfaces

FormularioRegistro

FormularioHorario

Sistemade Pago

Impresora

Page 51: 04 modelo dean�lisis-2

Clases por Paquete Reglas del Negocio

AdministradoraRegistros

Page 52: 04 modelo dean�lisis-2

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

Page 53: 04 modelo dean�lisis-2

Modelo Conceptual

Page 54: 04 modelo dean�lisis-2

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.

Page 55: 04 modelo dean�lisis-2

Relaciones

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

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

Page 56: 04 modelo dean�lisis-2

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.

Page 57: 04 modelo dean�lisis-2

Relación de Asociación

Pueden ser binarias, ternarias o de orden superior.

Por defecto son bidireccionales

Page 58: 04 modelo dean�lisis-2

Relación de Asociación

Asociación binaria Se denota gráficamente

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

Page 59: 04 modelo dean�lisis-2

Relación de Asociación

Asociación binaria

VUELOviajaTRIPULANTE

Page 60: 04 modelo dean�lisis-2

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).

Page 61: 04 modelo dean�lisis-2

La Multiplicidad

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

ASIENTOposee

1 nVUELO

lugar

Page 62: 04 modelo dean�lisis-2

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

Page 63: 04 modelo dean�lisis-2

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

Page 64: 04 modelo dean�lisis-2

Nombre de Asociaciones

Legible y Entendible

ASIENTOposee

AVION

Page 65: 04 modelo dean�lisis-2

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

Page 66: 04 modelo dean�lisis-2

Agregaciones

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

Page 67: 04 modelo dean�lisis-2

Agregaciones Vs. Asociaciones

Aeropuerto

VueloAvion

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

Page 68: 04 modelo dean�lisis-2

Agregación

Polígono Punto3..*Contiene

Estilo

colortexturadensidad

n1

Page 69: 04 modelo dean�lisis-2

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.

Page 70: 04 modelo dean�lisis-2

Agregación vs. Composición

Círculo

Polígono

Punto

Estilo

Page 71: 04 modelo dean�lisis-2

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

Page 72: 04 modelo dean�lisis-2

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

Page 73: 04 modelo dean�lisis-2

Atributos

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

Page 74: 04 modelo dean�lisis-2

Atributos

No utilizar atributos complejos (objetos). Utilice asociaciones

Vuelo

Destino

Destino es complejo, modele como concepto sus posibles valores

Page 75: 04 modelo dean�lisis-2

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

Page 76: 04 modelo dean�lisis-2

Atributos

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

Vuelo

Tipo

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

Page 77: 04 modelo dean�lisis-2

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.

Page 78: 04 modelo dean�lisis-2

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”.

Page 79: 04 modelo dean�lisis-2

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.

Page 80: 04 modelo dean�lisis-2

¿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 !)

Page 81: 04 modelo dean�lisis-2

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.

Page 82: 04 modelo dean�lisis-2

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

Page 83: 04 modelo dean�lisis-2

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.

Page 84: 04 modelo dean�lisis-2

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 ( )

Page 85: 04 modelo dean�lisis-2

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.

Page 86: 04 modelo dean�lisis-2

• 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

Page 87: 04 modelo dean�lisis-2

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.

Page 88: 04 modelo dean�lisis-2

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.

Page 89: 04 modelo dean�lisis-2

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

Page 90: 04 modelo dean�lisis-2

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

Page 91: 04 modelo dean�lisis-2

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.

Page 92: 04 modelo dean�lisis-2

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 !

Page 93: 04 modelo dean�lisis-2

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

Page 94: 04 modelo dean�lisis-2

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).

Page 95: 04 modelo dean�lisis-2

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.

Page 96: 04 modelo dean�lisis-2

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

Page 97: 04 modelo dean�lisis-2

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

Page 98: 04 modelo dean�lisis-2

Window y Scrollbar (cont.)

Window

WindowScrollbar

Scrollbar

Scrollbar

Window

WindowScrollbar

11

Page 99: 04 modelo dean�lisis-2

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

Page 100: 04 modelo dean�lisis-2

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.

Page 101: 04 modelo dean�lisis-2

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.

Page 102: 04 modelo dean�lisis-2

EstudiantePartTime

Nombre

Direccion

NroDeCursos

Ejemplo:

EstudianteFullTime

Nombre

Direccion

IDEstudiante

FechaGraduacion

Page 103: 04 modelo dean�lisis-2

¿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

Page 104: 04 modelo dean�lisis-2

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.

Page 105: 04 modelo dean�lisis-2

Definiciones

Estudiante

NombreDireccion

ClasificaPartTime

NroDeCursos

ClasificaFullTime

IDEstudianteFechaGraduacion

0,1 0,1

Page 106: 04 modelo dean�lisis-2

Definiciones (cont.)

Mary SmithFull time student

Joe JonesPart time student

MarySmith : Estudiante

: ClasificaFullTime

1

1

JoeJones : Estudiante

: ClasificaPartTime

1

1

Page 107: 04 modelo dean�lisis-2

: 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.

Page 108: 04 modelo dean�lisis-2

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

Page 109: 04 modelo dean�lisis-2

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.

Page 110: 04 modelo dean�lisis-2

Metamorfosis y flexibilidad

InformacionResidencia

PabellonCuartoIDCuarto 1

0..1

Estudiante

NombreDireccion

1 Clasificacion

PartTime

NroCursos

FullTime

IDEstudianteFechaGraduacion

Page 111: 04 modelo dean�lisis-2

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.

Page 112: 04 modelo dean�lisis-2

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).

Page 113: 04 modelo dean�lisis-2

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.

Page 114: 04 modelo dean�lisis-2

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.

Page 115: 04 modelo dean�lisis-2

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”.