Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Diagramas de Interaccin
n
Diagramas de interaccin entre objetos Diagramas de secuencia Objetos y sus relaciones: Colaboracin entre objetos. Aplicaciones de las tcnicas. La fase de anlisis.
Los diagramas de interaccin son modelos que describen como grupos de objetos colaboran para conseguir algn fin. Estos diagramas muestran objetos, as como los mensajes que se pasan entre ellos dentro del caso de uso Los diagramas de interaccin capturan el comportamiento de un caso de uso. Los diagramas de interaccin se expresan de dos maneras:
n n
Diagramas de Secuencia
: Encargado : Libro : Ficha socio : Ficha libro : Prstamo
Los diagramas de colaboracin muestran las relaciones entre los objetos y los mensajes que intercambian Un diagrama de secuencias muestra las interacciones expresadas en funcin de secuencias temporales.
n
muestra los objetos participantes en la interaccin por sus lneas de vida, y los mensajes que intercambian entre ellos al correr del tiempo. Sin embargo, no muestra los enlaces entre los objetos.
3
Diagramas de Colaboracin
3: Verificar situacin socio : Ficha s ocio
n
Diagramas de secuencia
Un diagrama de secuencias muestra las interacciones expresadas en funcin del tiempo. En concreto muestra los objetos participantes y los mensajes que intercambian entre ellos a lo largo del tiempo. Los diagramas de secuencias son ms apropiados para especificar restricciones de interaccin en tiempo real. Un diagrama de secuencias tiene dos dimensiones, la vertical que representa el tiempo, y la horizontal que representa los distintos objetos.
6
4: Situacin socio ok
n
6: Situacin libro ok
Diagramas de secuencia
n
El tiempo avanza desde el comienzo hasta el final de la pgina, aunque se puede tomar el sentido contrario. La exactitud temporal solo toma importancia en las aplicaciones de tiempo real, por lo que los ejes de tiempo suelen tener marcas temporales. El orden horizontal de aparicin de los objetos no tiene ninguna importancia. La notacin est tomada, en gran parte, del diagrama de secuencias de mensajes entre objetos de Buschmann (POSA diagrams).
7
condicin
iteracin
necesita_reordenar()
Si el objeto es creado o destruido, entonces su lifeline debe de comenzar y acabar en la lnea de tiempo:
n n
retorno
[necesita_reordenar=TRUE] nuevo
El mensaje que lo crea apuntar al objeto creado. Si el objeto fuera destruido durante el diagrama, se marcara este evento con una gran X.
[comprobar=TRUE] nuevo
n 9
10
Notacin: activacin
Una activacin muestra el periodo durante el cual un objeto realiza una accin.
Una activacin se representa como un rectngulo alineado con los momentos en que se inicia y en que finaliza. La accin que realiza aparece opcionalmente descrita en una etiqueta prxima al smbolo de activacin o en el margen izquierdo.
11
12
Notacin: activacin
Quien llama Lnea telefnica Llamado
Ejemplo
Las bandas rectangulares representan los periodos de actividad de los objetos
En objetos concurrentes, la activacin muestra el intervalo en el que un objeto est realizando una operacin.
sensor : Sensor controlador : Controlador temp() alarma : Alarma
descuelga
tono
marcar
indicacin de llamada
timbre
temp_alta() listo()
descuelga
diga?
13
14
Notacin: mensaje
Notacin: activacin procedural
En cdigo procedural (o concurrente sincrnizado) la activacin muestra el intervalo de tiempo durante el cual un procedimiento o un procedimiento subordinado est activo.
dilogo : controlador : factura1 :
Un mensaje es una comunicacin entre objetos que contiene informacin y que espera la realizacin de una accin. El receptor de un mensaje normalmente lo considera un evento. El orden en que ocurren los mensajes se muestra de arriba a abajo en el diagrama. Se contempla la posibilidad de que un objeto se enve mensajes a s mismo.
n pagar()
15
16
Notacin: mensaje
n
Notacin: mensaje
n
Cada mensaje se representa por una flecha entre las lneas de vida de los objetos. La flecha se etiqueta con el nombre del mensaje, (operacin o seal) y opcionalmente con un nmero secuencia. Normalmente las flechas son horizontales, pero si hubiera un tiempo de propagacin la lnea se suele representar oblicua. Existe la posibilidad de reflejar el retorno de un mensaje.
El mensaje puede incluir los argumentos e informacin de control. La informacin de control se puede expresar mediante una condicin, una marca de iteracin o la forma de las flechas de los mensajes:
Se representa por una flecha cuya cabeza son dos lneas (esto es punta de flecha no rellena). Se suele omitir la flecha de retorno en los flujos procedurales (el retorno est implcito)
17
punta de flecha abierta: flujo de control genrico (habitualmente asncrono) punta de flecha slida: Se usa con llamadas a procedimiento anidadas. Tambin cuando un objeto concurrente espera hasta que se complete la llamada. media punta de flecha: flujo de control asncrono, de forma explcita
18
Tipos de mensajes
a b
Tipos de Control
El Diagrama de Secuencia refleja de manera indirecta las opciones de control
a : aa
b : aa
Tipos de Control
Un control descentralizado tiene una forma como esta:
n
Notacin: mensaje
Tiempos de Transicin
Una transicin, (un mensaje en un diagrama de secuencias), puede tener un nombre. El nombre representa el momento en el que el mensaje es enviado. En el caso de que la transmisin no sea instantnea, si la transicin es A, su llegada a destino es A.
22
21
Predecesor: lista de nmeros de secuencia (mensajes que deben ocurrir previamente), terminada con /. Si es obvio, se omite.
La secuencia en diagramas de secuencia (procedurales) se suele omitir. La secuencia se expresa con nmeros enteros o nmeros enteros anidados, si se trata de mensajes encadenados:
1: a() 1.1: b() 2: c() 1.2: b() 2.1.1: e() 2.1: d()
1,
n
1.1,
1.1.1
2
n n
2.1 2.2
25
26
Estructuras de control
Las bifurcaciones condicionales pueden representarse de esta forma:
[cond a]: [cond b]:
Adems se puede indicar una condicin: [x < 0] 4.1: mensaje (como condicin de guarda)
f() g()
27
28
Estructuras de control
Podemos representar iteraciones en el envo de mensajes, p.e., mientras se cumpla una condicin. La iteracin puede expresarse como parte del mensaje:
Estructuras de control
La iteracin, como comentario al margen:
Slo tiene sentido si queremos un diagrama de secuencia general, no una instancia concreta
29 30
Object3: Reserva
lnkBillete: Billete
Precio():double
[tiene_billete]:
coste:=calcular_precio():double if(tiene_billete) Together: else
valor-retorno: omitido si el mensaje no tiene un resultado. nombre-mensaje: el nombre de la operacin en el objeto receptor. lista-argumentos entre parntesis
32
n 31
Diagramas de colaboracin
n
El diagrama de colaboracin muestra cmo las instancias especficas de las clases trabajan juntas para conseguir un objetivo comn. Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro. muestra las relaciones sobre los objetos sin mostrar la dimensin temporal de dichas relaciones la secuencia de los mensajes vendr dada por nmeros de secuencia.
34
Diagramas de colaboracin
SensorTempInterno SensorTemperatura::SensorTempExterno
Controlador::ControladorTemp
: bibliotecario
1.3: Velocidad() 1.2: Voltaje()
2: ejemplares disponibles ( )
: Libro : Ejemplar
VentiladorInterno
Calentador::CalentadorInterno
2.1: prestado ( )
35
36
Diagramas de colaboracin
n
Diagramas de colaboracin
n
una descripcin de la estructura esttica de los objetos afectados, incluyendo sus relaciones una descripcin de la secuencia de mensajes intercambiados sobre los objetos para realizar el trabajo.
n
Una colaboracin puede estar asociada a un tipo, una operacin o un caso de uso para describir sus efectos externos: Se trata de una especificacin que describe los cambios producidos en un entorno externo Una colaboracin puede estar asociada a una clase, a un mtodo, (implementacin de una operacin), o a la realizacin de un caso de uso: Se est describiendo una implementacin estos elementos internamente.
38
El primer aspecto es el contexto de la colaboracin mientras que el segundo es la interaccin soportada por la colaboracin. Ambos son necesarios para una especificacin completa, y acostumbran a describirse en conjunto.
37
Diagramas de colaboracin
n
Los objetos se representan mediante rectngulos y los nombre se subrayan. Se representan tambin los enlaces estticos, instancias de asociaciones y elementos transitorios, como un argumento de una operacin. Tambin pueden aparecer actores provenientes de los casos de uso, representando una interaccin simplificada con el sistema Cuando la interaccin afecta a varios objetos se utiliza un smbolo que representa objetos mltiples.
: Libro
n
: Ejemplar
2.1: prestado ( )
39
40
10
Diagramas de colaboracin
En sistemas concurrentes, un objeto activo es aquel que tiene el flujo de control y se denota con bordes ms gruesos.
41
42
Aplicaciones de la tcnica
n
En ese caso slo hay dos tipos de objetos: el actor (o actores) y el sistema (como caja negra)
Se describen los mensajes que el actor enva al sistema (Pero muchos libros, utilizan mensajes en sentido contrariopeligro?)
sistema : Sistema : Bibliotecario comenzar el proceso de prstamo Se realiza el caso de uso: Identificacin de socio comprueba la situacin del socio
Para REALIZAR los casos de uso y ENCONTRAR LAS OPERACIONES DE CADA CLASE
n
Al nivel de anlisis
n
Aparecen los actores y los objetos del dominio Se sustituyen los actores por objetos de interfaz (dilogos, o incluso ventanas, botones, etc...)
Al nivel de diseo
n
identifica el libro
En cualquiera de los casos, es preferible utilizar escenarios, empezando por la secuencia normal (es la ms completa)
43
44
11
Precondicin:
n n
5: ejemplares disponibles
identifica el libro
45
46
Se aplica la filosofa CRC En los casos de uso, cada paso supone un mensaje al que debe responder el sistema:
n
Quin es el objeto responsable? operacin en su clase: ejemplares_disponibles(): INTEGER Con que otros objetos colabora (mensajes anidados)? operaciones en las clases responsables secundarias: prestado(): BOOLEAN
48
12
buscar_libro (string)
2: ejemplares disponibles ( )
ejemplares disponibles ( )
: Ejemplar
prestado ( )
1: buscar_libro (string)
crear(fecha, alumno, ejemplar) set prestado ( )
: Libro
: Libro
* : Ejemplar
3: prestado ( )
49
50
Se parte de un escenario normal Los escenarios alternativos representan pequeas variantes Las excepciones, n O bien vuelven al recorrido normal n O bien cancelan el escenario...
Se pueden utilizar notas para indicar un caso de uso incluido (o un punto de extensin) Se pueden plantear diagramas de interaccin para un escenario que recorra varios casos de uso (ms claro pero ms largo)
No hay que perder de vista la utilidad de la tcnica: Encontrar los mensajes y las operaciones asociadas
51 52
13
Patrones: Creacin
n
Sale date time 1 Contains 1.. * Product Sales LineItem quantity Specification
asignar a B la responsabilidad de crear instancias de A si: n B es una agregacin/comp. de A n B registra los objetos A n B conoce la informacin necesaria para crear/inicializar A
Described-by
: Empleado
pelcula ZZ : Pelcula
t := getTotal()
Sale
2: crear_cinta (Integer)
3: crear (Pelcula)
: Cinta
getTotal() 53 54
Detalles de diseo....
Patrones: Controlador
n
Pulsa botn
Asignar el manejo de los eventos de sistema (los que proceden de los actores) a una clase que represente: n el sistema o la empresa (controlador de fachada) n el trabajo de ese actor (controlador de tareas)
:Registradora
Dominio
Aade_producto ()
:Gestor de ventas
55
56
14
Patrones, en resumen...
n
Patrones, en resumen...
n
Ejemplo correcto
: Register : Sale
makePayment() makePayment()
create()
p : Payment
makePayment()
create()
: Payment
addPayment( p )
mal ejemplo...
57
58
Ms ejemplos: videoclub
<<abstract>> ArtistaCine
Casos de uso:
Alta de pelcula <<extend>>
Actor 0..* 0..* Pelcula ttulo : String ao : Integer duracin : Time tema : String untitled () 1
Director 0..*
Empleado
0..*
contiene 1 0..*
Baja de cinta
59
Consulta de pelcula
60
15
Alta de pelcula
1 El empleado del vdeoclub solicita al sistema comenzar el proceso de alta de pelcula 2 El sistema solicita los siguientes datos de la nueva pelcula: duracin, actores principales, director, productora y ao de produccin 3 El empleado del vdeoclub proporciona los datos requeridos y solicita al sistema que los almacene 4 El sistema almacena los datos proporcionados 5 El sistema informa al empleado del vdeo club que el proceso ha terminado con xito
2: 3: proporciona los datos: ttulo, tipo de pelcula, duracin, actores principales, director, 4: 5:
Excepciones 4 Si el sistema detecta que la pelcula ya est registrada, el s istema, informa de la situacin al empleado del vdeo club permitindole modificar los datos proporcionados, a continuacin este caso de uso contina
El sistema ha almacenado la informacin correspondiente a la
61
62
Alta de cinta
1 El empleado del vdeoclub solicita al sistema comenzar el proceso de alta de cinta 2 El sistema solicita que se identifique la pelcula que contien e la cinta 3 El empleado del vdeoclub identifica la pelcula 4 Si la pelcula no est registrada, se realiza el caso de uso U 5 El sistema solicita el nmero de cintas de la pelcula a dar d e alta 6 El empleado del vdeoclub proporciona el nmero de cintas y solicita al sistema que almacene la informacin 7 El sistema almacena los datos proporcionados e imprime las etiquetas de identificacin de cintas autoadhesivas 8 El sistema informa al empleado del vdeo club que el proceso ha terminado con xito 9 El empleado del vdeoclub pega las etiquetas en las cintas y las coloca en las estanteras
63
Alta de cinta
: Empleado 1: comenzar el proceso de alta de cinta 2: 3: [pelcula ya existe] identifica la pelcula 4: [no existe] caso de uso UC04 5: Si la pelcula no est registrada, se realiza el caso de uso UC04 (Alta de pelcula) sistema
64
16
1: buscar_ttulo (String)
Si la pelcula no est registrada, se realiza el caso de uso UC04 (Alta de pelcula) : Cinta : Empleado2: crear_cinta (Integer) 3: crear (Pelcula)
2: crear_cinta (Integer) * 3: crear (Pelcula) 4: imprime_etiqueta ( ) 5: get_ttulo ( ) pelcula ZZ : Pelcula el sistema asigna un cdigo automticamente a cada cinta 5: get_ttulo ( )
65
66
17