2. Introducción Los diagramas UML de secuencia y de colaboración (llamados diagramas de interacción) se utilizan para modelar los aspectos dinámicos de un sistema. Un diagrama de interacción consiste en un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos. Los diagramas de secuencia destacan el orden temporal de los mensajes. Los diagramas de colaboración destacan la organiza- ción estructural de los objetos que envían y reciben mensajes.
3. Ejemplos Diagrama de secuencia: destaca el orden temporal de los mensajes. Diagrama de colaboración: destaca la relación estructural entre los objetos que interactúan objetos tiempo <<destroy>>
4. Conceptos Ambos diagramas (secuencia y colaboración) son semántica- mente equivalentes. Se puede pasar de uno a otro sin pérdida de información. En los diagramas de secuencia, la linea de vida de un objeto es la línea discontinua vertical, que representa la existencia de un objeto a lo largo de un periodo de tiempo. El foco de control es un rectángulo delgado que representa el periodo de tiempo durante el cual un objeto ejecuta una acción.
5. Ejemplo Ejemplo 1: Se quiere modelar una llamada a través de una central telefónica. Para esto se tienen cuatro objetos involucrados: dos interlocutores (s y r), una central y una conversación. La secuencia empieza cuando un interlocutor envía un mensaje a la central al descolgar el auricular. La central da el tono de llamada, y el interlocutor marca el número al que desea llamar. El tiempo de marcado debe ser menor que 30 segundos.
6. Ejemplo s:Interlocutor :Central r:Interlocutor c:Conversación descolgarAuricular( ) darTonoDeLlamada( ) *marcarDigito( ) marcando {marcando.tiempoEjecucion < 30 segs} enrutarLlamadas(s,n) <<create>> llamar( ) descolgarAuricular( ) conectar(r,s) conectar(r) conectar(s) Los interlocutopres r y s pueden intercambiar información después de conectarse.
7. Notación Los diagramas de colaboración explican gráficamente las interacciones entre las instancias del modelo (objetos). Por ejemplo:
8. Notación msg1() { for i := 1 to 10 { miB.mens2(); miC.mens3(); } } Un objeto se puede enviar un mensaje a sí mismo: Es posible representar iteraciones:
14. Ejemplo Ejemplo 2: Matricular un nuevo estudiante en la universidad. Hay cuatro objetos involucrados: un encargado de matrícula, un estudiante, un curso y la universidad. La acción comienza cuando el encargado de matrícula crea un objeto estudiante, lo añade a la universidad, y le pide al objeto estudiante que se matricule. El objeto estudiante obtiene (de sí mismo) su plan de estudio, e identifica los cursos que quiere matricular.
16. Uso de diagramas La creación de los diagramas de secuencia depende de la formulación de los casos de uso. Los casos de uso indican cómo los actores interac- túan con el sistema. Durante la operación del sistema, los actores gene- ran eventos, solicitando alguna operación a cambio. Uso de diagramas de secuencia para modelar los casos de uso : El diagrama de secuencia de un sistema es una representación que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.
17. Uso de diagramas Ejemplo: caso de uso para compra de productos en un supermercado. Caso de uso : Comprar productos Actores : Cliente, cajero Tipo : Primario Descripción : Un Cliente llega a la caja registradora con los artículos que va a comprar. El Cajero registra los artículos y cobra el importe. Al terminar la operación, el Cliente se marcha con los productos.
18. Uso de diagramas Ejemplo: caso de uso para compra de productos en un supermercado.
19. Uso de diagramas Ejemplo: caso de uso para compra de productos en un supermercado. Def.: Un evento es una acción externa de entrada, que un actor produce en el sistema. En el ejemplo anterior, se tienen tres eventos: pasarProducto, terminarVenta y efectuarPago. Una vez que se identifican los eventos, se registran en la entidad que corresponda. Por ejemplo:
20. Uso de diagramas Ejemplo: caso de uso para compra de productos en un supermercado. Para cada evento que se produce en el sistema, se debe hacer un diagrama de colaboración. Ejemplo: