sesion 13 diseño iii diseño de objetos

52
Diseño: Diseño de Objetos Lic. César Alcántara Loayza

Upload: julio-pari

Post on 08-Jul-2015

592 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Sesion 13 diseño iii    diseño de objetos

Diseño:Diseño de Objetos

Lic. César Alcántara Loayza

Page 2: Sesion 13 diseño iii    diseño de objetos

2CAL/Fundamentos

Términos Application logic: Software cuya principal

función es controlar las interacciones con el actor manejando el comportamiento de la interface de usuario.

Transaction logic: Unidad de trabajo estandarizada, reusable que puede ser referida por cualquier número de aplicaciones. Por ejemplo una transacción de “deposito” puede ser accedida vía una aplicación ATM, home banking u otra aplicación de cajero..

Page 3: Sesion 13 diseño iii    diseño de objetos

3CAL/Fundamentos

Introducción Su aplicación (sistema) debería hacer lo que el

usuario espera que haga. El diseño de objetos es la fase en la cual ud. decide como hace su aplicación para que concuerde con estas espectativas.

Se han definido estas espectativas en el inicio del proyecto usando los casos de uso. Ud. ha definido todos los recursos que el sistema necesita manejar, durante el análisis del problema usando el modelo de objetos y los diagramas de interacción.

Page 4: Sesion 13 diseño iii    diseño de objetos

4CAL/Fundamentos

Durante el análisis arquitectural ud. particionó el sistema en unidades basadas en los casos de uso del dominio del problema (particiones de dominio) y la arquitectura mas adecuada para soportar los objetivos del sistema.

Introducción

Page 5: Sesion 13 diseño iii    diseño de objetos

5CAL/Fundamentos

Ahora en la fase de diseño de objetos se trabajará en cada partición para definir los mecanismos de control dentro del software y las interfaces entre estas piezas de software.

Introducción

Page 6: Sesion 13 diseño iii    diseño de objetos

6CAL/Fundamentos

Herramientas – Diseño de O. Ya hemos usado la mayoría de herramientas

del diseño de objetos: El modelo de objetos Los diagramas de interacción Especificacion de CUS (Narrativa - escenarios)

Continuaremos usando estas herramientas. Pero ahora añadiremos diferentes detalles a los diagramas. Adicionalmente usaremos el diagrama de estados para modelar el ciclo de vida de los objetos y comportamientos específicos al estado.

Page 7: Sesion 13 diseño iii    diseño de objetos

7CAL/Fundamentos

Productos Trabajo Del Diseño

Modelo de casos de uso

Especif icacionCUS

Diagrama De Estados

Diagrama deSecuencia

Colaboración

Modelo de Objetos

1

2

3

4

5

7

11

9

8

10

6escenario

s

Page 8: Sesion 13 diseño iii    diseño de objetos

8CAL/Fundamentos

1. El modelo de casos de uso identifica la comunicación entre los actores y el sistema. El díalogo es la base para los diagramas de interacción. Los recursos usados para soportar el diálogo vienen a ser los objetos del modelo de objetos.

Productos Trabajo Del Diseño

Page 9: Sesion 13 diseño iii    diseño de objetos

9CAL/Fundamentos

2. La descripción de los casos de uso se pueden modelar usando la especificación narrativa, modelo de análisis y diagramas colaboración que definan la lógica en la interacción entre los actores y el sistema. La evaluación de la lógica podría resultar en cambios al alcance y definiciones de los casos de uso.

Productos Trabajo Del Diseño

Page 10: Sesion 13 diseño iii    diseño de objetos

10CAL/Fundamentos

3. La especificación narrativa de CUS representan la lógica para un caso de uso o una operación individual.

4. Siempre que una operación requiera lógica significante,se puede emplear el diagrama de actividad para ayudar en su diseño. Esto a su vez puede resultar en el descubrimiento de otras operaciones mas pequeñas y reusables que puedan proporcionar soporte para las mas grandes y complejas. (...)

Productos Trabajo Del Diseño

Page 11: Sesion 13 diseño iii    diseño de objetos

11CAL/Fundamentos

(...) Cada operación también revela los atributos que los objetos necesitan para invocar la operación. Estos atributos son agregados a la definición de la clase para los objetos cuyo propósito se acerca mas a los propósitos del atributo.

Productos Trabajo Del Diseño

Page 12: Sesion 13 diseño iii    diseño de objetos

