ScholarGate
Assistente

Engenharia de Requisitos

Engenharia de requisitos é a disciplina de descobrir, analisar, documentar, validar e gerenciar o que um sistema de software deve fazer e as restrições sob as quais ele deve operar.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Engenharia de requisitos é o processo sistemático de elicitar, analisar, especificar, validar e gerenciar os serviços que um sistema de software deve fornecer e as restrições em sua operação e desenvolvimento.

Scope

Esta área abrange a elicitação das necessidades das partes interessadas; a análise e negociação de objetivos conflitantes; a distinção entre requisitos funcionais e não funcionais (qualidade); técnicas de especificação que variam de declarações em linguagem natural a modelos formais; validação por meio de revisão e prototipagem; e o gerenciamento de mudanças de requisitos e rastreabilidade ao longo do ciclo de vida.

Sub-topics

Core questions

  • Como as necessidades reais das partes interessadas são descobertas e disambiguadas?
  • Como os requisitos funcionais e não funcionais devem ser especificados de forma precisa, mas compreensível?
  • Como os requisitos conflitantes são detectados, negociados e resolvidos?
  • Como os requisitos são validados e mantidos consistentes à medida que mudam?

Key theories

Requisitos funcionais versus não funcionais
Os requisitos são divididos em declarações funcionais do que o sistema deve fazer e restrições não funcionais (qualidade), como desempenho, segurança e usabilidade, que frequentemente abrangem todo o sistema e impulsionam a arquitetura.
Engenharia de requisitos orientada a objetivos
Os sistemas são analisados em termos de objetivos das partes interessadas que são refinados em sub-objetivos e operacionalizados em requisitos, fornecendo justificativa, detecção de conflitos e rastreabilidade desde a intenção de alto nível até as funções do sistema.

Clinical relevance

Erros de requisitos estão entre os defeitos mais caros porque se propagam para o projeto e o código; a engenharia de requisitos rigorosa reduz o retrabalho, alinha o software entregue com as necessidades das partes interessadas e fornece a base para testes de aceitação e acordo contratual.

Evidence & guidelines

A ISO/IEC/IEEE 29148 especifica os processos de engenharia de requisitos e o conteúdo das especificações de requisitos, e a área de conhecimento de Requisitos de Software do SWEBOK fornece uma referência de consenso.

History

A engenharia de requisitos evoluiu dos métodos de análise estruturada da década de 1970 para uma subdisciplina reconhecida na década de 1990, marcada por conferências (RE) e periódicos dedicados, o surgimento da modelagem baseada em objetivos e cenários, e uma crescente atenção aos requisitos não funcionais e à negociação com as partes interessadas.

Debates

Requisitos antecipados versus emergentes
A prática orientada a planos favorece a especificação completa dos requisitos antes da construção, enquanto a prática ágil trata os requisitos como emergentes e refinados por meio de iteração; a troca depende da volatilidade, das restrições contratuais e do custo da mudança tardia.

Key figures

  • Axel van Lamsweerde
  • Bashar Nuseibeh
  • Steve Easterbrook
  • Michael Jackson

Related topics

Seminal works

  • vanlamsweerde2009
  • nuseibeh2000
  • sommerville2015

Frequently asked questions

Por que os erros de requisitos são tão caros?
Um requisito mal compreendido ou ausente é frequentemente descoberto apenas tardiamente, depois que o projeto e o código foram construídos sobre ele, então corrigi-lo exige desfazer o trabalho subsequente; estudos empíricos mostram consistentemente que o custo de corrigir um defeito aumenta drasticamente quanto mais tarde ele é encontrado.
Projetos ágeis fazem engenharia de requisitos?
Sim, mas de forma diferente. Projetos ágeis elicita, analisam e validam requisitos continuamente por meio de histórias de usuários, refinamento de backlog e feedback frequente, em vez de produzir um grande documento de especificação antecipadamente.

Methods for this concept

Related concepts