Engenharia de Requisitos

Engenharia de Requisitos

A Engenharia de Requisitos é o processo de descoberta, análise, documentação e validação dos serviços que um sistema deve oferecer e das restrições sob as quais ele deve operar. Esses requisitos refletem as necessidades dos clientes e usuários finais.

Tipos de Requisitos

  • Requisitos de Usuário: Declarações abstratas em linguagem natural sobre o que o sistema deve fazer. Exemplo: "O sistema deve gerar relatórios mensais de custos."
  • Requisitos de Sistema: Descrições detalhadas das funcionalidades e restrições. Exemplo: "O sistema deve gerar relatórios às 17h30 do último dia útil, segregados por clínica e dosagem de medicamentos."

Requisitos Funcionais vs. Não Funcionais

Tipo Descrição Exemplos
Funcionais Serviços específicos que o sistema deve fornecer.
  • Cadastrar pacientes.
  • Emitir relatórios de medicamentos.
Não Funcionais Restrições sobre o sistema como um todo.
  • Produto: Tempo de resposta < 2 segundos.
  • Organizacional: Uso do padrão ISO 27001 para segurança.
  • Externo: Conformidade com a LGPD.

Elicitação de Requisitos

Técnicas para descobrir e entender os requisitos:

  • Entrevistas: Formais (com roteiro) ou informais.
  • Cenários: Descrições de interações típicas. Exemplo: "Cenário de coleta de histórico médico com fluxos normais e exceções."
  • Casos de Uso (UML): Diagramas que representam interações entre atores e sistema.
  • Etnografia: Observação imersiva do ambiente de trabalho dos usuários.

Documento de Requisitos (ERS)

Estrutura padrão (baseada no IEEE):

  1. Prefácio: Histórico de versões e público-alvo.
  2. Introdução: Objetivos do sistema e alinhamento com negócios.
  3. Requisitos de Usuário: Funcionalidades em linguagem acessível.
  4. Requisitos de Sistema: Detalhes técnicos e não funcionais.
  5. Arquitetura: Visão geral dos módulos e componentes.
  6. Modelos: Diagramas UML (Casos de Uso, Sequência, etc.).
  7. Anexos: Especificações de hardware, banco de dados, etc.

Validação de Requisitos

Verificações essenciais:

  • Validade: O requisito atende a uma necessidade real?
  • Consistência: Há conflitos entre requisitos?
  • Completude: Todos os cenários estão cobertos?
  • Realismo: É tecnicamente viável?
  • Verificabilidade: Pode ser testado?

Gerenciamento de Mudanças

Processo para lidar com evolução dos requisitos:

  1. Identificação: Detecção do problema ou nova necessidade.
  2. Análise: Avaliação de impacto e custo.
  3. Implementação: Ajuste nos documentos e no sistema.
  4. Revisão: Atualização formal dos requisitos.
"Requisitos mudam porque problemas complexos não podem ser totalmente definidos de antemão." (Sommerville)