⚙️ CAPÍTULO 03: AS ATIVIDADES DO PROCESSO
Para que um software seja produzido e mantido em escala corporativa, são necessárias diversas etapas coordenadas chamadas de Processo de Software. Independente do modelo escolhido (Ágil ou Tradicional), as engrenagens fundamentais permanecem as mesmas. 🛡️🧩
🎯 Objetivo do Capítulo
Dominar as quatro atividades universais da engenharia de software, compreendendo como cada uma se traduz em tarefas técnicas e ferramentas no dia a dia de um desenvolvedor moderno.
🏢 O Cenário Corporativo (TecProExpress)
Na TecProExpress, um novo projeto de Rastreamento de Carga em Tempo Real foi aprovado. Antes de começar a codificar, a diretoria exige saber como o time vai garantir que o sistema não quebre após cada atualização.
"Seu papel é estruturar o ciclo de vida deste projeto, garantindo que as etapas de Especificação, Implementação, Validação e Evolução estejam conectadas através de uma esteira automatizada de CI/CD."
🧠 As Quatro Atividades Fundamentais
Segundo Sommerville (2011), todo processo de software de sucesso roda estas 4 engrenagens essenciais:
| Atividade | Descrição Corporativa e Tecnológica |
|---|---|
| Especificação | O cliente define o que o sistema faz. Criamos a lista de Requisitos Funcionais e Não-Funcionais. |
| Projeto e Implementação | O software ganha vida. Planejamento de Entities, Interfaces REST e codificação pura em Java. |
| Validação | Garantia de que o sistema funciona e não tem bugs. Uso de JUnit 5, Mockito e Testes de Integração. |
| Evolução | Adição de novas funcionalidades e correções, mantendo o sistema vivo e atualizado na Nuvem. |
📊 Visualizando a Interação
flowchart LR
A["📋 Especificação"] --> B["📐 Projeto & Implementação"]
B --> C["🧪 Validação"]
C --> D["🚀 Evolução"]
D --> A
🔍 Detalhamento das Atividades
1. Especificação (Requisitos)
É o "Contrato" do que será construído. Na TecProExpress, uma falha aqui pode custar milhões. Se o requisito diz "A API deve suportar 10.000 requests/s", o arquiteto precisa planejar a infraestrutura para isso.
2. Projeto e Implementação
Aqui definimos as camadas do sistema (Controller, Service, Repository). O foco é transformar a lógica de negócio em código limpo (Clean Code) e escalável.
3. Validação (Testes)
Não basta o código rodar na máquina do desenvolvedor. Ele precisa passar por testes automatizados que provam que o sistema é resiliente.
[!TIP] Dica Sênior: Nunca envie um Pull Request sem testes unitários. Na TecProExpress, a Validação automatizada é o que impede que um erro de estagiário derrube o faturamento da empresa. 🛡️
4. Evolução (Manutenção)
O software nunca está "pronto". Ele está sempre em evolução para atender novas leis, novas tecnologias ou novas necessidades do mercado.
🚀 Rumo à Agilidade
Embora as atividades sejam as mesmas, a forma como as executamos muda. No modelo Ágil, essas atividades acontecem em ciclos muito curtos (Sprints), permitindo correções de rota rápidas.
graph LR
A["Caos Ad-hoc"] -->|Engenharia| B["Modelos Estruturados"]
B --> C["Esteira de CI/CD Automatizada"]
C --> D["Entrega Contínua de Valor"]
💡 Checkpoint de Lógica
[!IMPORTANT] Reflexão Profissional: Se você pular a etapa de Validação para entregar o código mais rápido para o cliente, o que acontecerá na etapa de Evolução daqui a 6 meses? (Resposta: A Evolução será lenta e perigosa, pois cada mudança nova poderá quebrar partes do sistema que você não testou antes). 🧠🛡️