12CAL/Fundamentos

5. Los diagramas de clase proporcionan la definición de objetos. Cada operación y cada atributo descubierto por su uso en otros diagramas son agregados al diagrama de clase. El diagrama de clase es el repositorio definitivo y la fuente de todo para la generación de código.

Productos Trabajo Del Diseño

Page 13: Sesion 13 diseño iii    diseño de objetos

13CAL/Fundamentos

6. El diagrama de estados identifica acciones y actividades que se traducen en operaciones y lógica de operaciones. Cada operación nueva se agrega a la clase que define el objeto.

7. El diagrama de estados representa el ciclo de vida de un objeto único. Cada evento que el objeto puede responder es representado con un cambio de estados y comportamientos. Los comportamientos específicos de estado son representados como acciones y actividades.

Productos Trabajo Del Diseño

Page 14: Sesion 13 diseño iii    diseño de objetos

14CAL/Fundamentos

8. Los diagramas de interacción modelan los eventos entre objetos y al hacer así identifican las interfaces que los objetos necesitan para recibir los eventos.

9. Los diagramas de interacción se pueden usar para derivar los diagramas de estados al identificar estados candidatos y los eventos que causan las transiciones entre estados.

Productos Trabajo Del Diseño

Page 15: Sesion 13 diseño iii    diseño de objetos

15CAL/Fundamentos

10. Las definiciones de clase proporcionan los objetos que participan en los diagramas de interacción. Las interfaces, descubiertas en los diagramas de interacción, se traducen en operaciones para las clases que definen a los objetos participantes. Cada operación a su vez identifica los atributos de la clase en la forma de parametros de entrada (argumentos) y valores de retorno.

Productos Trabajo Del Diseño

Page 16: Sesion 13 diseño iii    diseño de objetos

16CAL/Fundamentos

11. Los escenarios individuales en una especificación narrativa pueden formar la base para la comunicación de objetos en un diagrama de interacción. Los diagramas de interacción frecuentemente identifican intefaces complejas que requieren mayor análisis usando otros diagramas, entre ellos diagramas de actividad.

Productos Trabajo Del Diseño

Page 17: Sesion 13 diseño iii    diseño de objetos

17CAL/Fundamentos

Diagramas de Interacción Para beneficiarse de los diagramas,

necesitamos comprender la relación entre los diagramas.

Los diagramas: Presentan una descripción consisa de lo

que ud. conoce y decide acerca del sistema

Representan diferentes vistas de sistema.

Page 18: Sesion 13 diseño iii    diseño de objetos

18CAL/Fundamentos

Juntos, sin embargo, los diferentes diagramas representan un cuadro completo de cómo está estructurado el sistema y como trabajan los objetos. Al comparar las diferentes vistas, se pueden identificar inconsistencias y mejorar el modelo general.

Diagramas de Interacción

Page 19: Sesion 13 diseño iii    diseño de objetos

19CAL/Fundamentos

Diagrama De Estados En muchos sistemas, existen al menos

unas pocas clases de objeto clave que sufren cambios sustanciales durante su tiempo de vida. Para estos objetos, un único evento puede resultar en muchas respuestas diferentes basadas en las condiciones actuales del objeto. La condición del objeto es referida como el estado del objeto.

Page 20: Sesion 13 diseño iii    diseño de objetos

20CAL/Fundamentos

Estado del objeto: El estado se define por los valores de los atributos y las relaciones del objeto. Por ejemplo, cuando se abre una cuenta de crédito, un intento de comprar un artículo resultaría en una comparación del monto comprado y el crédito disponible. Cuando la cuenta de crédito es cerrada, un intento de comprar artículos resultaría en un error.

Diagrama De Estados

Page 21: Sesion 13 diseño iii    diseño de objetos

21CAL/Fundamentos

Igualmente, una relación puede provocar una respuesta diferente. Por ejemplo, cuando en el sistema de boletaje un AsientoPresentación no está asociada con un NivelDePrecio, no puede venderse. Una vez que se establezca el enlace con el NivelDePrecio, el AsientoPresentación se puede vender.

Diagrama De Estados

Page 22: Sesion 13 diseño iii    diseño de objetos

22CAL/Fundamentos

El diagrama de estados no se usará para todas las clases del modelo. El diagrama de estados es una herramienta de propósito especial que se emplea solo para objetos que poseen substancial comportamiento de estados específico. ¿cómo reconocer esos objetos? ...

