Na engenharia de sistemas e engenharia de software, análise de requisitos engloba todas as tarefas que lidam com investigação, definição e escopo de novos sistemas ou alterações. Análise de requisitos é uma parte importante do processo de projeto de sistemas, na qual o engenheiro de requisitos e o analista de negócio, juntamente com engenheiro de sistema ou desenvolvedor de software, identificam as necessidades ou requisitos de um cliente. Uma vez que os requisitos do sistema tenham sido identificados, os projetistas de sistemas estarão preparados para projetar a solução.
As descrições das funções que um sistema deve incorporar e das restrições que devem ser satisfeitas são os requisitos para o sistema. Isto é, os requisitos de um sistema definem o que o sistema deve fazer e as circunstâncias sob as quais deve operar. Em outras palavras, os requisitos definem os serviços que o sistema deve fornecer e dispõem sobre as restrições à operação do mesmo.
Requisitos são, normalmente, classificados em requisitos funcionais e não funcionais.
Requisitos funcionais
Os requisitos funcionais são aqueles que fazem parte do sistema, como um relatório específico, um campo a mais em um cadastro, etc. Eles normalmente têm a finalidade de agregar valor ao usuário ou facilitar o trabalho que ele desenvolve. Requisitos funcionais serão implementados no próprio sistema e da junção desses requisitos o corpo do sistema será montado. Ou seja, como o próprio nome indica, apontam as funções que o sistema deve fornecer e como o sistema deve se comportar em determinadas situações.
Requisitos não-funcionais
Requisitos não-funcionais são aqueles relacionados ao ambiente onde o sistema está inserido. Um servidor mais robusto, um firewall, ou um usuário especializado em determinado procedimento pode ser visto como requisitos não-funcionais. Eles não devem ser ignorados por não fazerem parte diretamente do sistemas, mas devem ser considerados por compor o ambiente onde o software irá rodar. Ou seja, descrevem restrições sobre as funções oferecidas, tais como restrições de tempo, de uso de recursos etc. Alguns requisitos não funcionais dizem respeito ao sistema como um todo e não a funcionalidade específica. Dependendo da natureza, os requisitos não funcionais podem ser classificados de diferentes maneiras, tais como requisitos de desempenho, requisitos de portabilidade, requisitos legais, requisitos de conformidade etc.
Os processos de engenharia de requisitos variam muito de uma organização para outra, mas, de maneira geral, a maioria dos processos de Engenharia de Requisitos é composta das seguintes atividades:
Levantamento (ou Descoberta ou Elicitação) de Requisitos
Nesta fase, os usuários, clientes e especialistas de domínio são identificados e trabalham junto com os engenheiros de requisitos para descobrir, articular e entender a organização como um todo, o domínio da aplicação, os processos de negócio específicos, as necessidades que o software deve atender e os problemas e deficiências dos sistemas atuais.
Esta etapa é composta por diversas técnicas que visam obter do cliente as informações necessárias para desenvolver o projeto do sistema de informação. Essas técnicas podem ser:
- Entrevistas não estruturadas: Informal ou sem agenda pré-definida;
- Entrevistas estruturadas: Com uma agenda pré-definida;
- Observação do comportamento: Observar os usuários em seu ambiente de trabalho;
- Aprendizagem com o usuário: Analisa e discute com o usuário a maneira como é feito o trabalho;
- Prototipagem: Desenvolvimento de um modelo que simulará o sistema real;
- Brainstorming: Reunião com várias pessoas onde todos discutem um tema central;
- Análise de textos: O usuário descreve as necessidades textualmente. (técnica muito usada atualmente);
- Reutilização de requisitos: Reaproveitamento de padrões ou requisitos de outros sistemas.
Análise de Requisitos
Visa a estabelecer um conjunto acordado de requisitos consistentes e sem ambiguidades, que possa ser usado como base para o desenvolvimento do software. Para tal, diversos tipos de modelos são construídos.
Documentação de Requisitos
É a atividade de representar os resultados da Engenharia de Requisitos em um documento (ou conjunto de documentos), contendo os requisitos do software.
Fonte: luis.blog.br / Wikipédia / Handbook de TI