SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
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
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje
Para qué sirven los diagramas de
secuencia?
2
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
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
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
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
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
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
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
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
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
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
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
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
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
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 obj1
instancia de la clase Clase1
16
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
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
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
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
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
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
La segunda condición
corresponde al nombre del
método. Aquí podemos
observar que el método está
efectivamente definido en la
Clase1
23
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
En este diagrama hay
dos ocurrencias de
ejecución o dos
rectángulos delgados
sobre las líneas de vida
de los objetos.
25
En el primer caso se está
representando que la invocación al
método ocurrió durante ese foco de
control.
26
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
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
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
Si el llamado del
método fuera
asíncrono, se debe
indicar el regreso del
llamado.
30
síncrono
asíncrono
En la notación, la
diferencia entre
síncrono y
asíncrono está en la
flecha del mensaje.
31
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
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
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
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
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
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
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje
Ejemplo
38
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
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
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
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
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
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?
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
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
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
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.
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 Cinema
darCapacidadSalaCine(int) que recibe como argumento el numero de la
sala deseada.
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
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
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 objeto
Cinema 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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje
67
Revisando el diagrama de clases podemos identificar
que hay una relación de composición entre la clase
Cinema y la clase Película.
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje
68
La clase Cinema es la dueña de la cartelera que
contiene las películas que se exhiben en el cinema.
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje
69
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.
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
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”
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
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
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
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
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 creado
76
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
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
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
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

Más contenido relacionado

La actualidad más candente

Introducción a los Métodos Numéricos
Introducción a los Métodos NuméricosIntroducción a los Métodos Numéricos
Introducción a los Métodos Numéricos
Brianith Navarro
 
Métodos numéricos
Métodos numéricosMétodos numéricos
Métodos numéricos
adrianaroab
 
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENADIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
DELQUIS ROMERO CORTINA
 
Simulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con PromodelSimulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con Promodel
Alvaro Gil
 
Metodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingenMetodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingen
edamcar
 
13894544 metodos-numericos-para-ingenieria (1)
13894544 metodos-numericos-para-ingenieria (1)13894544 metodos-numericos-para-ingenieria (1)
13894544 metodos-numericos-para-ingenieria (1)
Juanita Qontreras
 

La actualidad más candente (19)

Analisis numericos angel mata
Analisis numericos angel mata Analisis numericos angel mata
Analisis numericos angel mata
 
Analisis numerico presentacion
Analisis numerico presentacionAnalisis numerico presentacion
Analisis numerico presentacion
 
Matlab
Matlab Matlab
Matlab
 
An 02 fundamentos del matlab
An 02 fundamentos del matlabAn 02 fundamentos del matlab
An 02 fundamentos del matlab
 
Simulacion uam
Simulacion uamSimulacion uam
Simulacion uam
 
Introducción a los Métodos Numéricos
Introducción a los Métodos NuméricosIntroducción a los Métodos Numéricos
Introducción a los Métodos Numéricos
 
Tipos de metodos numericos
Tipos de metodos numericosTipos de metodos numericos
Tipos de metodos numericos
 
1.2 aproximacion numerica
1.2 aproximacion numerica1.2 aproximacion numerica
1.2 aproximacion numerica
 
Métodos numéricos
Métodos numéricosMétodos numéricos
Métodos numéricos
 
Simulaunoitrm
SimulaunoitrmSimulaunoitrm
Simulaunoitrm
 
Campos vectoriales con Matlab y Mathematica
Campos vectoriales con Matlab y MathematicaCampos vectoriales con Matlab y Mathematica
Campos vectoriales con Matlab y Mathematica
 
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENADIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
DIAPOSITIVAS PROBLEMA RESUELTO EN ARENA
 
Angelica garcia
Angelica garciaAngelica garcia
Angelica garcia
 
Exactitud numerica
Exactitud numericaExactitud numerica
Exactitud numerica
 
Act 1 analisi numerico
Act 1 analisi numericoAct 1 analisi numerico
Act 1 analisi numerico
 
