🚀 Capítulo 02: Ciclo de Vida do Software (SDLC) (Tema: SimCity)
NOTE
Este capítulo utiliza a temática de SimCity para explicar o Ciclo de Vida do Software. Ser o prefeito de uma cidade digital exige planejamento por etapas; construir um software também!
1. 🎯 Objetivo da Aula
Compreender as fases fundamentais do SDLC (Software Development Life Cycle - Ciclo de Vida do Desenvolvimento de Software), entendendo o que acontece em cada etapa, desde a ideia inicial até a manutenção do sistema.
2. 🏢 O Cenário Prático (Seu Desafio)
No jogo SimCity, você assume o papel de prefeito de uma nova cidade. Você tem um terreno vazio e algum dinheiro. Se você simplesmente começar a colocar prédios residenciais em qualquer lugar, sua cidade vai falir. Existe uma ordem lógica para as coisas funcionarem:
- Você pesquisa o que os cidadãos precisam (Requisitos).
- Você planeja onde ficarão as zonas e as ruas no mapa (Design/Arquitetura).
- Você constrói as usinas e encanamentos (Implementação).
- Você liga a chave e vê se a energia chega nas casas sem explodir nada (Testes).
- Você permite que os moradores se mudem para lá (Lançamento/Deploy).
- Você conserta os canos que quebram com o tempo (Manutenção).
No desenvolvimento de software, nós seguimos essa exata mesma sequência! Esse ciclo de vida garante que o software seja construído com qualidade. Seu desafio é ser o prefeito do seu projeto!
🧠 Fundamentos: A Teoria Traduzida
O SDLC é o processo usado pela indústria de software para projetar, desenvolver e testar softwares de alta qualidade.
🔄 As 6 Fases do SDLC:
- Levantamento de Requisitos (📋):
- O momento de conversar com o cliente para entender o que o sistema precisa fazer. Ex: “O sistema precisa ter um botão de carrinho de compras”.
- Design e Arquitetura (📐):
- Os engenheiros desenham como o sistema será por dentro: qual banco de dados usar, como as telas vão se comunicar. É a planta do prédio.
- Implementação ou Codificação (💻):
- A hora de colocar a mão na massa! Os programadores escrevem o código real nas linguagens escolhidas (C++, Python, etc.).
- Testes / QA (🧪):
- O software pronto é testado para encontrar erros (bugs). Testamos se ele calcula certo, se é seguro e se não quebra com muitos acessos.
- Implantação / Deploy (🚀):
- O software é colocado no servidor real para que os clientes possam usar. O jogo vai para a loja, o site vai para o ar.
- Manutenção (🛠️):
- O software nunca está realmente “terminado”. Ele precisa de atualizações para corrigir erros novos e adicionar funções que o cliente pedir depois.
4. 📖 Exemplo Guiado: O Custo de Pular Etapas
O que acontece se um prefeito de SimCity construir as casas mas esquecer de colocar a usina de energia? Os moradores vão embora bravos! No software:
- Se você pular a fase de Requisitos e começar a programar direto, você corre o risco de construir um sistema lindo que o cliente não queria e não vai usar.
- Se você pular a fase de Testes, os clientes vão encontrar os erros e falar mal do seu produto na internet!
5. 🛠️ Prática Obrigatória 1: Em qual fase estamos?
Identifique a qual fase do SDLC pertence cada atividade abaixo:
- O programador está escrevendo uma função em JavaScript para validar o CPF do usuário.
- O analista está conversando com o dono da loja para saber quantas vendas ele faz por dia.
- O testador está tentando digitar letras em um campo que só deveria aceitar números para ver se o sistema trava.
6. 🛠️ Prática Obrigatória 2: O Software que nunca morre
Por que a fase de Manutenção costuma ser a mais longa e a mais cara de todo o ciclo de vida de um software de grande porte (como o sistema de um banco)?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 02 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_02_sdlc.md
│ └── codigos/
│ └── cap02/
│ └── fases_projeto.txt💡 Checkpoint de Lógica
Antigamente, as empresas seguiam esse ciclo de forma rígida (Modelo Cascata). Hoje em dia, nós rodamos esse ciclo inteiro várias vezes em pequenos pedaços de software (Metodologias Ágeis), como veremos no próximo capítulo!
10. 🔥 Desafio de Fixação
Pesquise o que significa a sigla QA (muito usada para se referir à equipe de testes).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Implementação / Codificação (Escrevendo código).
- Levantamento de Requisitos (Entendendo a necessidade do cliente).
- Testes / QA (Procurando falhas intencionalmente). Gabarito da Prática 2:
- Porque um software de sucesso dura anos ou décadas. Durante todo esse tempo, as leis mudam, novas tecnologias surgem e os clientes querem novas funções. Manter o software rodando e atualizado por 10 anos custa muito mais do que os 6 meses que levou para construí-lo!