Transcript Cap4-2

4. Modelamiento del Comportamiento
• Introducción
 Antes de iniciar el diseño lógico de cómo funcionará una
aplicación de software, es necesario investigar y definir su
comportamiento como una “caja negra”.
 La identificación del comportamiento de un sistema, a
través de los llamados escenarios y las interacciones entre
los objetos, es una descripción de lo que el sistema hace,
sin explicar la manera en que lo hace.
 Los casos de uso indican cómo los actores interactúan con
el sistema, indicando que es lo que en realidad se desea
desarrollar. Durante la interacción, un actor genera eventos
dirigidos a un sistema, solicitando alguna operación a
cambio.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Introducción
 Por ejemplo, cuando un cajero ingresa el código de barras
de un producto, está diciendo al sistema que registre la
compra. Con el evento se inicia una operación del sistema.
 Los casos de uso dan descripciones de alto nivel; el
modelo conceptual provee información preliminar de los
tipos estáticos del sistema. Sin embargo, se requiere
desarrollar un entendimiento más detallado del sistema,
instanciando casos de uso usando las clases ya
identificadas, e identificando asociaciones, operaciones y
nuevas clases.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Introducción
 Esto es resuelto por los escenarios, cada uno de los cuales
provee una secuencia específica de interacciones entre los
actores y las entidades en el sistema, basándose en la
secuencia genérica de eventos que define el caso de uso
correspondiente.
 Un escenario es una elaboración textual de un caso de uso,
que puede ser representada gráficamente mediante los
diagramas que provee UML, los que dan una descripción
gráfica de las interacciones del actor y de las operaciones
que dan origen.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 Estos diagramas describen interacciones entre clases. Estas
interacciones son modeladas como intercambios de
mensajes. Estos diagramas se centran sobre clases y los
mensajes que ellas se intercambian para cumplir algún
comportamiento deseado.
 Cabe destacar que la notación utilizada es flexible y varia
de un autor a otro. En general, dependerá en gran medida
de la naturaleza del proyecto y grado de detalle que se
quiera obtener.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 Lo usual es diferenciar un rol de objeto de un rol de clase
de manera subrayada y anteponiendo dos puntos (:). El
objeto podrá o no recibir un nombre particular.
 Los diagramas de interacción contienen los siguientes
elementos:
 Roles de Clases: representan roles que los objetos pueden jugar en la
interacción.
 Líneas de Vida: simbolizan la existencia de un objeto sobre un
periodo de tiempo.
 Activaciones: representan el tiempo durante el cual el objeto están
realizando una operación.
 Mensajes: simbolizan la comunicación entre objetos.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 Se debe recordar el concepto de mensaje:
 Un mensaje desencadena una acción en el objeto
destinatario.
 Un mensaje que se envía si han sido enviados los mensajes
de una lista (sincronización):
A.1, B.3 / 1:Mensaje
A
Análisis y Diseño OO utilizando
UML
B
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 Mensaje condicionado, la condición se representa entre []:
[x>y] 1: Mensaje
B
A
 Mensaje que devuelve un resultado:
1: distancia:= b.mover(x,y)
B
A
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 Los objetos interactúan para realizar colectivamente los
servicios ofrecidos por las aplicaciones. Los diagramas de
interacción muestran cómo se comunican los objetos en
una interacción.
 Existen dos tipos de diagramas de interacción: el Diagrama
de Colaboración y el Diagrama de Secuencia.
 El Diagrama de Secuencia es más adecuados para
observar la perspectiva cronológica de las interacciones.
 El Diagrama de Colaboración ofrece una mejor visión
espacial mostrando los enlaces de comunicación entre
objetos.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
 El Diagrama de Colaboración puede obtenerse
automáticamente a partir del correspondiente Diagrama de
Secuencia (o viceversa).
objetos
tiempo
objetoA:A
objetoB:B
<<create>>
mensaje1( )
Diagrama de secuencia:
destaca el orden temporal
de los mensajes.
mensaje2( )
mensaje3( )
mensaje4( )
Análisis y Diseño OO utilizando
UML
objetoC:C
4. Modelamiento del Comportamiento
• Diagramas de Interacción
Diagrama de colaboración:
destaca la relación estructural
entre los objetos que interactúan.
Se incluyen dos estereotipos:
<<create>> para la creacion de objetos y
<<destroy>> para la eliminación
de los mismos.
objetoA:A
1: <<create>>
2: mensaje1( )
3: <<destroy>>
objetoB:B
Análisis y Diseño OO utilizando
UML
objetoC:C
2.1: mensaje2( )
2.2: mensaje3( )
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Secuencia
 Muestra la secuencia de mensajes entre objetos durante un
