🚀 Capítulo 12: Prática de Diagrama de Sequência (Tema: Sonic)
NOTE
Este capítulo utiliza a temática de Sonic para praticar diagramas de sequência. Sonic precisa ser rápido, e as mensagens entre os objetos do jogo também!
1. 🎯 Objetivo da Aula
Praticar a criação de Diagramas de Sequência em cenários com tomada de decisão (condicionais) usando o Draw.io.
2. 🏢 O Cenário Prático (Seu Desafio)
Você está programando a colisão do Sonic com um Badnik (robô do Dr. Robotnik). O fluxo é o seguinte:
- O
Jogadoraperta o botão de pulo. - O objeto
Sonicexecuta a açãopular(). - O objeto
Sonicenvia uma mensagem para oBadnikperguntandoverificarColisao(). - Se houver colisão por cima: O
Badnikrespondedestruido(). - Se houver colisão lateral: O
Sonicexecuta a açãoperderAneis().
Seu desafio é modelar esse fluxo no Draw.io usando os blocos de decisão!
3. 🧠 Fundamentos: A Teoria Traduzida
Para representar condições (como o nosso Se do cenário), a UML usa Fragmentos Combinados. No Draw.io, usamos um retângulo maior que envolve as mensagens com o rótulo:
- ALT (Alternative): Equivale ao
if / else. Mostra caminhos que se excluem mutuamente. - OPT (Optional): Equivale ao
ifsem else. Algo que pode ou não acontecer.
4. 📖 Exemplo Guiado: Usando o ALT no Draw.io
- Desenhe as linhas de vida:
Jogador,SoniceBadnik. - Trace as mensagens de pulo e colisão.
- Arraste o elemento de Frame (ou retângulo) da categoria UML chamado
alt. - Divida o retângulo ao meio com uma linha tracejada (duas condições).
- Na parte de cima, escreva a condição
[Colisão por cima]e coloque a mensagem de destruição. - Na parte de baixo, escreva
[Colisão lateral]e coloque a mensagem de perder anéis.
5. 🛠️ Prática Obrigatória 1: Sonic vs Badnik
Siga as instruções do cenário prático e crie o diagrama de sequência completo no Draw.io.
- Use o fragmento
ALTpara as duas situações de colisão. - Exporte o diagrama como imagem.
6. 🛠️ Prática Obrigatória 2: Mensagens de Resposta
Por que as mensagens de resposta (como o Badnik dizendo que foi destruído) devem ser desenhadas com linhas tracejadas e não linhas contínuas?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 12 UML) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
extra_guia_de_modelagem_uml/
├── capitulos/
│ ├── capitulo_12_pratica_seq.md
│ └── codigos/
│ └── cap12/
│ └── sequencia_sonic.png9. 💡 Checkpoint de Lógica
Se o Sonic coletar uma esmeralda do caos e ficar invencível, esse “estado” de invencibilidade mudaria a forma como o diagrama de sequência reage à colisão lateral? Como poderíamos representar isso?
10. 🔥 Desafio de Fixação
Pesquise o que significa o fragmento LOOP no Diagrama de Sequência e dê um exemplo baseado no jogo do Sonic.
11. 🔑 Gabarito de Código/Fórmulas
Resposta da Prática 2: As linhas tracejadas servem para diferenciar visualmente uma resposta (retorno de informação) de uma nova chamada de método (linha contínua). Isso evita confusão sobre quem está iniciando a ação.