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:
- Clique na linha de vida do participante de origem
- Arraste até a linha de vida do participante de destino
- Solte para criar a mensagem
Tipos de Mensagem
| Tipo | Estilo de Seta | Descrição |
|---|---|---|
| Síncrona | Linha sólida, seta preenchida | O remetente aguarda a resposta |
| Assíncrona | Linha sólida, seta aberta | O remetente continua sem esperar |
| Retorno | Linha tracejada, seta aberta | Resposta a uma chamada síncrona |
| Criação | Linha tracejada, seta aberta para caixa | Cria um novo participante |
| Destruição | Linha terminando em X | Encerra um participante |
| Autochamada | Seta em loop de volta para a mesma linha de vida | Um 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 simplesnomeDoMetodo(param1, param2)— chamada com parâmetrosresultado := 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
- Escolha Ativação no menu UML da barra de ferramentas
- Arraste ao longo da linha de vida de um participante sobre o intervalo em que ele está ativo
- 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
| Tipo | Palavra-chave | Propósito |
|---|---|---|
| Alternativa | alt | Ramificação if-else |
| Opção | opt | Execução opcional (if sem else) |
| Laço | loop | Execução repetida |
| Interrupção | break | Sai do laço envolvente |
| Paralelo | par | Execução concorrente |
| Crítico | critical | Seção atômica/crítica |
| Negativo | neg | Interação inválida |
| Asserção | assert | Interação obrigatória |
| Ignorar | ignore | Mensagens que podem ser ignoradas |
| Considerar | consider | Mensagens que devem ser consideradas |
| Referência | ref | Referência a outra interação |
Criando Fragmentos
- Escolha Fragmento no menu UML da barra de ferramentas
- Arraste um retângulo sobre os participantes e mensagens que deseja agrupar
- Selecione o fragmento e defina seu Tipo de fragmento na seção UML do Inspetor
- 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
- Comece com o fluxo principal — modele o caminho ideal primeiro e depois adicione alternativas
- Mantenha legível — limite a 5-7 participantes por diagrama
- Use nomes significativos — rotule as mensagens com nomes de métodos ou descrições reais
- Mostre mensagens de retorno — especialmente para chamadas síncronas em que o valor de retorno importa
- Use fragmentos com moderação — fragmentos aninhados demais reduzem a legibilidade
- 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:
- O usuário insere as credenciais
- O cliente envia uma solicitação de login ao servidor
- O servidor valida com o banco de dados
- O banco de dados retorna o registro do usuário
- O servidor cria uma sessão
- O servidor retorna sucesso/falha ao cliente
- O cliente atualiza a interface
Este fluxo demonstra chamadas síncronas, mensagens de retorno e possíveis fragmentos alt para caminhos de sucesso/falha.