Seu navegador não oferece leitura em voz alta. Você pode ler o guia normalmente.
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) epar(paralelo).
Leitura do exemplo, em texto:
- O Cidadão envia o documento ao Sistema.
- O Sistema grava o protocolo e devolve o número ao Cidadão.
- O Sistema notifica o Servidor.
- 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
includeeextendde 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
- Complete com UML: diagrama de classes e casos de uso.
- Veja a visão de processos em ciclos de vida de software e métodos ágeis.
- Relacione requisitos e testes em engenharia de software: requisitos e testes.