escenario concreto.
 Cada objeto viene dado por una barra vertical.
 El tiempo transcurre de arriba abajo.
 Cuando existe demora entre el envío y la atención se puede
indicar usando una línea oblicua.
 A continuación se presentan dos ejemplos; el primero
presenta retardo en el envío mientras que en el segundo este
retardo se ha eliminado:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Secuencia
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Secuencia
Caller
Exchange
Receiver
a: lift receiver
{b.receiveTime
- a.sendTime < 1 sec.}
b: dial tone
{c.receiveTime
-b.sendTime < 10 sec.}
c: dial digit
...
The call is routed
through the network
d: route
{d.receiveTime
-d.sendTime < 5 sec.}
ringing tone
phone rings
answer phone
At this point the
parties can talk
----< 1 sec
stop tone
stop ringing
Análisis y Diseño OO utilizando
UML
-----
Otro Ejemplo:
Diagrama de
Secuencia
mostrando foco de
control,
condiciones, recursión
creación y destrucción
de objetos
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Secuencia
 Ejemplo: Se quiere modelar una llamada a través de una
central telefónica.
Para esto se tienen cuatro objetos involucrados: dos
interlocutores (s y r), una central y una conversación. La
secuencia empieza cuando un interlocutor envía un mensaje a
la central al descolgar el auricular. La central da el tono de
llamada, y el interlocutor marca el número al que desea
llamar. El tiempo de marcado debe ser menor que 30
segundos.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Ejemplo
s:Interlocutor
:Central
r:Interlocutor
descolgarAuricular( )
{marcando.tiempoEjecucion < 30 segs}
darTonoDeLlamada( )
*marcarDigito( )
marcando
enrutarLlamadas(s,n)
<<create>>
c:Conversación
llamar( )
descolgarAuricular( )
conectar(r,s)
conectar(r)
conectar(s)
Los interlocutopres r y s pueden
intercambiar información después
de conectarse.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción – Ejemplo en
desarrollo
Elabora el
caso de uso
Asignar
Habilidad a
Recurso.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción – Ejemplo en
desarrollo
 Muestra cómo un administrador de recursos usa el sistema
para asignar una habilidad a un recurso, y cómo las clases del
sistema trabajan juntos para proveer esta funcionalidad.
 Los objetos al tope de la figura representan roles de clases;
ellas se denominan así porque representan los objetos que
participan en la interacción.
 Las líneas punteadas que se extienden desde cada objeto
representan líneas de vida, y los rectángulos ubicados sobre
las líneas de vida representan activaciones.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción – Ejemplo en
desarrollo
 Las flechas horizontales entre líneas de vida indican los
mensajes intercambiados entre objetos, y son rotulados con
el mensaje que es enviado entre los roles de clases.
 Un mensaje dispara una operación en el objeto receptor.
 Un administrador de recursos usará la ventana del
administrador de recursos, la cual es una interfaz para
encontrar un recurso, encontrar una habilidad y asignar la
habilidad al recurso.
 Dicha ventana encontrará un recurso que usa un objeto de
la clase Recurso, y una habilidad que usa un objeto de la
clase Habilidad.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción – Ejemplo en
desarrollo
 La ventana asignará una habilidad a un recurso si la
habilidad no está ya asignada al recurso.
 Esta condición se representa entre paréntesis cuadrados
sobre el mensaje que origina desde la línea de vida de la
ventana al rol de la clase Recurso-Habilidad.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción
Diagrama de
Secuencia para
el Caso de Uso
Eliminar
Proyectos.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Son útiles en la fase exploratoria para identificar objetos.
 La distribución de los objetos en el diagrama permite
observar adecuadamente la interacción de un objeto con
respecto de los demás.
 La estructura estática viene dada por los enlaces; la
dinámica por el envío de mensajes por los enlaces.
 La inclusión del actor en este tipo de diagramas es
opcional.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Los diagramas de colaboración explican gráficamente
las interacciones entre las instancias del modelo (objetos).
Por ejemplo:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
Un objeto se puede enviar
un mensaje a sí mismo:
Es posible representar iteraciones:
msg1() {
for i := 1 to 10 {
miB.mens2();
miC.mens3();
}
}
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Secuencia de los mensajes en un diagrama de colaboración:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Es posible definir mensajes condicionales:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Es posible definir trayectorias mutuamente excluyentes:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Un multiobjeto, por ejemplo, un arreglo en Java se define
como una pila de objetos:
 Se pueden enviar mensajes a multiobjetos:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Ejemplo de crear un objeto y agregarlo a un multiobjeto:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Colaboración
 Ejemplo: Matricular
