🚀 Engenharia de Software

Do Caos ao Contrato: O Documento de Requisitos

(Um Estudo de Vida Real Focado em Arquitetura)

👨‍🏫 Professor: Ricardo Pires
📚 Unidade II


📄 O “Contrato Armado”: O que Documentamos?

Se a Engenharia de Requisitos é a investigação, o Documento de Requisitos de Software (DRS) é a constituição do país. É um acordo oficial, escrito, assinado entre quem paga a conta (Cliente Corporativo) e a trincheira de Programadores (Engenharia de Software).

Qual o poder dele?

  • Delimita violentamente as fronteiras: O que será feito, e muito mais importante: O QUE NÃO SERÁ FEITO na entrega inicial.
  • Mata a síndrome do “Ah, mas eu achei que ia vir com a tela X”.
  • Fornece a base bíblica para que os Testadores (QA) avaliem o software no fim do ano. (Se o teste falhar e não estava no documento, não é um Bug, é uma Feature nova).

📋 Metodologias e Moldes (Não há uma Métrica Única)

O PMBOK e métodos como o RUP exigem catálogos inteiros de requisitos estruturados milimetricamente. O Scrum Ágil prefere um catálogo mais visual (O Backlog do Produto em ferramentas como Jira).

A Regra da Sobrevivência do Arquiteto de Negócios: Seu documento não deve ser um túmulo de letreiros. Ele precisa de 2 focos:

  1. O Cliente leigo precisa ler, sorrir, concordar e pagar o boleto.
  2. O Programador backend introspectivo que não fala com humanos precisa ler, entender as chaves estrangeiras cruas e modelar o banco de dados da semana dele sem ter alucinações.

📖 Radiografia de um DRS Clássico Corporativo

Numa estrutura típica encomendada pelo Governo (onde agilidade crua perde para a burocracia documentada), a arquitetura do DRS abrange as 4 etapas primárias:

SeçãoObjetivo Analítico
Prefácio & VersionamentoControle de quem bateu o martelo! “A Versão 1.5 de ontem cancelou o botão Azul, aprovado pelo Gerente Geral”. (Isso salva processos judiciais!).
Escopo SistêmicoLigação profunda com os objetivos de caixa do negócio. Qual a dor bilionária que este software resolve em 3 frases?
Glossário UniversalDicionário vital da empresa. Se um Engenheiro vai digitalizar uma Bolsa de Valores e não sabe o que é “CDB”, o projeto já nasceu morto.
A Visão do UsuárioNarrativas e mapas de dor desenhados de forma empática contando “um dia na vida” dO gerente tentando fechar a planilha dele.

📖 Radiografia de um DRS Clássico Corporativo (Pt.2)

E a parte que o programador júnior mais gosta, o material base do código:

SeçãoO Alimento do Padrão de Código
Mapeamento de Restrições Arquitetônicas”Iremos usar um Backend Node.JS 20 em cima de Containers Docker gerenciados por Kubernetes Orquestrado.”
Listagem Especificada TécnicamenteUma listagem exaustivamente tipificada ([RF001] ao [RF530]), que definem APIs explícitas de cada tela (Famosa “Especificação”).
Modelagem PretéritaOs desenhos em UML da aula que vem. Diagramas de Banco, Diagramas comportamentais e as Teias de Integração com softwares Velhos.

🗣️ QUIZ VERBAL: A Dor do Aditivo Invisível

Pergunta: Seis meses de trabalho suado… O software foi entregue ao cliente e a equipe respirou. Dois dias se passam, há um desespero! O cliente clama furioso: “Vocês são lunáticos? O botão de imprimir a ficha individual no formato Word .doc não existe em nenhum lugar da tela principal! Eu disse nas reuniões de planejamento que isso era óbvio e essencial para mim.”

Você como líder, olha rapidamente a tabela dos Requisitos Funcionais do Documento Oficial assinado, e lá está registrado apenas PDF. O que você fará ou responderá?


✅ RESPOSTA DO QUIZ

Cobrar Aditivo e classificar como ‘Nova Solução/Feature’ Evolutiva. 💰🛡️

Explicação: O “óbvio” não existe na Engenharia de Requisitos! A assinatura do Documento de Requisitos Final blinda o “Escopo” técnico. Se a impressão nativa complexa para .doc (via uma API pesada da Microsoft) nunca esteve discriminada na matriz que fechou o valor do contrato e das Sprints, ela legalmente “não existe”, portanto não é classificada como BUG para manutenção de código gratuito, mas sim escopo de ampliação futura em novo orçamento!


🎬 ESTUDO TÉCNICO VIVO: Resgatando o Relógio do Tempo

Pense de forma real com a “Locadora de Filmes Fictícia BlockBuster do Bairro Nostalgia”. As anotações (caos da entrevista inicial no caderninho): (A dona fala rápido tentando passar as dores e não as APIs):

🗣️ “Tenho o Sr. João cadastrado! Ele sempre vem e traz os 3 filhos. Na ficha que é de papelão hoje, tem lá nome, telefone fixo ☎️, os dependentes e o parentesco. O moleque dele as vezes retira um filme violento, isso me dá dor de cabeça!”

🗣️ “O filme mesmo tem título e gênero (Comédia). Mas a dor? A dor é que o cliente pega a Fita VHS “Rambo 3” Física ID123, amassa ela no final de semana… Eu tenho que saber que ele esfolou o VHS, não o Filme Abstrato que tem na TV.”


