Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de...

80
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Interacciones básicas 1

Transcript of Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de...

Page 1: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y

Computación

Diagramas de secuencia

Interacciones básicas

1

Page 2: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Para qué sirven los diagramas de

secuencia?

2

Page 3: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Para qué sirven los diagramas de

secuencia?

• En UML 2 existen 13 tipos de diagramas

distintos para representar aspectos de

estructura o de comportamiento de un

sistema que existe o que está en

construcción.

3

Page 4: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Para qué sirven los diagramas de

secuencia?

• Entre los diagramas para representar

comportamiento, están los diagramas que

hacen énfasis en aspectos de interacción

entre los objetos. Estos incluyen

diagramas de comunicación, interacción,

secuencia y tiempo.

4

Page 5: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Para qué sirven los diagramas de

secuencia?

• En este módulo vamos a trabajar con los

diagramas de secuencia que permiten

modelar la secuencia de interacciones

entre distintos objetos para lograr alguna

tarea ya sea un escenario de un caso de

uso, la lógica de un método o la lógica de

un servicio.

5

Page 6: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Para qué sirven los diagramas de

secuencia?

• Para entender el propósito de los

diagramas de secuencia vamos a

empezar con un ejemplo.

6

Page 7: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• En la figura del

ejemplo, tenemos el

caso “Universidad”

• Aquí podemos ver

que hay 4 clases

Universidad,

Programa, Curso,

Estudiante y que

estas clases están

relacionadas entre

si.

7

Page 8: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Este diagrama de

clases es una

representación

estática del sistema.

8

Page 9: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Ahora estamos

interesados en

mostrar cómo

interactúan objetos

de estas clases.

• Es decir, estamos

interesados en

modelar el

comportamiento del

sistema

9

Page 10: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

En un diagrama de secuencia se representan objetos y no clases.

10

Page 11: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Un objeto se representa con una caja rectangular y una línea punteada que sale de la caja hacia abajo.

11

Page 12: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

En el ejemplo, el objeto se llama u1 y es una instancia de la clase Universidad.

12

Page 13: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

La línea punteada que sale de la caja se llama la línea de la vida del objeto (lifeline).

Esta línea establece un orden en las acciones que realiza el objeto.

13

Page 14: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Es importante indicar siempre a qué clase pertenece el objeto. De qué clase es instancia.

Como en este ejemplo, el nombre del objeto puede omitirse, si dentro de lo que se está describiendo no se necesita precisarlo, pero siempre debe tener el nombre de la clase. Aquí estamos diciendo que tenemos un objeto instancia de la clase Programa

14

Page 15: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Cuando un objeto aparece en un diagrama de secuencia significa que éste está activo en ejecución, es decir que otros objetos se pueden comunicar con él.

15

Page 16: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

La interacción entre los objetos se realiza a través de mensajes que se envían entre ellos. En la figura, el obj3 de la clase Clase2 envía un mensaje llamado “mensajeEjemplo” al objeto obj1instancia de la clase Clase1

16

Page 17: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Los mensajes pueden ser de distintos tipos: síncronos o asíncronos, perdidos, encontrados, llamados o señales.

Por ahora vamos a focalizar en mensaje síncronos que corresponden a llamados de métodos.

17

Page 18: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

De nuestro ejemplo, decimos que el objeto u1 de la clase Universidad le envía un mensaje al objeto p1 de la clase Programa.

En este ejemplo, el mensaje corresponde al llamado del método darNombre().

18

Page 19: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Este es un mensaje síncrono. Lo que significa que una vez que se ejecute el método darNombre en el objeto p1, la secuencia (el control) regresa al objeto quien hizo el llamado, en este caso el objeto u1.

19

Page 20: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

En este ejemplo, el obj3 de la clase Clase2 envía un mensaje al objeto obj1 de la clase Clase1.

Este mensaje es el llamado del método “nombreMetodo” con sus argumentos arg1 y arg2.

20

Page 21: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Note que para que este mensaje sea válido, se tienen que cumplir dos cosas:

1.El objeto obj3 “conoce” al objeto obj1.

2.El método nombreMetodo está definido en la clase Clase1 con los parámetros correspondientes para que el llamado sea válido

21

Page 22: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

En el diagrama de clases ejemplo, todos los objetos de la clase Clase2 tienen una asociación con un objeto de Clase1 llamado obj1. Así, el obj3 conoce al obj1.

22

Page 23: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

La segunda condición corresponde al nombre del método. Aquí podemos observar que el método está efectivamente definido en la Clase1

23

Page 24: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Más sobre la notación:

El rectángulo delgado en cada uno de los objetos representa una ocurrencia de ejecución o activación de un foco de control.

24

Page 25: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

En este diagrama hay dos ocurrencias de ejecución o dos rectángulos delgados sobre las líneas de vida de los objetos.

25

Page 26: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

En el primer caso se está representando que la invocación al método ocurrió durante ese foco de control.

26

Page 27: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

En el segundo caso, se está representando que como consecuencia de la invocación, se creó una ocurrencia de ejecución para el objeto obj1.

