Informática

UML: diagramas de sequência, atividades e estados, quando usar

Entre os diagramas comportamentais da UML, três respondem a perguntas diferentes: o de sequência mostra quem conversa com quem e em que ordem; o de atividades mostra o fluxo de trabalho; o de máquina de estados mostra como um objeto muda de situação ao longo da vida. Questões de prova pedem para escolher o diagrama certo ou identificar um elemento. A parte estrutural está em UML: classes e casos de uso.

O cenário do exemplo

Um sistema fictício de protocolo de documentos: o cidadão envia um documento, o sistema registra, o servidor analisa e o documento é arquivado ou devolvido. Cada diagrama enxerga esse mesmo cenário por um ângulo.

Diagrama de sequência

Mostra a interação entre participantes ao longo do tempo, com o tempo correndo de cima para baixo.

Elementos:

  • Linha de vida (lifeline): linha vertical tracejada abaixo de cada participante (objeto, ator ou sistema).
  • Mensagem: seta horizontal entre linhas de vida. Seta com ponta cheia indica chamada síncrona (quem chama espera a resposta); ponta aberta indica chamada assíncrona; seta tracejada indica retorno.
  • Barra de ativação: retângulo estreito sobre a linha de vida, mostrando quando o participante está executando.
  • Fragmentos combinados: caixas que modelam estruturas de controle: alt (alternativas, como um se-senão), opt (opcional), loop (repetição) e par (paralelo).

Leitura do exemplo, em texto:

  1. O Cidadão envia o documento ao Sistema.
  2. O Sistema grava o protocolo e devolve o número ao Cidadão.
  3. O Sistema notifica o Servidor.
  4. Fragmento alt: se o documento estiver completo, o Servidor o arquiva; senão, o Servidor o devolve ao Cidadão.

O diagrama de sequência é o preferido para detalhar um cenário de um caso de uso e a ordem exata das mensagens. É bom para ver chamadas entre objetos, mas fica pesado quando há muitas ramificações.

Primo próximo: o diagrama de comunicação mostra as mesmas interações, mas dá ênfase à organização dos participantes e numera as mensagens, em vez de usar o eixo do tempo.

Diagrama de atividades

Descreve um fluxo de ações, parecido com um fluxograma, com recursos para paralelismo. É usado para modelar processos de negócio e a lógica de um caso de uso.

Elementos:

Elemento Símbolo Função
Nó inicial círculo preto começo do fluxo
Ação / atividade retângulo de cantos arredondados passo executado
Decisão losango com saídas e condições escolhe um caminho
Junção (merge) losango que reúne caminhos reencontro dos caminhos alternativos
Bifurcação (fork) barra grossa com várias saídas inicia fluxos paralelos
União (join) barra grossa com várias entradas espera todos os fluxos paralelos
Nó final de atividade círculo preto dentro de círculo fim de todo o fluxo
Raia (swimlane) faixa vertical ou horizontal indica quem é responsável por cada ação

Exemplo: partição em raias Cidadão, Sistema e Servidor. O fluxo parte do nó inicial, passa por “Enviar documento”, “Registrar protocolo” e uma bifurcação em duas ações paralelas, “Notificar servidor” e “Enviar comprovante”, unidas por um join; segue para “Analisar documento”, uma decisão “documento completo?” e dois ramos, “Arquivar” e “Devolver”.

Pergunta clássica: qual a diferença entre decisão e bifurcação? A decisão escolhe um entre vários caminhos; a bifurcação ativa todos os caminhos ao mesmo tempo. Outra: o diagrama de atividades mostra o fluxo de controle entre ações; ele não destaca a troca de mensagens entre objetos como o de sequência.

Diagrama de máquina de estados

Também chamado de diagrama de estados, descreve os estados pelos quais um objeto passa em resposta a eventos. É a ferramenta certa quando o comportamento depende da situação atual do objeto.

Elementos:

  • Estado inicial (círculo preto) e estado final (círculo com borda dupla).
  • Estado: retângulo arredondado (Recebido, Em análise, Arquivado, Devolvido).
  • Transição: seta entre estados, rotulada como evento [guarda] / ação: o evento que dispara, a condição de guarda entre colchetes e a ação executada.
  • Estados compostos (com subestados) e histórico, em modelagens maiores.

Exemplo, o ciclo de vida do documento no protocolo:

De Evento [guarda] Para
(início) enviar Recebido
Recebido iniciar análise Em análise
Em análise concluir [completo] Arquivado
Em análise concluir [incompleto] Devolvido
Devolvido reenviar Recebido
Arquivado (nenhum) (fim)

Aqui a máquina de estados deixa claro que um documento devolvido pode voltar a ser recebido, e que um documento arquivado não retorna. Isso seria difícil de ver em um diagrama de sequência.

Como escolher o diagrama

Pergunta Diagrama
Em que ordem os objetos trocam mensagens neste cenário? sequência
Quais os passos, as decisões e o paralelismo de um processo? atividades
Como a situação de um objeto muda ao longo do tempo? máquina de estados
Quem usa o sistema e o que ele oferece? casos de uso
Que classes existem e como se relacionam? classes

Dica de leitura: se a pergunta fala em “tempo” e “mensagens”, pense em sequência; “fluxo de trabalho”, em atividades; “estados” e “eventos”, em máquina de estados.

Erros comuns

  • Classificar sequência como diagrama estrutural: ela é comportamental (de interação).
  • Dizer que o diagrama de atividades mostra os objetos trocando mensagens ao longo do tempo.
  • Confundir bifurcação (fork) com decisão.
  • Esquecer o estado final: nem todo objeto tem um (alguns ciclos de vida são contínuos).
  • Achar que o diagrama de estados descreve o sistema todo: ele descreve um objeto ou uma classe.
  • Misturar include e extend de casos de uso com mensagens de sequência.

Fontes e atualização

Não há norma oficial brasileira sobre a UML; o conteúdo segue a especificação padronizada da notação e a literatura de engenharia de software. O guia trata de notação e não envolve cálculo nem código executável. Nomes de elementos variam entre traduções: confira o vocabulário do edital.

Próximos passos

Leia também

Para continuar no site

Viu algo errado, desatualizado ou confuso? Relatar erro nesta página