Saltar la navegación

3.2.3.- Ejemplo de un diagrama de colaboración.

Diagrama de interacción: Diagrama de colaboración

A continuación se muestra un diagrama de colaboración de ejemplo.

Este es el diagrama de colaboración que representa el caso de uso "Generar pedido" del diagrama de casos de uso del ejercicio resuelto 1 "ZAPATERÍA TACÓN DE ORO" (en el punto 2 de "Los diagramas de casos de uso"). Se ha creado siguiendo el diagrama de secuencia, por lo que no te debe ser muy difícil seguirlo, de hecho algunas aplicaciones para la creación de estos diagramas permiten la obtención de uno a partir de otro. Debes tener en cuenta que la aplicación modifica un poco la signatura de los mensajes, el valor devuelto se representa al final precedido de dos puntos.

Se parte de un conjunto central de objetos que son usuario, con forma de monigote, sistema con forma de rectángulo azul y Banca con forma de monigote. Están unidos por líneas rectas y continuas. Existe una línea que empieza y termina en sistema haciendo como un rectángulo y otra linea que pasa por la zona superior de Usuario a Banca. Debajo están los objetos artículo:Articulo, en forma de rectángulo doble superpuesto, pedido:Pedido en forma de rectángulo azul, socio:Socio en forma de rectángulo azul y linea:lineaPedido en forma de rectángulo doble superpuesto. Sistema se conecta por líneas continuas con todos estos objetos. A continuación se lista la secuencia del mensajes que se envían indicando el orden de secuencia, el objeto origen, el objeto destino y la signatura del mensaje: De Usuario a sistema 1:iniciarPedido(). De sistema a pedido 1.1:crear(). De usuario a sistema 1.2: *[mientras pedido incompleto]seleccionarArticulo() De usuario a sistema 1.3: *[mientras pedido incompleto]seleccionarCantidad() De sistema a linea 1.4: * [mientras pedido incompleto]crear(cod, cant) De sistema a artículo 1.5: * [mientras pedido incompleto]obtenerPrecio() De sistema a sistema 1.6: * [mientras pedido incompleto]actualizarTotal() De usuario a sistema 2: aceptarPedido(). De sistema a socio 3:comprobarSocio() De sistema a sistema 3.1 [Socio no encontrado] registrarSocio() De sistema a Banca 4: comprobarDatosBancarios() De sistema a sistema 4.1: * [Mientras datos bancarios incorrectos] solicitarDatosBancarios(). De Ususario a Banca 5a: [DatosBancarios correctos]pagarPedido(). De sistema a pedido 6a: [DatosBancarios correctos] establece(“pendiente”). De sistema a linea 5b:* [operación cancelada] destruir(). De sistema a pedido 6b:[operación cancelada] destruir().

Los aspectos más destacados son los siguientes:

  • Las actividades que se repiten o pueden repetirse se marcan con un asterisco y su condición.
  • Las condiciones de guarda se escriben en el mismo nombre del mensaje.
  • El flujo alternativo de eventos según si el usuario cancela el pedido o no, obliga a modificar los números de secuencia de los mensajes 5 y 6, pasando a tener los mensajes 5a y 6a y 5b y 6b, según la condición. Puedes modificar el número se secuencia de los mensajes abriendo la especificación del diagrama, y seleccionando la pestaña Mensajes, donde puedes editar los números de secuencia haciendo doble clic sobre ellos.
  • Al objeto "sistema" se le ha asignado el estereotipo system.