27

Page 28: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Cuando se termina la ejecución del método en obj1, se acaba la ocurrencia de ejecución (como si el objeto ahora estuviera de nuevo en reposo listo para que otros objetos se comuniquen con él).

28

Page 29: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Dado que en nuestro ejemplo se trata de un llamado síncrono, una vez que se termina la ejecución del método, el control vuelve al objeto obj3 después del llamado (donde indica la línea roja)

29

Page 30: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Si el llamado del método fuera asíncrono, se debe indicar el regreso del llamado.

30

Page 31: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

síncrono

asíncrono

En la notación, la diferencia entre síncrono y asíncrono está en la flecha del mensaje.

31

Page 32: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y

Computación

Diagramas de secuencia

Interacciones básicas- Ejemplo

Patrón Experto

32

Page 33: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Como ya mencionamos, los diagramas de secuencia se

pueden utilizar para :

• Modelar el comportamiento de los escenarios de caso de uso

• Modelar la lógica de un método

• Modelar la lógica de un servicio

• En el siguiente ejemplo modelaremos escenarios de caso de uso y a través de este ejemplo reforzaremos los conceptos de los patrones GRASP y de los diagramas de secuencia.

33

Page 34: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo• Suponga que tenemos el

siguiente diagrama de clases sobre Cinema.

34

Page 35: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo• Este diagrama modela los elementos estructurales de un cinema:

Cinema, SalaCine, Pelicula, Funcion

• El Cinema se compone de salas de cine, cada una con una capacidad

y un número de sala.

35

Page 36: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo• El Cinema es el dueño de su cartelera que está compuesta por

películas y tenemos también, el concepto Función que

relaciona en cuál sala de cine y a qué hora se proyecta una

película en particular.

36

Page 37: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Suponga que para este

mundo del Cinema nos

interesa resolver los

siguientes casos de uso:

37

Page 38: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

38

Page 39: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo• Cuando tenemos los casos de uso, nos

interesa verificar si la información que

tenemos en el diagramas de clases es

suficiente para poder resolverlo.

• Para esto utilizamos los patrones GRASP y

los diagramas de secuencia.

• Como estamos modelando comportamiento,

vamos a tener que preguntarnos “de quién

es la responsabilidad de conocer o hacer

algo?” y vamos a ir tomando decisiones

asignando métodos a las clases,

eventualmente cambiando o agregando

relaciones, en la medida en que vamos

desarrollando el diagrama de secuencia.

39

Page 40: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Vamos a modelar el

diagrama de secuencia del

caso de uso ver capacidad

de la sala de cine.

40

Page 41: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• La primera pregunta que debemos hacernos es: quién es el dueño de la información de la capacidad de la sala de cine?

41

Page 42: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Si observamos el diagrama de secuencia, la clase dueña de esta

información es la SalaCine

42

Page 43: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Siguiendo el patrón Experto, la clase SalaCine debe tener un método

darCapacidad() que devuelva el valor del atributo capacidad.

43

Page 44: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

44

Entonces tenemos que dado un objeto instancia SalaCine, este objeto es responsable de dar la información sobre su capacidad.

Pero para resolver el caso de uso, debemos preguntarnos: cuál es ese objeto SalaCine?

Ese objeto es el correspondiente a un número de sala dado por el actor del caso de uso. Entonces podemos precisar la pregunta anterior por:

De quién es la responsabilidad de encontrar el objeto SalaCine que corresponde a un número dado?

Page 45: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Siguiendo con el patrón

Experto, vemos que la clase

Cinema es la dueña de la

colección de salasCine.

45

Page 46: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Así, agregamos el método buscarSalaCine(int) quién recibe el número de la sala deseado y retorna un objeto SalaCine.

46

Page 47: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Para modelar el caso de uso,

necesitamos un responsable de

coordinar las tareas:

• 1. Recibir desde afuera (afuera

significa algún tipo de interfaz con el

usuario actor del caso de uso) del

cinema la petición de dar capacidad

de una sala de cine dado un número

• 2. buscar el objeto SalaCine que

corresponde a ese número

• 3. Pedirle a ese objeto su capacidad.

47

Page 48: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

48

Nos falta contestar la pregunta: quién es el responsable de recibir las peticiones desde afuera ?

La respuesta es la clase Cinema quién está aquí jugando un rol de principal o de controlador del sistema.

Page 49: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

49

Agregamos entonces un nuevo método a la clase CinemadarCapacidadSalaCine(int) que recibe como argumento el numero de la sala deseada.

Page 50: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Ahora podemos modelar el

comportamiento de este caso de uso

mostrando la secuencia de las

interacciones entre los objetos.

50

Page 51: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Vamos a suponer que ya hay

en ejecución un objeto de la

clase Cinema que va a recibir

los mensajes de los actores

(las peticiones) de los casos

de uso.

• Para propósitos del ejemplo

este objeto lo hemos llamado

“multiplex”

51

Page 52: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Para recordar la sintaxis,

note que el objeto se

representa con el rectángulo

que contiene el nombre del