Diagrama De Estados

Page 23: Sesion 13 diseño iii    diseño de objetos

23CAL/Fundamentos

Una técnica es revisar los diagramas de interacción e identificar aquellos objetos que participan en muchos, o mas aún en todos, los escenarios. Específicamente, busque aquellos objetos que tengan mas flechas de evento entrantes, pues cada evento entrante tiene el potencial de cambiar el estado actual del objeto.

Diagrama De Estados

Page 24: Sesion 13 diseño iii    diseño de objetos

24CAL/Fundamentos

A B C

El objeto permanece en una condición o estado hasta que algo le ocurra al objeto que active un cambio en el estado llamado “transición”.

Diagrama De Estados

Page 25: Sesion 13 diseño iii    diseño de objetos

25CAL/Fundamentos

Revisión D. Estados Notación Revisar la notación del diagrama de estados en la

presentación: UML – Diagrama de Estados.

En el siguiente ejemplo se ayuda a empezar la construcción de un diagrama de estados usando un diagrama de secuencia como fuente. Los ejemplos son muy pequeños de modo que se puede enfocar en los mecanismos mas que en la complejidad del dominio del problema. Pero la misma estrategia se puede emplear a medida que la complejidad del dominio se incrementa.

Page 26: Sesion 13 diseño iii    diseño de objetos

26CAL/Fundamentos

Identifique los estados.

Revisión D. Estados Notación

aGestionFacilidad aPresentación aAsientoPresentación

CrearPresentación

CrearAsientoPresentación

Hecho

Hecho

El objeto no existe hasta que el el evento lo crea. El objeto comienza en un estado inicial: “sin precio, no seleccionado, y no vendido”

Caso de Uso: Planear PresentaciónEscenario: Programar Presentación con éxito

Page 27: Sesion 13 diseño iii    diseño de objetos

27CAL/Fundamentos

Identifique los eventos que activan la transición entre estados.

Revisión D. Estados Notación

aGestionFacilidad aPresentación aAsientoPresentación

CrearPresentación

CrearAsientoPresentación

Hecho

Hecho

Transición eventos

Caso de Uso: Planear PresentaciónEscenario: Programar Presentación con éxito

Page 28: Sesion 13 diseño iii    diseño de objetos

28CAL/Fundamentos

Dibuje el diagrama de estados

Revisión D. Estados Notación

aGestionFacilidad aPresentación aAsientoPresentación

CrearPresentación

CrearAsientoPresentación

Hecho

HechoSin precio

No separadoNo vendido

Caso de Uso: Planear PresentaciónEscenario: Programar Presentación con éxito

Page 29: Sesion 13 diseño iii    diseño de objetos

29CAL/Fundamentos

Mezcle el nuevo diagrama con el diagrama previo para formar un único diagrama de estados para el AsientoPresentación.

Revisión D. Estados Notación

aGestionFacilidad aAsientoPresentación

Precio(NivelDePrecio)

Hecho

Sin precioNo separadoNo vendido

Sin precioNo separadoNo vendido