💾 Modelando o Caos (A Mente do Arquiteto e do Requisito)

Sem ir na IDE de programação, nós lemos, decodificamos a fala da cliente para “Entidades do Banco”, “Associações e Classes Básicas”. Desenhamos a Teia na mente:

[ ENTIDADE CLIENTE ] <-- (1 a Muitos) --> [ ENTIDADE FILHO / DEPENDENTE ]
  - id_cliente                                - nome_crianca
  - nome_completo                             - grau_parentesco
  - telefone_primario                         - permissao_violencia (Boolean)
 
[ ENTIDADE TITULO/OBRA ABSTRATO ] <--- (1 Obra tem N Copias Físicas na Prateleira) ---> [ COPIA_FISICA ]
  - titulo : String                    |              - codigo_barra
  - duracao_minutos : Int              |              - data_aquisicao
  - idade_censura : Int                V              - tipo_midia: Enum (VHS, DVD, BLURAY)
                            [ LOCAÇÕES TEMPORAIS (O Aluguel em si que gera a Dívida Financeira) ]

Apenas o fato do Analista separar “O Título ‘Rambo’” do VHS Físico riscado, salvou horas sombrias de estruturação bizarra no futuro do sistema.


🎬 CASO: As Regras e Restrições Implacáveis (Domínio)

A Dona Blockbuster Continua suas queixas comerciais… e nós deculmamos isso em leis inegociáveis do nosso algorítmo futuro.

🗣️ “Se o abençoado estiver devendo R$ 1 real da fita anterior na data de hoje, o meu sistema anterior deixava passar. Nesse seu NÃO PODE alugar nem água pra ele!” (Regra de Bloqueio Sistêmico de Locação por Débito Previdenciário).

🗣️ “Outra coisa! Lançamento fica 2 dias retido com o cara, ponto final. O resto que é antigo do acervo (clássicos) deixa ele levar pra 5 dias de férias no final de semana sem me encher o saco.” (A Ação de Definição Variável do Prazo de Prazo Baseado na Natureza da Obra Locada, com desconto ou abstração em calendário comercial).


🤖 Da Papelaria aos Endpoints do Futuro Oculto (APIs Tecnológicas)

Os Famosos requisitos “Novos / Relatórios Modernos”. Ela exige modernização, mas não sabe o nome das coisas. O Analista transforma.

  1. Desejo da Dona: “Avisar os devedores que sumiram faz 1 mês e nunca mais voltaram sem eu precisar ficar no telefone.”

    • Engenharia de Soluções Arquiteturais: Adoção por Requisito Não Funcional da contratação externa de Ferramenta. Integração de CronJobs às 00h via backend para disparar um Lote Async de Broadcast de Whatsapp usando serviço da Zapi (Z-API).
  2. Desejo da Dona: “Eu compro muita coisa inútil que não sai da prateleira, quero dicas de Ouro todo final de Ano, um ranking dos Campeões da grana”.

    • Engenharia Sistêmica de Requisitos: Implementação de Pipeline de Data Warehouse Relacional Diário gerando BI com Views ranqueadas por Volume de faturamento bruto DESC (Descendente).

🗣️ QUIZ VERBAL: Extração e Lógica Jurídica/Comercial

Com base na Locadora “Nostalgia” de filmes acima… Qual das opções rústicas enumeradas que a dona falou abaixo deve ser qualificada rigorosamente aos olhos das metodologias modernas pelo Engenheiro como “Requisito Estrito de DOMÍNIO (Regra Base Comercial)”, e não funcionalidade sistêmica genérica?

A) O desenvolvedor Java Junior utilizará o gerador Jasper Reports (.jrxml) para exportar um recibo contábil para .PDF B) A tela inicial deve possuir 2 campos para CPF (14 posições válidas) e RG (Alfa-numérico). C) Finais de Semana Prolongados (Sáb e Dom) por feriado da Independência, não computam dias atrasados no motor punitivo das dívidas diárias da locadora!


✅ RESPOSTA DO QUIZ

Letra C! 🏆 (Feriado Prolongado não conta como mora diária).

Explicação:

  • Letra A é uma diretiva de infraestrutura e pacote restritivo (Requisito Não-Funcional Técnico de Biblioteca).
  • Letra B é a ação bruta de UI/UX e Frontend com validação estática de string (Requisito Funcional de Interface / CRUD puro).
  • A Letra C desenha uma exceção algorítmica vitalística da regra comercial legal que a Locadora pratica; uma restrição “domínio”, independente se o código for em Java 21 moderno ou num Mainframe MS-DOS de 1982. A regra de desconto do tempo no final de semana é da alma (Domínio) do negócio.

📐 Matemática de Domínio: Cálculo da Multa por Atraso

A regra da Dona da Locadora (“atraso cobra R$1,50/dia por fita”) é um Requisito de Domínio expresso como fórmula matemática no sistema:

Onde:

  • = valor cobrado por dia de atraso por cópia
  • = dias corridos após vencimento (exceto feriados — Requisito de Domínio!)
  • = quantidade de cópias físicas retidas

Exemplo: João devolveu 2 VHS com 3 dias de atraso. V_{multa} = 1{,}50 \times 3 \times 2 = R\\ 9{,}00$

(Todo RD vira uma equação que o programador implementa no backend — nunca “na intuicióo”.)