objeto y la clase a la que

pertenece y su línea de vida.

52

multiplex es el nombre del objetoCinema es la clase a la que pertenece el objeto

La línea punteada representa la línea de vida del objeto.El tiempo va de abajo hacia arriba. Esto es importante para entender el orden de la secuencia de interacción.

Page 53: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• El objeto multiplex recibe un

mensaje de un usuario

externo al sistema que le

solicita la capacidad de una

sala de cine y da el número

de la sala .

• Note que aquí no estamos

modelando la interfaz con el

usuario, estamos suponiendo

que “algo externo” se

comunica con el objeto

multiplex.

53

Page 54: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• El objeto multiplex recibe un

mensaje que le solicita la

capacidad de una sala de

cine y da el número de la

sala .

54

Page 55: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Es un llamado síncrono

• El método ya está definido en

la clase Cinema y retorna un

valor entero que en este

diagrama lo vamos a recoger

en una variable llamada

“capacidad”

55

Page 56: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• La recepción del mensaje por

el objeto multiplex, inicia una

ocurrencia de ejecución del

método

darCapacidadSalaCine(int).

56

Page 57: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

57

• Ahora modelamos el comportamiento del método darCapacidadSalaCine(int), es decir, lo que pasa a partir del inicio de la ocurrencia de ejecución.

Page 58: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

58

• Como ya lo dijimos informalmente los pasos por hacer son:

• Buscar el objeto sala que corresponde al número dado

• Pedirle a este objeto su capacidad

Page 59: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Siguiendo la ejecución del

método en el objeto

multiplex:

– 1. Invoca el método

buscarSalaCine(int)

sobre si mismo para

obtener el objeto sala de

cine correspondiente al

número dado.

59

Page 60: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

– Note que el rectángulo

pequeño indica la

ocurrencia de ejecución

del método buscar.

– Este método devuelve un

objeto llamado sala que

es una instancia de la

clase SalaCine

60

Page 61: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Siguiendo la ejecución del

método en el objeto

multiplex:

– 2. El objeto multiplex

ahora puede interactuar

con el objeto sala.

61

Page 62: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Para esto le envía un

mensaje darCapacidad() que

debe retornar la capacidad

de la sala.

62

Page 63: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Como todos los llamados son

síncronos, una vez que se

termina la ejecución de

darCapacidad() en el objeto

sala, el control regresa al

objeto multiplex quien

termina la ejecución del

método

darCapacidadSalaCine(int) y

el valor solicitado se retorna

en la variable capacidad.

63

Page 64: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y

Computación

Diagramas de secuencia

Interacciones básicas- Ejemplo

Patrón Creador

64

Page 65: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Vamos a continuar con el ejemplo del Cinema

modelando el comportamiento del caso de uso

“Crear Película”

65

Page 66: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• La primera pregunta que debemos

hacernos es: de quién es la

responsabilidad de crear una película?

66

Page 67: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje67

Revisando el diagrama de clases podemos identificar que hay una relación de composición entre la clase Cinema y la clase Película.

Page 68: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje68

La clase Cinema es la dueña de la cartelera que contiene las películas que se exhiben en el cinema.

Page 69: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje69

Siguiendo la guía del patrón Creador, el responsable de crear las películas es el cinema.Para esto agregamos el método crearPelícula(nombre) en la clase Cinema.

Page 70: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Ahora vamos a modelar la interacción de

los objetos para crear una película

utilizando un diagrama de secuencia

70

Page 71: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

71

• Vamos a suponer que ya hay en ejecución un objeto de la clase Cinema que va a recibir los mensajes de los actores (las peticiones) de los casos de uso.

• Para propósitos del ejemplo este objeto lo hemos llamado “multiplex”

Page 72: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Un actor externo llamado

usuario envía el mensaje

crearPelicula(nombre) al

objeto multiplex.

72

Page 73: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Note la creación de la

ocurrencia de ejecución en el

objeto multiplexpara el

método crearPelícula

73

Page 74: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

El objeto multiplex crea una nueva instancia de tipo Película.

74

Page 75: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Note que en la sintaxis del diagrama de secuencia, cuando se trata de la creación de

un objeto este aparece en el punto donde se llamó el constructor y no en la parte

superior del diagrama

75

Page 76: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Note también que la línea interacción es una línea punteada.

Hay una variable llamada nuevaPelicula que contendrá el nuevo

objeto creado76

Page 77: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Hay una variable llamada nuevaPelicula que contendrá el nuevo objeto creado

77

Page 78: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Al constructor de la clase Película se encarga de que el nuevo objeto

tenga en su atributo privado nombre el nombre que se pasó como

argumento. 78

Page 79: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Finalmente, agregamos el objeto nuevaPelícula a la colección

cartelera

79

Page 80: Diagramas de secuencia - Profesoresisis2603/dokuwiki/lib/... · •En UML 2 existen 13 tipos de diagramas ... clase pertenece el objeto. ... Cuando un objeto aparece en un diagrama

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

¿Qué pasaría si la película

que se va a crear ya existe?

80