Precio(NivelDePrecio

Caso de Uso: Planear PresentaciónEscenario: Programar Presentación con éxito

Page 30: Sesion 13 diseño iii    diseño de objetos

30CAL/Fundamentos

Construir Un D. De Estados Ejercicio:

Ver documento Word. Diseño III – Construir Diagrama de Estados

Page 31: Sesion 13 diseño iii    diseño de objetos

31CAL/Fundamentos

Patron Diseño de Estado Cuando un objeto exhibe un conjunto de

comportamientos específicos de estado, el código puede ser muy grande, complejo y dificil de seguir. Para cada comportamiento que el objeto pueda manifestar, la implementación puede ser diferente por cada estado del objeto. Por ejemplo, un objeto relativamente simple con seis estados y seis comportamientos podría necesitar 36 bloques de código de implementación – un bloque por cada comportamiento para cada estado.

Page 32: Sesion 13 diseño iii    diseño de objetos

32CAL/Fundamentos

Patron Diseño de Estado

Page 33: Sesion 13 diseño iii    diseño de objetos

33CAL/Fundamentos

Una técnica para para cubrir la complejidad de comportamientos de estados específico es el patrón diseño de estados. Este patrón usa el concepto de delegación para separar la implementación de un comportamiento del objeto que es responsable por el comportamiento.

Patron Diseño de Estado

Page 34: Sesion 13 diseño iii    diseño de objetos

34CAL/Fundamentos

Por ejemplo, muchos de nosotros somos responsables de declarar impuestos. Sin embargo, para algunos de nosotros, el proceso es extremadamente complejo y requiere asistencia de un experto. Retenemos la responsabilidad final de declarar impuestos, pero delegamos el proceso a un especialista que lo hace por nosotros.

Patron Diseño de Estado

Page 35: Sesion 13 diseño iii    diseño de objetos

35CAL/Fundamentos

Cuando el especialista en impuestos termina el nos entrega resultados. La delegación también se puede aplicar a objetos, por ejemplo, una póliza de seguros proporciona interfaces para enviar reclamos y cancelar la póliza. Pero la implementación de estas interfaces depende del estado (condición) de la póliza. En la siguiente imagen se muestran los componentes del patrón diseño de estados usado para delegar la implementación de estas interfaces.

Patron Diseño de Estado

Page 36: Sesion 13 diseño iii    diseño de objetos

36CAL/Fundamentos

Patron Diseño de Estado

Page 37: Sesion 13 diseño iii    diseño de objetos

37CAL/Fundamentos

Cuando los comportamientos de un objeto difieren dependiendo de un estado de objeto, ud. puede definir nuevos objetos que represente el estado del objeto. Cada unico tipo de estado de objeto tiene su propia implementación para cada comportamiento. Cuando el objeto necesita un comportamiento este “delega” el comportamiento a un objeto de estado apropiado. Una vez que el comportamiento está completo, el objeto estado regresa el control al objeto original.

Patron Diseño de Estado

Page 38: Sesion 13 diseño iii    diseño de objetos

38CAL/Fundamentos

Veamos el ejemplo Java: Void SubmitClaim(Claim)

{ state.SubmitClaim(Claim) }

Note como la operación simplemente invoca otra operación del mismo nombre sobre el objeto referido por el atributo estado. La interface no tiene realmente una implementación de su propiedad.

Patron Diseño de Estado

Page 39: Sesion 13 diseño iii    diseño de objetos

39CAL/Fundamentos

Transformar el diagrama de estados en el patron de estados: El diagrama de estados proporciona una descripción explícita de los estados de un objeto. Para crear el patrón de estados en su diagrama de clases vea los siguientes cuadros y siga los pasos.

Patron Diseño de Estado

Page 40: Sesion 13 diseño iii    diseño de objetos

40CAL/Fundamentos

El patrón de estados no es adecuado para todas las aplicaciones de comportamiento específico de estado. Sin embargo, cuando uno encara un numero grande de estados y una variedad de comportamientos, el patrón puede pagar buenos dividendos en facilidad de mantenimiento y comprensión.

Patron Diseño de Estado

Page 41: Sesion 13 diseño iii    diseño de objetos

41CAL/Fundamentos

Patron Diseño de Estado

Crear un atributo sobre la claseBase llamado estado o estatus o algo similar que convenga al propósito.

AsientoPresentación

estado

Page 42: Sesion 13 diseño iii    diseño de objetos

42CAL/Fundamentos

NoDisponible Disponible Separado Vendido

AsientoPresentaciónestado

Sin precioNo separadoNo vendido

Con precioNo separadoNo vendido

con precioseparado

No vendido

con precioNo separado

vendido

RemoverPrecio()

Reembolsar()

Precio(NivelPrecio)

Cancel() Select()

Compra(TipoPrecio)

Patron Diseño de Estado

No Disponible

Disponible

Separado

Vendido

Para cada estado en el diagrama de estados, crear su correspondiente definición de clase.

Page 43: Sesion 13 diseño iii    diseño de objetos

43CAL/Fundamentos

Patron Diseño de Estado

Dibuje una relacion de generalización desde cada objeto estado hacia la única superclase.

AsientoPresentación

estado

NoDisponible Disponible Separado Vendido

EstadoAsientoPresentación

Page 44: Sesion 13 diseño iii    diseño de objetos

44CAL/Fundamentos

NoDisponible Disponible Separado Vendido

EstadoAsientoPresentaciónAsientoPresentación

estado : EstadoAsientoPresentacion0..* 10..* 1

Patron Diseño de Estado

El tipo de dato del atributo de Estado/Estatus de la clase base debería referirse a la nueva superclase (esto permitirá que la clase base se refiera a cualquier subclase estado a través de este atributo). El símbolo de agregación se usa comunmente para indicar que la generalizacion de estado es “parte de” el maquillaje de la clase base.

Page 45: Sesion 13 diseño iii    diseño de objetos

45CAL/Fundamentos

Patron Diseño de EstadoPara cada evento en el diagrama de transición de estados: a) agregue una interface correspondiente al objeto base. B) agregue una interface correspondiente (identica) a la superclase estado (esto provocará que cada subclase estado herede las interfaces).

