UML - Diagrama de Secuencia

El diagrama de secuencia representa la interacción entre las entidades en un proceso, muestra cómo interactúan.

Se enfoca en el orden en que estas interacciones ocurren y en la secuencia de mensajes intercambiados entre objetos a lo largo del tiempo.

singleton

Componentes de un Diagrama de Secuencia

  • Objetos/Clases: Rectángulos en la parte superior del diagrama. Cada objeto/clase tiene una línea de vida que desciende verticalmente.

singleton
  • Líneas de Vida: Líneas punteadas verticales que indican la existencia de un objeto durante la interacción (se puede ver en el diagrama de anterior).
  • Mensajes: Representados por flechas horizontales entre las líneas de vida de los objetos, indicando la comunicación. Las flechas pueden ser sólidas (llamadas a métodos) o punteadas (respuestas).

singleton
  • Activación: Rectángulos delgados sobre una línea de vida que indican cuándo un objeto está activo o controlando el flujo de control.

Juntando Todo

singleton

También podemos agregar Loops

singleton

Ejemplo: Sistema de autenticación

El Usuario ingresa credenciales, que la Interfaz de Autenticación recoge y envía al Sistema de Verificación.

El Sistema de Verificación comprueba las credenciales y devuelve el resultado.

singleton

Un código posible:


  public class Usuario {
      private String username;
      private String password;

      public Usuario(String username, String password) {
          this.username = username;
          this.password = password;
      }

      public String getUsername() {
          return username;
      }

      public String getPassword() {
          return password;
      }
  }

  public class InterfazDeAutenticacion {
      public static boolean autenticar(Usuario usuario) {
          SistemaDeVerification sistema = new SistemaDeVerification();
          return sistema.verificarCredenciales(usuario.getUsername(), usuario.getPassword());
      }
  }

  public class SistemaDeVerification {
      public boolean verificarCredenciales(String username, String password) {
          // Lógica de verificación de credenciales
          return true; // Suponemos que siempre es exitoso
      }
  }

  public class Main {
      public static void main(String[] args) {
          Usuario usuario = new Usuario("usuario", "contraseña");
          boolean resultado = InterfazDeAutenticacion.autenticar(usuario);

          if (resultado) {
              System.out.println("Inicio de sesión exitoso.");
          } else {
              System.out.println("Error en la autenticación.");
          }
      }
  }
                
                

Propósito y Uso

  • Interacciones Dinámicas: Los diagramas de secuencia son ideales para modelar interacciones específicas entre objetos, mostrando cómo se ejecutan operaciones y se intercambian mensajes para realizar una función.

  • Escenarios: Son perfectos para representar escenarios concretos, como casos de uso, donde se necesita entender la secuencia exacta de pasos y eventos.

  • Depuración y Diseño: Ayudan a identificar problemas potenciales en el flujo de interacción y son útiles en el diseño y la revisión de protocolos de comunicación entre objetos.

Consideraciones Importantes

  • Foco en Mensajes: La atención está en los mensajes intercambiados entre objetos, no en los procesos internos de los objetos mismos.

  • Orden Temporal: La posición horizontal de los mensajes indica el orden en el tiempo, lo que es fundamental para entender la secuencia de eventos.

Conclusiones

El diagrama de secuencia es importante para visualizar la interacción de los en un proceso, dan una visión clara de la secuencia temporal de mensajes.

Usado eficazmente, sobre todo en procesos complejos, pueden mejorar significativamente la calidad y la comprensión del diseño.