Está en la página 1de 24

UML

Diagrama de Secuencia

Universidad de los Andes


Demin Gutierrez
Mayo 2011

Diagramas de Secuencia
Los Diagramas de Secuencias muestran la forma en
que un grupo de objetos se comunican (interactan)
entre s a lo largo del tiempo
Un Diagrama de Secuencia consta de objetos,
mensajes entre estos objetos y una lnea de vida del
objeto representada por una lnea vertical

pedro = new Persona()

Es importante recordar la diferencia


entre una clase y un objeto

Diagramas de Secuencia
(Los tres cerditos)

Qu tiene que ver un diagrama de secuencias


con la fbula de los tres cerditos?
(Gracias Ken Howard)
http://kenhoward01.blogspot.com/2008/06/three-little-pigs-in-uml.html

Diagramas de Secuencia
(Los tres cerditos)

Los diagramas
de Secuencias
cuentan historias

Diagramas de Secuencia
(Los tres cerditos)

5
Fuente: http://kenhoward01.blogspot.com/2008/06/three-little-pigs-in-uml.html

Diagramas de Secuencia
(Los tres cerditos)
Actores
Involucrados

Recordar Etiquetas
Ejecucin en
Paralelo

Instanciacin
Objeto
(Ejecucin)
Activo

Objeto
Lnea de Vida
de un Actor
u Objeto

Separador de
las ejecuciones
concurrentes
6
Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/

Diagramas de Secuencia
(Los tres cerditos)

Comentario

Mensaje

Fin de la vida
de un objeto

Recordar
Etiquetas

Pila de
Llamada

Retorno
Explcito
7

Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/

Diagramas de Secuencia
(Los tres cerditos)

Ojo, aqu
hay un error

8
Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/

Diagramas de Secuencia
(Relacin con Casos de Uso)
Flujo Normal:
1.- El actor pulsa sobre el botn para crear un nuevo mensaje.
2.- El sistema muestra una caja de texto para introducir el ttulo del
mensaje y una zona de mayor tamao para introducir el cuerpo del
mensaje.
3.- El actor introduce el ttulo del mensaje y el cuerpo del mismo.
4.- El sistema comprueba la validez de los datos y los almacena.
5.- El moderador recibe una notificacin de que hay un nuevo mensaje.
6.- El moderador acepta y el sistema publica el mensaje si ste fue
aceptado por el moderador.
Flujo Alternativo:
4.A.- El sistema comprueba la validez de los datos, si los datos no son
correctos, se avisa al actor de ello permitindole que los corrija.
7.B.- El moderador rechaza el mensaje, de modo que no es publicado sino
devuelto al usuario.

Descripcin Textual de un Caso de Uso


(Requerimientos: Qu debe hacer el sistema?)

Mensaje
a si mismo

Distintos smbolos
usados para diferenciar
distintos tipos de
objetos

Recordar
Etiquetas

Numeracin
(Orden)
de los
Mensajes

Mensaje
Asncrono
10

Diagramas de Secuencia
(Implementacin)

protected void doPaint(Painter painter) {


painter.drawRect(x, y, width, height);
// Cause painting of shapes to be relative to this shape
painter.translate(x, y);

for (Shape s : shapes) {


s.paint(painter);
}

Es posible utilizar un diagrama de secuencia para


modelar el mtodo anterior
11

Diagramas de Secuencia
(Implementacin)

Argumentos
del Mensaje
Origen del
Mensaje
Indeterminado
Destino del
Mensaje
Indeterminado

Recordar
Etiquetas

Repeticin *
mientras / para
[condicin]
12

Diagramas de Secuencia
(Implementacin)

protected void doPaint(Painter painter, Config config) {


painter.drawRect(x, y, width, height);
// Cause painting of shapes to be relative to this shape
painter.translate(x, y);
for (Shape s : shapes) {
Rectangle clip = s.getClip();
painter.setClip(clip);
s.paint(painter);
}
// Restore graphics origin
painter.translate(-x, -y);
}

13

Diagramas de Secuencia
(Implementacin)

Lazo / Repeticin
Explcito de
ms de una
instruccin

Valor de
Retorno

Mientras / para
[condicin]

Recordar
Etiquetas

Marco
Compuesto
14

Diagramas de Secuencia
(Implementacin)

protected void doPaint(Painter painter, Config config) {


painter.drawRect(x, y, width, height);
// Cause painting of shapes to be relative to this shape
boolean translate = config.needsTranslation();
if (translate) {
painter.translate(x, y);
}

for (Shape s : shapes) {


s.paint(painter);
}

15

Diagramas de Secuencia
(Implementacin)

Condicional
[condicin]

16

Diagramas de Secuencia
(Implementacin)

protected void doPaint(Painter painter, Config config) {


painter.drawRect(x, y, width, height);
// Cause painting of shapes to be relative to this shape
boolean translate = config.needsTranslation();
if (translate) {
painter.setTransformsEnabled(true);
painter.translate(x, y);
}
for (Shape s : shapes) {
s.paint(painter);
}
}

17

Diagramas de Secuencia
(Implementacin)

Condicional
(Opcional)
[condicin]

18

Diagramas de Secuencia
(Implementacin)
protected void doPaint(Painter painter, Config config) {
painter.drawRect(x, y, width, height);
// Cause painting of shapes to be relative to this shape
boolean translate = config.needsTranslation();
if (translate) {
painter.setTransformsEnabled(true);
painter.translate(x, y);
} else {
painter.setTransformsEnabled(false);
painter.translate(0, 0);
}

for (Shape s : shapes) {


s.paint(painter);
}
19

Diagramas de Secuencia
(Implementacin)

Flujos
Alternativos
(if/else)
[condicin]

Se pueden
tener todos los
compartimientos
que sean
necesarios

20

Diagramas de Secuencia
(Implementacin)

Identificacin
del diagrama

21

Diagramas de Secuencia
(Implementacin)

Identificacin
del diagrama

22

Diagramas de Secuencia
(Implementacin)

Una referencia rpida de UML


http://www.holub.com/goodies/uml/
Tutorial de Diagramas de Secuencia (IBM)
http://www.ibm.com/developerworks/rational/library/3101.html

Tutorial de Diagramas de Secuencia (Trace Modeler)


http://www.tracemodeler.com/articles/a_quick_introduction_to_uml_sequence_diagrams/index.html

23

Gracias

Gracias!

24

También podría gustarte