Sin precioNo separadoNo vendido

Con precioNo separadoNo vendido

con precioseparado

No vendido

con precioNo separado

vendido

RemoverPrecio()

Reembolsar()

Precio(NivelPrecio)

Cancel() Select()

Compra(TipoPrecio)

NoDisponible Disponible Separado Vendido

EstadoAsientoPresentación

Select()Cancel()Reembolsar()Comprar()Precio()RemoverPrecio()

AsientoPresentación

estado : EstadoAsientoPresentacion

Select()Cancel()Reembolsar()Comprar(TipoPrecio)Precio(NivelPrecio)RemoverPrecio()

0..* 10..* 1

Page 46: Sesion 13 diseño iii    diseño de objetos

46CAL/Fundamentos

Para implementar las interfaces del objeto base, invoque la interface correspondiente sobre el atributo que retiene la referencia a la subclase estado.

Un ejemplo Java para delegar comportamiento:Void Compra(TipoPrecio) {Estado.Compra(TipoPrecio)}

Patron Diseño de Estado

NoDisponible Disponible Separado Vendido

EstadoAsientoPresentación

Select()Cancel()Reembolsar()Comprar()Precio()RemoverPrecio()

AsientoPresentación

estado : EstadoAsientoPresentacion

Select()Cancel()Reembolsar()Comprar(TipoPrecio)Precio(NivelPrecio)RemoverPrecio()

0..* 10..* 1

Page 47: Sesion 13 diseño iii    diseño de objetos

47CAL/Fundamentos

Resúmen Los estados y los comportamientos

específicos de estado son elementos importantes de cualquier diseño final de aplicación. El diagrama de estados es una herramienta especificamente diseñada para representar el estado del objeto, los eventos de transición de estados y el comportamiento específico de estado en la forma de acciones y actividades.

Page 48: Sesion 13 diseño iii    diseño de objetos

48CAL/Fundamentos

Los estados son representados por los valores de los atributos del objetos. Las acciones activadas por eventos representan la implementación de los eventos que causan el cambio actual en el estado. Las actividades representan comportamientos internos al estado del objeto.

Resúmen

Page 49: Sesion 13 diseño iii    diseño de objetos

49CAL/Fundamentos

Aplicando patrones para simplificar el modelo: El patrón diseño de estados es una forma de manejar la complejidad del comportamiento específico de estado y evitar codificación complicada. El patrón de diseño de estado está diseñado específicamente para distribuir y aislar el comportamiento específico de estado. Este arreglo hace que la solución sea visible a nivel de modelo.

Resúmen

Page 50: Sesion 13 diseño iii    diseño de objetos

50CAL/Fundamentos

(...) En cualquier momento un problema puede resolverse a nivel de modelo en vez de con el código, el tiempo y costos de mantenimiento se reducen considerablemente.

Resúmen

Page 51: Sesion 13 diseño iii    diseño de objetos

51CAL/Fundamentos

Actualizar los productos del trabajo. Cada vez que se agrega una nueva clase al modelo debe reconciliar el producto del trabajo nuevamente. La comprensión de la relación entre los productos del trabajo proporciona un conjunto de herramientas que le ayudan a entender completamente y describir el rol de cada nuevo recurso y su relación con los otros elementos del modelo.

Resúmen

Page 52: Sesion 13 diseño iii    diseño de objetos

52CAL/Fundamentos

Una forma que ud. conozca si su modelo está bien diseñado es si es capaz de añadir nuevas características con poco o ningún cambio al modelo. Los cambios debería ser aislados en pequeños subconjuntos de componentes del modelo. En contraste, un pobre diseño rápidamente crecerá en tamaño y complejidad con cada comportamiento adicional. Un simple cambio puede resultar en múltiples y frecuentemente cambios redundantes en muchas partes del modelo.

Resúmen