Upload
emerico-florez
View
235
Download
1
Embed Size (px)
Citation preview
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
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
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.
Análisis y Diseño Orientado a Objetos utilizando UML
5. Diseño de Sistemas Orientados a Objetos
• Diagramas de Objeto - Ejemplo
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
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
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
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
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
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
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
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
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º
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
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
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
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
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
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
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
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:
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
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:
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?
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)
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.
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
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
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
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:
Análisis y Diseño Orientado a Objetos utilizando UML
5. Diseño de Sistemas Orientados a Objetos
• Resumen:
Análisis y Diseño Orientado a Objetos utilizando UML
5. Diseño de Sistemas Orientados a Objetos
• Resumen: