🚀 Capítulo 19: Projeto Final Parte 1: Planejamento (Tema: Game of Thrones)
NOTE
Este capítulo inicia o projeto final do curso de Engenharia de Software. Você vai planejar a conquista do Trono de Ferro através de um projeto de software estruturado!
1. 🎯 Objetivo da Aula
Aplicar os conceitos aprendidos (Requisitos, Arquitetura, Metodologias) para criar o documento de Planejamento de um sistema de software completo.
2. 🏢 O Cenário Prático (Seu Desafio)
Na série Game of Thrones, as grandes famílias lutam pelo controle de Westeros. Para conquistar o Trono de Ferro, não basta ter o maior exército; é preciso ter estratégia, inteligência, mapas e um plano de ataque perfeito.
Você foi contratado pela família que está no poder para criar o Sistema de Gestão de Castelos de Westeros. O sistema servirá para:
- Controlar quantos soldados há em cada castelo.
- Calcular a quantidade de comida necessária para o inverno.
- Enviar mensagens secretas (corvos digitais) entre os aliados.
Seu desafio neste capítulo não é programar, mas ser o Grande Meistre estrategista e fazer o Planejamento do projeto!
🧠 Fundamentos: A Teoria Traduzida
Como bons engenheiros de software, vamos estruturar o nosso plano de conquista em 3 passos:
📋 Passo 1: Os Requisitos
Precisamos definir o que o sistema vai fazer:
- Requisitos Funcionais (Ações):
- O sistema deve permitir cadastrar novos castelos e o nome do Lorde responsável.
- O sistema deve alertar quando o estoque de comida de um castelo estiver abaixo de .
- Requisitos Não-Funcionais (Qualidades):
- As mensagens trocadas entre os aliados devem ser criptografadas para que os espiões não leiam.
- O sistema deve continuar funcionando mesmo que castelos sejam destruídos (Alta disponibilidade).
📐 Passo 2: A Arquitetura
Como os castelos são espalhados e a comunicação é difícil, vamos usar uma arquitetura de Microsserviços! Cada castelo terá seu pequeno sistema local, e eles enviarão dados resumidos para a central em Porto Real. Assim, se Porto Real cair, os outros castelos continuam funcionando!
4. 📖 Exemplo Guiado: O Quadro do Projeto
Vamos usar o Kanban para planejar a nossa primeira Sprint (ciclo de 2 semanas) de ataque:
- A Fazer: Criar tela de cadastro de soldados; Configurar banco de dados de alimentos.
- Fazendo: Criptografia das mensagens dos corvos.
- Feito: Mapeamento dos castelos no sistema.
5. 🛠️ Prática Obrigatória: Completando o Plano
Para garantir a vitória, precisamos detalhar mais o nosso plano. Preencha os campos abaixo baseando-se no cenário do projeto:
- Escreva mais um Requisito Funcional (O que o sistema faz) que seria útil para esse sistema de guerra.
- Escreva mais um Requisito Não-Funcional (Como o sistema deve ser) focado no desempenho ou na segurança do sistema.
- Qual papel do Scrum você daria para o Lorde da família (o cliente que está pagando pelo sistema e dizendo o que ele quer)? (Product Owner, Scrum Master ou Time de Desenvolvimento).
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 19 EngSoftware) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
extra_engenharia_de_software/
├── capitulos/
│ ├── capitulo_19_projeto_p1.md
│ └── codigos/
│ └── cap19/
│ └── plano_ataque.txt💡 Checkpoint de Lógica
O planejamento é a parte mais importante da Engenharia de Software. Como dizia Abraham Lincoln: “Se eu tivesse 6 horas para derrubar uma árvore, passaria as primeiras 4 afiando o machado”.
10. 🔥 Desafio de Fixação
Pesquise o que significa o termo MVP (Minimum Viable Product) e como ele ajuda a validar um projeto rapidamente.
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática Obrigatória (Sugestões):
- Funcional: “O sistema deve emitir um alerta sonoro quando um exército inimigo for avistado a menos de 10km de distância”.
- Não-Funcional: “As mensagens enviadas via corvo digital devem chegar ao destino em no máximo 5 segundos”.
- Product Owner. O Lorde é o dono do negócio, ele sabe o que precisa e dita as prioridades do que deve ser construído!