Modelação Comportamental

Desenvolvimento de Sistemas de Software

By Pedro Pereira30-10-2024

Diagramas de Sequência

1. Introdução aos Diagramas de Sequência

Os diagramas de sequência são uma ferramenta UML usada para modelar interações temporais entre objetos em cenários específicos, como a execução de um caso de uso.

  • Objetivo:
    • Representar a ordem cronológica de mensagens trocadas entre atores e objetos para alcançar um objetivo.
    • Esclarecer responsabilidades e dependências entre as entidades do sistema.
  • Diferenciação:
    • Foco na ordem temporal das mensagens, enquanto outros diagramas de interação podem focar em arquitetura ou temporalidade geral.

2. Elementos Essenciais

  1. Objetos e Linhas de Vida:
    • Objetos: Entidades que interagem no diagrama (e.g., Cliente, Sistema).
    • Linha de Vida: Representa a existência temporal do objeto durante a interação.
  2. Mensagens:
    • Trocadas entre objetos para invocar operações ou transmitir informações.
    • Tipos:
      • Síncronas: O emissor espera a conclusão da mensagem.
      • Assíncronas: O emissor não espera resposta.
      • Retorno: Mensagens que devolvem valores ou resultados.
  3. Ativações:
    • Períodos em que um objeto está a processar uma operação.

3. Fragmentos Combinados

Permitem modelar comportamentos mais complexos, como fluxos alternativos ou paralelos:

  • opt: Representa uma condição opcional. O fluxo ocorre apenas se a guarda for verdadeira.
    • Exemplo: "Registar cliente apenas se este existir."
  • alt: Representa fluxos alternativos mutuamente exclusivos.
    • Exemplo: "Processar pedido com sucesso ou apresentar erro."
  • loop: Repete o fluxo enquanto a condição for verdadeira ou por um número definido de iterações.
  • break: Termina o fluxo de execução se uma condição for satisfeita.
  • ref: Referencia outros diagramas de sequência para modularidade e reutilização.

4. Exemplo - Reservar Armação e Lentes

Modelação de um caso de uso específico onde um funcionário regista a reserva de produtos:

  • Fluxo Normal:
    1. Funcionário fornece dados do cliente (nome/data de nascimento).
    2. Sistema procura e apresenta clientes.
    3. Funcionário seleciona e confirma o cliente.
    4. Sistema exibe produtos disponíveis.
    5. Funcionário escolhe produtos, e o sistema regista a reserva e imprime um talão.
  • Fluxo Alternativo:
    • Se houver apenas um cliente na lista, o sistema salta etapas intermediárias e vai direto à confirmação.
  • Fluxo de Exceção:
    • Se o cliente rejeitar os produtos, o sistema termina o processo.

5. Operadores Adicionais

  • par: Eventos podem ocorrer em paralelo, sem dependência de ordem.
  • seq: Permite que eventos ocorram em paralelo, mas mantém a sequência dentro de cada linha de vida.
  • neg: Define interações inválidas ou que não devem ocorrer.
  • consider: Especifica mensagens que devem ser incluídas, ignorando outras.

6. Boas Práticas na Modelação

  • Distribuição de Responsabilidades:
    • Processamento deve ser delegado aos objetos apropriados, evitando concentrações desnecessárias de lógica.
    • Exemplo de Boa Prática: Métodos como compara(nome, datan) são movidos para a classe Cliente, onde os dados residem.
  • Princípio SLAP (Single Level of Abstraction Principle):
    • Cada método ou fragmento deve operar no mesmo nível de abstração para garantir legibilidade e coesão.
    • Aplicação: Dividir métodos complexos em partes mais simples e coesas.

Apresentação de conteúdos concisos.