Universidad.
un
nuevo
estudiante
en
la
Hay cuatro objetos involucrados: un encargado de matrícula,
un estudiante, un curso y la universidad. La acción comienza
cuando el encargado de matrícula crea un objeto estudiante,
lo añade a la universidad, y le pide al objeto estudiante que
se matricule. El objeto estudiante obtiene (de sí mismo) su
plan de estudio, e identifica los cursos que quiere matricular.
Cabe destacar el enriquecimiento de este diagrama mediante
la inclusión de ciertas relaciones relevantes para el módelo.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Interacción - Ejemplo 2
2: agregarEstudiante(s)
r:EncargadoMatricula
1: <<create>>
3: matricular( )
:Universidad
3.1: obtenerPlanEstudios( )
s:Estudiante
matriculado = False
3.2: agregar(s)
s:Estudiante
3.4: <<become>>
matriculado = True
3.3: agregar(s)
c1:Curso
c2:Curso
{asociación}
{asociación}
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Uso de Diagramas
 La creación de los diagramas de secuencia depende de la
formulación de los casos de uso. Los casos de uso indican
cómo los actores interactúan con el sistema. Durante la
operación del sistema, los actores generan eventos,
solicitando alguna operación a cambio.
 Uso de diagramas de secuencia para modelar los casos
de uso:
El diagrama de secuencia de un sistema es una
representación que muestra, en determinado escenario de un
caso de uso, los eventos generados por actores externos, su
orden y los eventos internos del sistema.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Uso de Diagramas
 Ejercicio: caso de uso para compra de productos en un
supermercado.
 Caso de uso: Comprar productos
 Actores:
Cliente, cajero
 Tipo:
Primario
 Descripción: Un Cliente llega a la caja registradora con los artículos
que va a comprar. El Cajero registra los artículos y cobra el importe.
Al terminar la operación, el Cliente se marcha con los productos.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Uso de Diagramas
 Ejercicio: caso de uso para compra de productos en un
supermercado ¿Puede Ud. identificar el error?.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Uso de Diagramas
 Ejemplo: caso de uso para compra de productos en un
supermercado.
 Def.:
Un evento es una acción externa de entrada, que un
actor produce en el sistema. En este ejemplo, se tienen tres
eventos: pasarProducto, terminarVenta y efectuarPago. Una
vez que se identifican los eventos, se registran en la entidad
que corresponda. Por ejemplo:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Uso de Diagramas
 Para cada evento que se produce en el sistema, se debe
hacer un diagrama de colaboración. Ejemplo:
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Actividad
 Modela los aspectos dinámicos del sistema mostrando el
flujo de control entre actividades.
 Una actividad es una ejecución no atómica en curso.
Produce una acción.
 Diagrama de interacción => Flujo de control entre
objetos.
 Diagrama de actividad => Flujo de control entre
actividades.
 Permite capturar el camino crítico del flujo de trabajo.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Actividad
 Estado de acción: son atómicos, no se pueden
descomponer, se considera que su ejecución lleva un tiempo
insignificante.
 Estado de actividad: no son atómicos (pueden ser
interrumpidos), invierten un tiempo en ejecutarse. Un
estado de acción puede verse como un caso particular de
actividad.
 Las transiciones son sin disparador (inmediatas)..
 Calles (Swim lines): Flujo de trabajo de procesos de
organización..
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Actividad
 Se utilizan para:
 Modelar el flujo de trabajo. Se hace incapié en las actividades tal
como son vistas por los actores.
 Modelar una operación. Modelan los detalles de computación,
mostrando la bifurcación, división y unión (flujos paralelos).
Muestra el flujo de las acciones en una operación.
Análisis y Diseño OO utilizando
UML
4. Modelamiento del Comportamiento
• Diagramas de Actividad - Ejemplo
Buscar Bebida
[ no hay café ]
[ no zumo ]
[ hay café ]
[ hay zumo ]
Poner café
en filtro
Añadir agua
al depósito
Coger taza
Coger
zumo
Poner filtro
en máquina
Encender
máquina
/ cafetera.On
Café en
preparación
indicador de fin
Servir café
Análisis y Diseño OO utilizando
UML
Beber
4. Modelamiento del Comportamiento
• Diagramas de Actividad – Ejemplo con Swim Lines
Pasaj ero
Solicitar
pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar
pago
Reservar
plazas
Confirmar plaza
reservada
Pagar
pasaje
Emitir
billete
Análisis y Diseño OO utilizando
UML