O que é?
É o detalhamento de todas as propriedades, restrições e funcionalidades, que um software deve ter para suprir e manter o que lhe foi requerido. Este processo deve ser precedido de estudos de viabilidade que, a partir das restrições do projeto, determinam se este é ou não viável.
O processo de requisição de software é composto por 6 partes principais:
- Viabilidade;
- Identificação;
- Análise;
- Especificação e documentação;
- Validação;
- Gestão dos requisitos;
Viabilidade
A interação entre os envolvidos no projeto deve sanar perguntas como:
- O sistema contribui para os objetivos da organização?
- Dadas as restrições tecnológicas, organizacionais e temporais associadas ao projeto, será que o sistema pode ser implementado?
- É possível a integração com os outros sistemas da organização (de um ponto de vista tecnológico)? Com que facilidade é que se consegue partilhar informação entre estes sistemas?
A partir da análise dos dados extraídos, avalia-se a continuidade do projeto de maneira consciente quanto as restrições e os requisitos.
Identificação
O passo seguinte a validação da viabilidade do projeto é a identificação dos requisitos.
- Objetivo dos requisitos
- Estabelecer e manter concordância com os clientes e outros envolvidos sobre o que o sistema deve fazer;
- Oferecer aos desenvolvedores do sistema uma compreensão melhor dos requisitos do sistema;
- Definir as fronteiras do sistema;
- Fornecer uma base para estimar o custo e o tempo de desenvolvimento do sistema;
- Definir uma interface de usuário para o sistema, focando nas necessidades e metas dos usuários;
Análise
A análise é a etapa seguinte a identificação dos requisitos, inclui atividades como:
- Classificação: agrupamento de requisitos em "módulos" para facilitar a visão global do funcionamento pretendido para o sistema;
- Resolução de conflitos: dada a multiplicidade e diversidade de papéis das partes interessadas envolvidas na captura e análise de requisitos, é inevitável a existência de conflitos nos requisitos identificados; é importante resolver estes conflitos o mais breve possível;
- Priorização: consiste na atribuição de uma "prioridade" a cada requisito (por exemplo elevada/média/baixa); obviamente, este pode ser um fator gerador de conflitos;
- Confirmação: é confirmada com as partes interessadas a completude dos requisitos, sua consistência e validade (de acordo com o que se pretende do sistema).
Especificação e documentação
- Especificações dos requisitos de sistema
É nesta fase que se dá a produção propriamente dita do documento de especificação de requisitos.
Em todos os tipos de especificação há 2 tipos de requisitos a considerar:
Funcionais: Definem a funcionalidade do software, função que o sistema deve realizar para tender os objetivos do usuário.
Definem O QUE o sistema deve fazer, sem a preocupação de COMO fazer.
Não funcionais: Definem as qualidades do software.