"Engenharia de Requisitos é o nome que se dá ao conjunto de atividades relacionadas com a descoberta, análise, especificação e manutenção dos requisitos de um sistema. O termo engenharia é usado para reforçar que essas atividades devem ser realizadas de modo sistemático, ao longo de todo o ciclo de vida de um sistema e, sempre que possível, valendo-se de técnicas bem definidas." (VALENTE, 2020).
"A Engenharia de Requisitos pode ser definida como uma disciplina da Engenharia de Software que consiste no uso sistemático e repetitivo de técnicas para cobrir atividades de obtenção, documentação e manutenção de um conjunto de requisitos para software que atendam aos objetivos de negócio e sejam de qualidade." (VAZQUEZ; SIMÕES, 2016).
"A área de conhecimento de Requisitos de Software está preocupada com a elicitação, análise, especificação e validação de requisitos de software, bem como a gerência de requisitos durante todo o ciclo de vida do produto de software." - Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society.
Observação: Neste documento, a opção por não utilizar o termo ENGENHARIA para Engenharia de Requisitos é adotada, por deixar o significado completo do termo apenas para a Engenharia de Software.
Aqui a Engenharia de Requisitos é abordada como um processo genérico, definido em termos de diferentes objetivos associados às atividades principais que delimitam suas fases. Dessa forma, a informação apresentada não se limita necessariamente a uma metodologia, abordagem ou processo de desenvolvimento em particular.
A produção da Engenharia de Requisitos pode ser descrita em diferentes perspectivas de acordo com o objetivo de comunicação do artefato.
Também conhecida como levantamento de requisitos, coleta de requisitos, descoberta de requisitos, extração de requisitos, obtenção de requisitos, captura de requisitos ou aquisição de requisitos.
A elicitação de requisitos é um processo de aquisição de conhecimento.
Refere-se às interações da equipe do projeto com clientes e outras partes interessadas, com o objetivo de descobrir e entender os principais requisitos do sistema que se pretende construir.
Assim, obtém-se com clientes e demais interessadas: quais são os objetivos para o sistema/produto, o que deve ser alcançado, como o sistema/produto atende às necessidades de clientes e, por fim, como o sistema/produto será utilizado no dia a dia.
Para tal, utiliza-se de diversas técnicas de levantamento de requisitos: entrevistas, etnografia, questionários, brainstorming, grupo focal, análise de documentação, workshops com usuários, produção de protótipos, elaboração de cenários de uso etc.
É muito difícil que se esgote a elicitação em um passo único no projeto. O mais razoável é que, após algumas sessões de elicitação, tendo informação suficiente, já se inicie uma parte do trabalho de análise de requisitos. E esse trabalho irá orientar quais necessidades de informação devem ser buscadas, provocando um novo ciclo de elicitação-análise.
definir as necessidades do sistema/produto e do negócio;
definir todas as partes interessadas;
definir o escopo da solução proposta.
Mapa mental
Glossário
Modelo conceitual
Modelagem de processos de negócio
Diagrama de Contexto
Diagramas de Casos de Uso
Histórias de Usuário
Declaração de Problema
Memórias de levantamento (ex.: notas de entrevistas, respostas de questionários, mapas mentais, atas de reunião, gravações de áudio e vídeo etc)
Versões iniciais de artefatos de documentação (ex.: Documento de Requisitos, Diagrama de Casos de Uso, Glossário etc)
Durante as atividades de análise de requisitos, as informações da elicitação de requisitos são expandidas e refinadas.
A análise de requisitos envolve o exame da informação, a decomposição da informação e a síntese da informação.
É a análise de requisitos que permite avaliar se houve qualidade na elicitação.
A análise de requisitos concentra-se na elaboração de uma documentação de requisitos refinada, capaz de identificar os diversos aspectos das funções, dos comportamentos e das informações do sistema/produto.
Organizar a partir de exame, decomposição e síntese;
Identificar e descrever tarefas já existentes no fluxo operacional e tarefas que inovam o fluxo operacional;
Descoberta de requisitos implícitos e ocultos, cuja descoberta tardia pode inviabilizar o projeto e tornar nulos os resultados para os investimentos já realizados;
Criar e refinar a documentação dos requisitos da solução;
Modelar a solução e usar modelos para refinar a informação.
Glossário
Modelo conceitual
Modelagem de processos de negócio
Diagrama de Casos de Uso
Histórias de Usuário
Descrição de Casos de Uso
Declaração de Problema
Diagramas de Fluxo de Dados
Documentação dos requisitos funcionais, não funcionais e regras de negócio do sistema/produto
Modelos e outros artefatos de documentação mais elaborados (ex.: Diagrama de Casos de Uso, Diagrama de Estados, Glossário etc)
A especificação de requisitos, quando apontada como uma atividade separada da análise de requisitos, envolve o incremento e refinamento dos produtos elaborados na etapa de análise com uma granularidade menor e informações aprofundadas.
A validação de requisitos é um trabalho de garantia de qualidade na Engenharia de Requisitos que busca assegurar que todos os requisitos especificados para o sistema/produto estejam alinhados com os requisitos de usuário e necessidades do negócio.
Todos os artefatos produzidos são avaliados quanto à qualidade durante a etapa de validação.
A documentação dos requisitos, modelos e demais artefatos produzidos podem ser validados por meio de revisão técnica:
A equipe de revisão que valida os requisitos é formada por diferentes pessoas da equipe do projeto (analistas, engenheiras, desenvolvedoras etc), clientes, pessoas usuárias do sistema e demais partes interessadas
A revisão técnica examina a especificação em busca de erros no conteúdo ou na interpretação.
Além disso, identifica a necessidade de esclarecimentos, de informações faltantes, de inconsistências, de requisitos conflitantes ou de requisitos irreais (inatingíveis).
Funcionalidades, interfaces e interações podem ser validadas via protótipos e MVP.
Os requisitos para sistemas baseados em computadores mudam, e o desejo de mudar os requisitos persiste ao longo da vida de um sistema.
Gestão de requisitos é um conjunto de atividades que ajuda a equipe de projeto a identificar, controlar e acompanhar as necessidades e as mudanças dos requisitos a qualquer momento, enquanto o projeto prossegue.
Roger Pressman divide a Engenharia de Requisitos em 7 atividades distintas, a saber: concepção, levantamento, elaboração, negociação, especificação, validação e gestão.
É importante notar que algumas delas ocorrem em paralelo e todas são adaptadas às necessidades do projeto.
Concepção
Levantamento
Elaboração
Negociação
Especificação
Validação
Gerência de Requisitos
A maioria dos projetos começa quando é identificada a necessidade do negócio ou é descoberto um novo serviço ou mercado potencial.
Interessados da comunidade de negócios (por exemplo, gerentes comerciais, pessoal de marketing, gerentes de produto) definem um plano de negócio para a ideia, tentam identificar o tamanho do mercado, fazem uma análise de viabilidade aproximada e identificam uma descrição operacional do escopo do projeto.
Na concepção do projeto, estabelecemos um entendimento básico do problema, as pessoas que querem uma solução, a natureza da solução desejada e a eficácia da comunicação e colaboração preliminares entre os demais interessados e a equipe de software.
Negociação: Conciliação de conflitos por meio de um processo de negociação com o cliente e equipe.
Devemos solicitar aos clientes, usuários e outros interessados para que ordenem seus requisitos e discutam em termos de prioridade.
Usando uma abordagem iterativa que priorize os requisitos, avalie seus custos e riscos, bem como trate dos conflitos internos, requisitos são eliminados, combinados e/ou modificados, de modo que cada parte atinja certo nível de satisfação.
Ian Sommerville divide a Engenharia de Requisitos em 6 atividades distintas, equivalentes às definidas por Pressman - nomeadas em parênteses.
Estudo de Viabilidade (Pressman 1. Concepção)
Elicitação (Pressman 2. Levantamento)
Análise (Pressman 3. Elaboração)
Especificação (Pressman 5. Especificação)
Validação (Pressman 6. Validação)
Gerência (Pressman 7. Gerência de Requisitos)
A tarefa de Pressman 4. Negociação, está incluída nas tarefas de elicitação e análise de requisitos, em um processo iterativo que pode ser representado como uma espiral de atividades — descoberta de requisitos, classificação e organização de requisitos, negociação de requisitos e documentação de requisitos.