Exercícios: Aula 11 - Diagrama de Estados 📝
Entenda as mudanças de comportamento de um objeto conforme o tempo passa.
1. O que é um Estado? (Básico 1)
Contexto: Nem tudo no sistema precisa de um diagrama de estados, apenas objetos com ciclos de vida complexos.
Pergunta: Defina o conceito de Estado para um objeto e dê um exemplo de três estados de um "Pedido de Venda".
2. Causas de Mudança (Básico 2)
Contexto: Objetos não mudam de estado sozinhos; algo deve acontecer.
Pergunta: Qual a diferença entre uma Transição e um Evento?
3. Condições de Guarda (Intermediário 1)
Contexto: Às vezes a transição só pode ocorrer se uma regra for atendida.
Pergunta: O que é uma Guard Condition e como ela é representada visualmente na UML?
4. Pseudo-estados (Intermediário 2)
Contexto: Existem símbolos que não são estados reais, mas ajudam na lógica.
Pergunta: Identifique o símbolo de Início, Fim e do Histórico no Diagrama de Estados. Para que serve o histórico?
5. Desafio: Modelando o Ciclo de Vida (Desafio)
Contexto: Um sensor de temperatura está em estado "Inativo". Ao ser ligado (liga()), ele entra em "Monitorando". Se a temperatura atingir 100ºC, ele passa para "Alerta". Se for desligado (desliga()), volta para "Inativo" a partir de qualquer estado.
Pergunta: Desenhe esse diagrama de estados simplificado, identificando onde as condições de guarda seriam necessárias.
---
📚 Gabarito e Soluções Comentadas
Gabarito Explicado
Respostas e explicações para os exercícios da **Aula 11**. --- ### ✅ 1. O que é um Estado? (Básico) **Resposta Sugerida:** Um **Estado** é uma condição ou situação na vida de um objeto durante a qual ele satisfaz alguma condição ou aguarda algum evento. --- ### ✅ 2. Transição e Evento (Básico) **Resposta Sugerida:** Uma **Transição** é a mudança de um estado para outro. Ela é disparada por um **Evento** (algo que acontece, como clicar em um botão ou atingir um tempo limite). --- ### ✅ 3. Guards / Condições (Intermediário) **Explicação:** Uma **Guard Condition** é um teste booleano colocado entre colchetes `[condição]`. A transição só ocorre se o evento disparar E a guard for verdadeira (ex: `sacar() [saldo > valor]`). --- ### ✅ 4. Pseudo-estados (Intermediário) **Conceitos:** * **Início (Círculo Cheio):** Onde a vida do objeto começa. * **Fim (Alvo):** Onde o ciclo de vida se encerra. * **Histórico (H):** Lembra o último estado antes de uma interrupção. --- ### ✅ 5. Desafio: Lâmpada Inteligente (Desafio) **Resolução Sugerida:**stateDiagram-v2
[*] --> Desligada
Desligada --> Ligada : ligar()
Ligada --> Desligada : desligar()
Ligada --> Queimada : [uso > 1000h]
Desligada --> Queimada : [tempo > 5 anos]
Queimada --> [*] : descartar() ---