Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

⚙️ Requisitos Funcionais

Os Requisitos Funcionais (RF) definem detalhadamente os serviços. No mundo lógico de um Backend, um Requisito Funcional é efetivamente a descrição de uma Entrada (JSON de Request), uma Lógica (Service/Use Case), e uma Saída (JSON de Response) além da definição de suas possíveis exceções (@ExceptionHandler).


🏗️ Riscos da Ambiguidade no Código

Requisitos ambíguos são letais: "Calcular o Frete" é ambíguo. Se o desenvolvedor não souber se o cálculo usa Sedex ou a Tabela particular, ele vai chutar a regra de negócio e gerar custos astronômicos de retrabalho meses depois.

💎 Completeza e Consistência (Sommerville, 2011)

Idealmente, a especificação funcional de qualquer Endpoint deve buscar dois estados fundamentais:

PilaresDescrição / Objetivo
✅ CompletaTodas as variáveis requeridas e exceções (ex: "E se o CPF já existir?") estão devidamente definidas no documento do projeto.
🛡️ ConsistenteNão há lógicas contraditórias ("A rota X diz que a idade mínima é 18, mas a rota Y aceita 16").

[!IMPORTANT] 💡 O Desafio Real: Em sistemas monolíticos complexos, atingir consistência total é uma tarefa árdua. Na nuvem, Arquiteturas Baseadas em Microserviços tentam quebrar esse grande problema em escopos menores (Bounded Contexts) para isolar a consistência.