Introducción a los métodos númericos Clase 1
Introducción a los métodos númericos Clase 1Introducción a los métodos númericos Clase 1
Introducción a los métodos númericos Clase 1
 
Simulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con PromodelSimulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con Promodel
 
Metodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingenMetodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingen
 
13894544 metodos-numericos-para-ingenieria (1)
13894544 metodos-numericos-para-ingenieria (1)13894544 metodos-numericos-para-ingenieria (1)
13894544 metodos-numericos-para-ingenieria (1)
 

Similar a Secuenciasinteraccionesbasicas

Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
eliianiitta12
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
eliianiitta12
 
Manual simulacion para compartir en la nube
Manual simulacion para compartir en la nubeManual simulacion para compartir en la nube
Manual simulacion para compartir en la nube
phyeni
 
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
Capitulo i modelos_matematicos_y_errores,_parte_1[1]Capitulo i modelos_matematicos_y_errores,_parte_1[1]
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
chinop7
 
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
YeshuaCamposChvez
 

Similar a Secuenciasinteraccionesbasicas (20)

Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Pia grupo12 equipo1
Pia grupo12 equipo1Pia grupo12 equipo1
Pia grupo12 equipo1
 
Clase 2 Modelo matematico.pptx
Clase 2 Modelo matematico.pptxClase 2 Modelo matematico.pptx
Clase 2 Modelo matematico.pptx
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Manual 2 Software Arena
Manual 2 Software ArenaManual 2 Software Arena
Manual 2 Software Arena
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Manual unidad4
Manual  unidad4Manual  unidad4
Manual unidad4
 
Manual simulacion para compartir en la nube
Manual simulacion para compartir en la nubeManual simulacion para compartir en la nube
Manual simulacion para compartir en la nube
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Modelos matematicos equipo n.2
Modelos matematicos equipo n.2Modelos matematicos equipo n.2
Modelos matematicos equipo n.2
 
Informe matlab.
Informe matlab.Informe matlab.
Informe matlab.
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
Capitulo i modelos_matematicos_y_errores,_parte_1[1]Capitulo i modelos_matematicos_y_errores,_parte_1[1]
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
 
Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.
 
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
1raclasedemtodosnumricos-150903221928-lva1-app6892 (1).pptx
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Introducción a los Métodos Numéricos
Introducción a los Métodos NuméricosIntroducción a los Métodos Numéricos
Introducción a los Métodos Numéricos
 
Guia_programación Comp-EstructurasControl.pdf
Guia_programación Comp-EstructurasControl.pdfGuia_programación Comp-EstructurasControl.pdf
Guia_programación Comp-EstructurasControl.pdf
 

Último

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
macsal12345
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 

Último (20)

ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 

Secuenciasinteraccionesbasicas

  • 1. 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
  • 2. Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje Para qué sirven los diagramas de secuencia? 2
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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 obj1 instancia de la clase Clase1 16
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. La segunda condición corresponde al nombre del método. Aquí podemos observar que el método está efectivamente definido en la Clase1 23
  • 24. 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
  • 25. En este diagrama hay dos ocurrencias de ejecución o dos rectángulos delgados sobre las líneas de vida de los objetos. 25
  • 26. En el primer caso se está representando que la invocación al método ocurrió durante ese foco de control. 26
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Si el llamado del método fuera asíncrono, se debe indicar el regreso del llamado. 30
  • 31. síncrono asíncrono En la notación, la diferencia entre síncrono y asíncrono está en la flecha del mensaje. 31
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje Ejemplo 38
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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?
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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.
  • 49. 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 Cinema darCapacidadSalaCine(int) que recibe como argumento el numero de la sala deseada.
  • 50. 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
  • 51. 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
  • 52. 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 objeto Cinema 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.
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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.
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje 67 Revisando el diagrama de clases podemos identificar que hay una relación de composición entre la clase Cinema y la clase Película.
  • 68. Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje 68 La clase Cinema es la dueña de la cartelera que contiene las películas que se exhiben en el cinema.
  • 69. Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje 69 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.
  • 70. 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
  • 71. 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”
  • 72. 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
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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 creado 76
  • 77. 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
  • 78. 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
  • 79. 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
  • 80. 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