Você está na página 1de 22

UML Diagrama de Secuencia

Universidad de los Andes


Demin Gutierrez Abril 2009

D i a g r a m a s d e Se cu e n ci a 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

D i a g r a m a s d e Se cu e n ci a ( L os t r e s ce r d i t os)

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

D i a g r a m a s d e Se cu e n ci a ( L os t r e s ce r d i t os)

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

D i a g r a m a s d e Se cu e n ci a ( L os t r e s ce r d i t os)
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

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

D i a g r a m a s d e Se cu e n ci a ( L os t r e s ce r d i t os)

Comentario

Mensaje

Fin de la vida de un objeto

Recordar Etiquetas

Pila de Llamada

Retorno Explcito

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

D i a g r a m a s d e Se cu e n ci a ( L os t r e s ce r d i t os)

Ojo, aqu hay un error

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

D i a g r a m a s d e Se cu e n ci a ( R e l a ci n con C a sos d e U so)


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.

D e scr i p ci n T e xt u a l d e u n C a so d e U so ( R e q u e r i m i e n t os: Q u d e b e h a ce r e l si st e m a ?)

Mensaje a si mismo

Distintos smbolos usados para diferenciar distintos tipos de objetos

Recordar Etiquetas

Numeracin (Orden) de los Mensajes

Mensaje Asncrono

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

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

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Argumentos del Mensaje Origen del Mensaje Indeterminado Destino del Mensaje Indeterminado Repeticin * mientras / para [condicin]

Recordar Etiquetas

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

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);

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Lazo / Repeticin Explcito de ms de una instruccin

Valor de Retorno

Mientras / para [condicin] Marco Compuesto

Recordar Etiquetas

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

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); }

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Condicional [condicin]

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

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); }

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Condicional (Opcional) [condicin]

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )
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); }

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Flujos Alternativos (if/else) [condicin]

Se pueden tener todos los compartimientos que sean necesarios

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Identificacin del diagrama

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

Identificacin del diagrama

D i a g r a m a s d e Se cu e n ci a ( I m p l e m e n t a ci n )

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

Você também pode gostar