📋 Especificação de Software
A especificação de software, frequentemente referida corporativamente como Engenharia de Requisitos, é a fase que define as funcionalidades requeridas e as restrições operativas do sistema. É uma atividade crítica: na arquitetura moderna, definir os dados que sua API REST receberá e como ela autenticará o usuário é feito aqui.
📊 As Quatro Fases da Especificação (Sommerville, 2011)
| Fase | Descrição / Objetivo Prático |
|---|---|
| Estudo de Viabilidade | Avalia se as necessidades podem ser atendidas. Ex: "Temos tempo/dinheiro para migrar esse legado para Spring Boot em 6 meses?" |
| Levantamento (Discovery) | Coleta de necessidades via reuniões com executivos e cliente. (O que o sistema precisa fazer de verdade?). |
| Especificação Formais | Tradução da coleta em documentos ou User Stories (Jira/Trello). O Desenvolvedor Backend lê isso para saber quais Endpoints criar. |
| Validação | Reunião para verificar com o cliente: "É exatamente esse fluxo de JSON que você precisa para o seu negócio funcionar?". |
graph LR
V[Viabilidade] --> L[Levantamento Ágil]
L --> E[Backlog / User Stories]
E --> VAL[Revisão Diária]
VAL -->|Feedback| L
style VAL fill:#d4edda,stroke:#28a745
[!CAUTION] 💡 Dica de Performance (O que mais dá erro): Estas atividades não são lineares; novos requisitos frequentemente surgem. A maior causa de falha em sistemas Java Enterprise não é "código lento", e sim o programador codificar perfeitamente uma "feature que o cliente nunca pediu", devido a uma falha na documentação de Especificação.