Diagramas de Sequência

Os diagramas de sequência visualizam como os objetos interagem ao longo do tempo. Eles mostram a ordem das mensagens trocadas entre participantes para realizar uma tarefa ou cenário específico.

Conceitos Fundamentais

Participantes

Os participantes representam os objetos ou atores envolvidos na interação. Cada participante tem uma linha de vida — uma linha tracejada vertical que se estende para baixo e representa o tempo.

Mensagens

As mensagens são as comunicações entre participantes, mostradas como setas horizontais entre linhas de vida. O tempo flui de cima para baixo.

Caixas de Ativação

As caixas de ativação (também chamadas de especificações de execução) são retângulos finos em uma linha de vida que mostram quando um participante está processando ativamente.

Criando Participantes

Usando a Ferramenta Participante

Em uma página de Diagrama de Sequência UML, pressione P ou escolha Participante no menu UML da barra de ferramentas, depois clique na tela para posicionar participantes. Novos participantes se alinham com os existentes. Pressione Return com um participante selecionado para renomeá-lo.

Tipos de Participante

Os participantes podem representar diferentes tipos de entidades:

  • Participante — uma parte genérica de objeto ou sistema (retângulo)
  • Ator — um usuário ou sistema externo (boneco de palito)
  • Fronteira — fronteira de UI ou de sistema
  • Controle — lógica de processo ou controlador
  • Entidade — objeto de dados ou de domínio
  • Banco de dados — um armazenamento de dados

Defina o Tipo de papel na seção UML da aba Organizar do Inspetor.

Criando Mensagens

Usando a Ferramenta Mensagem

Pressione M para ativar a ferramenta Mensagem e depois:

  1. Clique na linha de vida do participante de origem
  2. Arraste até a linha de vida do participante de destino
  3. Solte para criar a mensagem

Tipos de Mensagem

TipoEstilo de SetaDescrição
SíncronaLinha sólida, seta preenchidaO remetente aguarda a resposta
AssíncronaLinha sólida, seta abertaO remetente continua sem esperar
RetornoLinha tracejada, seta abertaResposta a uma chamada síncrona
CriaçãoLinha tracejada, seta aberta para caixaCria um novo participante
DestruiçãoLinha terminando em XEncerra um participante
AutochamadaSeta em loop de volta para a mesma linha de vidaUm participante chama a si mesmo

Defina o Tipo de mensagem da mensagem selecionada na seção UML do Inspetor.

Rótulos de Mensagem

Selecione uma mensagem e edite seu Rótulo na seção UML do Inspetor. Formatos comuns:

  • nomeDoMetodo() — chamada de método simples
  • nomeDoMetodo(param1, param2) — chamada com parâmetros
  • resultado := nomeDoMetodo() — chamada com atribuição de retorno
  • [condição] nomeDoMetodo() — mensagem condicional (guarda)

Caixas de Ativação

As caixas de ativação mostram o período durante o qual um participante está em execução ou aguardando uma resposta.

Adicionando Caixas de Ativação

  1. Escolha Ativação no menu UML da barra de ferramentas
  2. Arraste ao longo da linha de vida de um participante sobre o intervalo em que ele está ativo
  3. A caixa de ativação é posicionada nessa linha de vida

Ativações Aninhadas

Quando um participante chama a si mesmo (chamada recursiva) ou lida com múltiplas chamadas aninhadas, as caixas de ativação podem ser empilhadas.

Fragmentos

Os fragmentos agrupam mensagens para mostrar lógica condicional, laços ou outro fluxo de controle.

Tipos de Fragmento

TipoPalavra-chavePropósito
AlternativaaltRamificação if-else
OpçãooptExecução opcional (if sem else)
LaçoloopExecução repetida
InterrupçãobreakSai do laço envolvente
ParaleloparExecução concorrente
CríticocriticalSeção atômica/crítica
NegativonegInteração inválida
AsserçãoassertInteração obrigatória
IgnorarignoreMensagens que podem ser ignoradas
ConsiderarconsiderMensagens que devem ser consideradas
ReferênciarefReferência a outra interação

Criando Fragmentos

  1. Escolha Fragmento no menu UML da barra de ferramentas
  2. Arraste um retângulo sobre os participantes e mensagens que deseja agrupar
  3. Selecione o fragmento e defina seu Tipo de fragmento na seção UML do Inspetor
  4. Digite uma Condição de guarda conforme necessário

Guardas de Fragmento

As guardas são condições mostradas entre colchetes:

  • [x > 0] — condição numérica
  • [user.isAdmin] — verificação de propriedade
  • [else] — ramificação padrão/else em fragmentos alt

Reordenando Elementos

Movendo Participantes

Arraste os participantes horizontalmente para reordená-los. As mensagens conectadas os acompanham.

Movendo Mensagens

Selecione uma mensagem e pressione Cmd+↑ ou Cmd+↓ para movê-la mais cedo ou mais tarde na sequência.

Boas Práticas

  1. Comece com o fluxo principal — modele o caminho ideal primeiro e depois adicione alternativas
  2. Mantenha legível — limite a 5-7 participantes por diagrama
  3. Use nomes significativos — rotule as mensagens com nomes de métodos ou descrições reais
  4. Mostre mensagens de retorno — especialmente para chamadas síncronas em que o valor de retorno importa
  5. Use fragmentos com moderação — fragmentos aninhados demais reduzem a legibilidade
  6. Adicione notas — use notas adesivas para explicar lógica complexa

Exemplo: Fluxo de Login de Usuário

Uma sequência de login típica pode incluir:

  1. O usuário insere as credenciais
  2. O cliente envia uma solicitação de login ao servidor
  3. O servidor valida com o banco de dados
  4. O banco de dados retorna o registro do usuário
  5. O servidor cria uma sessão
  6. O servidor retorna sucesso/falha ao cliente
  7. O cliente atualiza a interface

Este fluxo demonstra chamadas síncronas, mensagens de retorno e possíveis fragmentos alt para caminhos de sucesso/falha.