UML Clase 06 UML Secuencia

  • View
    189

  • Download
    10

Embed Size (px)

DESCRIPTION

Diagrama de secuencia

Text of UML Clase 06 UML Secuencia

UML Diagrama de Secuencia

Universidad de los AndesDemin Gutierrez Mayo 2011 1

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

2

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

3

Diagramas de Secuencia (Los tres cerditos)

Los diagramas de Secuencias cuentan historias

4

Diagramas de Secuencia (Los tres cerditos)

5Fuente: 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 concurrentes6Fuente: 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 Explcito7

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

Diagramas de Secuencia (Los tres cerditos)

Ojo, aqu hay un error

8Fuente: 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.

9

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 Asncrono10

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 anterior11

Diagramas de Secuencia (Implementacin)

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

Recordar Etiquetas

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] Marco Compuesto14

Recordar Etiquetas

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