Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A...

33
Análisis y Diseño Orienta do a Objetos utilizando U ML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS

Transcript of Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A...

Page 1: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

CAPITULO V

DISEÑO DE SISTEMAS

ORIENTADOS A OBJETOS

Page 2: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Hasta aquí se ha tratado:

Cómo describir requerimientos usando Casos de Uso Cómo Modelar la Estructura Estática de un Sistema a

través de un Modelo de Clases Cómo Modelar la Interacción entre Objetos para

satisfacer los requerimientos, describiendo los mensajes que intercambian

Page 3: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Sin embargo:

No se ha modelado la decisión de un objeto, sobre qué hacer cuando recibe un mensaje

Tampoco se ha trabajado con las dependencias entre el estado (valores de sus atributos en cierto instante) de un objeto y su reacción ante los mensaje u otros eventos

Diagramas de Estado y Actividad

Page 4: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Objeto

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.

Page 5: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Objeto - Ejemplo

Page 6: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Los Diagramas de Estados representan autómatas de estados finitos, desde el p.d.v. de los estados y las transiciones.

Son útiles sólo para los objetos con un comportamiento significativo.

El formalismo utilizado proviene de los Statecharts.

• Diagramas de Estado

Page 7: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Cada objeto está en un estado en cierto instante. El estado está caracterizado parcialmente por los valores de algunos de los atributos del objeto. El estado en el que se encuentra un objeto determina su comportamiento. Cada objeto sigue el comportamiento descrito en el D. de Estados asociado a su clase. Los Diagramas de Estados y escenarios son complementarios.

• Diagramas de Estado

Page 8: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetos. Los D. de Estados son grafos dirigidos Los D. De Estados de UML son deterministas Los estados inicial y final están diferenciados del resto La transición entre estados es instantánea y se debe a la ocurrencia de un evento

• Diagramas de Estado

Page 9: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

EVENTO: algo que se le hace (afecta) a un objeto.Ejemplo: enviarle un mensaje

ACCION: es algo que hace el objetoEjemplo: enviar un mensaje

(después del EVENTO de la TRANSICION)

• Diagramas de Estado

Page 10: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado

Estados (cajas) y Transiciones (flechas).

A B

Evento [condición] / Acción

Tanto el evento como la acción se consideran instantáneos

Page 11: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Ejemplo de un Diagrama de Estados para la clase persona (marcas de CREACION y DESTRUCION):

• Diagramas de Estado

en el paro en activo

jubilado

contratar

perder empleo

jubilarsejubilarse

Page 12: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición:

• Diagramas de Estado - Acciones

A

B

Evento [condición] / OtroObjeto.Operación

Page 13: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Se puede especificar el ejecutar una acción como consecuencia de entrar, salir (idem después de “evento/”), estar en un estado, o por la ocurrencia de un evento:

• Diagramas de Estado - Acciones

estado A

entry: acción por entrarexit: acción por salirdo: acción mientras en estadoon evento: acción

Page 14: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Podemos reducir la complejidad de estos diagramas usando la generalización de estados. Distinguimos así entre superestado y subestados. Un estado puede contener varios subestados disjuntos. Los subestados heredan las variables de estado y las transiciones externas.

• Diagramas de Estado - Generalización de Eº

Page 15: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Generalización de Eº

Ejemplo:

A B

C

e1

e2e2

Page 16: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Generalización de Eº

Quedaría como:

C

a bA Be1

e2

Page 17: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Las transiciones de entrada deben ir hacia subestados específicos:

• Diagramas de Estado - Generalización de Eº

C

a bA B

e1

e2

e0

Page 18: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Generalización de Eº

Es preferible tener estados iniciales de entrada a un nivel de manera que desde los niveles superiores no se sepa a qué subestado se entra:

C

a bA B

e1

e2

e1

e0

Page 19: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

Active

DialTone

do/ play dial tone

Timeout

do/ play message

Dialing

Invalid

do/ play message

Connecting

Busy

do/ play busy tone

Ringing

do/ play ringing tone

Talking

Pinned

Idle

DialTone

do/ play dial tone

Timeout

do/ play message

after (15 sec.)

Dialing

dial digit( n )[ incomplete ]

dial digit(n)

after (15 sec.)

Invalid

do/ play message

dial digit(n)[ invalid ]

Connecting

dial digit( n )[ valid ] / connect

Busy

do/ play busy tone

Ringing

do/ play ringing tone

Talking

callee answers / enable speech

Pinned

callee hangs up

callee hangs

up

caller hangs up / disconnect

lift receiver / get dial

tone

busyconnected

Page 20: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Por defecto, los autómatas no tienen memoria. Es posible memorizar el último subestado visitado para recuperarlo en una transición entrante en el superestado que lo engloba.

También es posible la memorización para cualquiera de los subestados anidados (aparece un * junto a la H).

• Diagramas de Estado - Historia

Page 21: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Ejemplo:

• Diagramas de Estado - Historia

d2

d1

H*

B

C

x y

D

out

in

Page 22: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

Enjuague Lavado Secado

H

Enjuague Lavado Secado

H

Espera

abrir puertacerrar puerta

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Historia

Ejemplo:

Page 23: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Destrucción del objeto

La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado

Page 24: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado - Destrucción del objeto

En tierraCrear(matricula)

En vuelo

aterrizardespegar

crash

Ejemplo:

Page 25: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado

El Diagrama de Estado de una Clase debería ser sencillo. Cuanto más depende el comportamiento de un objeto de su estado, es más difícil comprenderlo.

¿Cómo son los Diagramas de Estado Complejo? ¿Qué dificultades presentan?

Page 26: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Estado

Un Diagramas de Estado Complejo:

Es Difícil de codificar, métodos con muchas condiciones

Hacen difícil de probar la Clase

Es difícil para el código esterno utilizar una clase si el comportamiento de la clase depende de su estado de manera compleja (menor reutilización)

Page 27: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Actividad

El Diagrama de Actividad es una especialización del Diagrama de Estado, organizado respecto de las acciones y usado para especificar:

Un método Un caso de uso Un proceso de negocio (Workflow)

Las actividades se enlazan por transiciones automáticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad.

Page 28: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Actividad

El Diagrama de Actividad tiene:

ACTIVIDADTRANSICIONBARRA SINCRONIZACIONDIAMANTE DECISIONMARCAS CREACION y DESTRUCCION

“CALLES

Page 29: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Actividad

Ejemplos:Request service

Play

Collect order

Take order

Deliver order

Fill order

StockroomSalesCustomer

Page 30: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

Request service

Play

Collect order

Order[placed]

Order[delivered]

Take order

Deliver order

Fill order

Order[entered]

Order[filled]

StockroomSalesCustomer

Page 31: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

Calculate total cost

Get authorization

Change customer's account

[cost < $50]

[cost >= $50]

• Diagramas de Actividad

Ejemplos; un proceso de negocio:

Page 32: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Resumen:

Page 33: Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.

Análisis y Diseño Orientado a Objetos utilizando UML

5. Diseño de Sistemas Orientados a Objetos

• Resumen: