terminal

codeando_simple

terminal

menu

terminal

search_module

guest@codeandosimple: ~/system/search $ grep -r "" .

Press [ENTER] to execute search

Status

Engine: Ready

Database: Online

Index: V2.1.0_LATEST

bash — cat uml-colaboracion.md
guest@codeandosimple: ~/blog/uml $ cat diagrama-colaboracion.md

Diagrama de Colaboración_

// "La única manera de descubrir los límites de lo posible es aventurarse un poco más allá de ellos hacia lo imposible." - Arthur C. Clarke

El Diagrama de Colaboración, también conocido como diagrama de comunicación, es un tipo de diagrama de interacción que muestra cómo los objetos interactúan en un contexto particular. Se enfoca en la relación entre los objetos y su colaboración para lograr una funcionalidad específica.

Diagrama de colaboración

# Componentes

  • Objetos: Representados por rectángulos con el nombre del objeto y su clase.

  • Enlaces: Líneas que conectan objetos, mostrando la relación y la interacción entre ellos.

  • Mensajes: Pequeñas flechas junto al enlace. Indican dirección, nombre del mensaje, argumentos y una secuencia numérica para el orden cronológico.

# Ejemplo: Sistema bibliotecario

Este diagrama describe el proceso para crear un préstamo de un libro:

Ejemplo préstamo biblioteca

Pasos del proceso:

  • El bibliotecario busca un título específico.
  • El sistema muestra el título y ejemplares disponibles.
  • El bibliotecario selecciona el ejemplar.
  • El sistema muestra los detalles del ejemplar.
  • El bibliotecario identifica al prestatario.
  • El sistema confirma la información del prestatario.
  • El sistema registra y confirma la creación del préstamo.

# Implementación en Java

Clase de interacción principal:

public class VentanaDePrestamos {
    public Titulo encontrarTitulo(String nombre) {
        // Lógica para encontrar el título
        return new Titulo(nombre);
    }

    public Ejemplar encontrarEjemplar(Titulo titulo) {
        // Encontrar un ejemplar disponible
        return new Ejemplar(titulo);
    }

    public Prestatario identificarPrestatario(String nombre) {
        // Identificar al socio/prestatario
        return new Prestatario(nombre);
    }

    public Prestamo crearPrestamo(Prestatario prestatario, Ejemplar ejemplar) {
        // Registrar el préstamo
        return new Prestamo(ejemplar, prestatario);
    }
}

check_circle Ventajas

  • Claridad en las conexiones físicas entre objetos.
  • Enfoque directo en la colaboración.
  • Complementa la visión temporal del diagrama de secuencia.

cancel Desventajas

  • Menos enfoque en el orden temporal.
  • Se vuelve caótico en sistemas muy grandes.

# Conclusiones

El diagrama de colaboración es útil para visualizar las interacciones y colaboraciones entre objetos en un proceso, mediante una perspectiva clara de las relaciones y dependencias.