🏁 Considerações Finais: Unidade I
Nesta primeira unidade, apresentamos conceitos fundamentais da Engenharia de Software. Vimos como a disciplina busca trazer rigor e previsibilidade ao desenvolvimento, migrando de escopos caóticos para a implantação automatizada (DevOps) de APIs corporativas.
📊 Resumo da Unidade
graph LR
A[Engenharia e Arquitetura] --> B[Processos Ágeis]
B --> C[Modelos de Ciclo de Vida]
C --> D[Tradicional x XP/Scrum]
D --> E[Entrega de Valor Contínua CI/CD]
style E fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
Estudamos que um processo de software é um conjunto de atividades estruturadas (Especificação/Jira, Projeto/Arquitetura, Implementação/Java, Validação/JUnit e Evolução/AWS) que leva à produção de um sistema funcional. A escolha da abordagem correta depende do dinamismo e da criticidade do seu projeto.
📗 Desafios de Revisão (Contexto Backend)
-
Diferenciação Prática (Hardware e Software): Segundo Pressman (2011), é correto afirmar que o software:
- a) Sofre falhas mecânicas como qualquer cluster de servidores.
- b) Não é fabricado (estampado) no sentido clássico, mas sim projetado intelectualmente (Arquitetado).
- c) Não usa bibliotecas prontas do Maven.
- d) É atrelado a camada física do SO.
-
Validação vs Verificação: Qual a diferença técnica?
- a) Nenhuma, são ferramentas do Jenkins.
- b) Validação foca no cliente (Aceitação). Verificação foca no código (Regras do compilador Java, Testes Unitários).
- c) Ambas ocorrem exclusivamente na esteira de Deploy.
[!TIP] 💡 Dica Arquitetural: Tente aplicar todo conceito teórico que você leu aqui no código. Quando escutar "Engenharia orientada a Reuso", não pense num cenário abstrato, pense em "Por que eu criaria um sistema de login na mão, se eu posso injetar o
@EnableWebSecuritydo ecossistema do Spring?". A teoria sem a prática codificada é o seu maior inimigo.