A análise e validação de requisitos são fases típicas do processo de engenharia de requisitos como, por exemplo, no processo proposto por Kotonya e Sommerville (1998). Os requisitos estabelecidos para os sistemas de software, através da análise, devem ser validados, ou seja, confirmados, para que o sistema de software possa ser desenvolvido a partir destes requisitos, que satisfaçam a necessidade das partes interessadas.
O objetivo da análise de requisitos é verificar se os requisitos contribuem para a solução adotada de um sistema e software de maneira completa (KOTONYA; SOMMERVILLE, 1998). Além disso, a análise de requisitos resulta na identificação de requisitos desnecessários, conflitantes ou mesmo inviáveis para a solução.
Para realizar a análise de requisitos, pode–se utilizar recursos como listas de verificação e matrizes de interação de requisitos (KOTONYA; SOMMERVILLE, 1998).
As listas de verificação relacionam os pontos que devem ser verificados durante a análise de requisitos. Estes pontos abordam temas importantes, tais como: utilização de padrões de software e hardware, verificação da ambigüidade de requisitos, definição de requisitos não-funcionais, existência de requisitos desnecessários, entre outras questões. As listas de verificação servem para avaliar se nenhum ponto relacionado à análise dos requisitos foi esquecido, além de sinalizar problemas em potencial.
As matrizes de interações entre requisitos, por sua vez, têm o objetivo de identificar requisitos conflitantes e sobrepostos.
Os conflitos detectados entre os requisitos podem ser resolvidos através de reuniões entre as partes interessadas (KOTONYA; SOMMERVILLE, 1998).
A validação de requisitos tem como objetivo certificar que os requisitos provenientes da fase de análise representam uma descrição aceitável do sistema de software que será desenvolvido. Esta fase deve envolver as partes interessadas, que devem verificar se os problemas dos requisitos, omissões e ambigüidades ainda permanecem durante a validação (KOTONYA; SOMMERVILLE, 1998).
Como exemplos de problemas detectados na fase de validação, podem-se citar: não-conformidade do documento de requisitos perante padrões da organização, ambigüidade entre requisitos, erros nos modelos do sistema de software, conflitos entre requisitos que ainda não foram detectados na fase de análise.
Um dos maiores problemas no processo de validação é a inexistência de um documento que possa servir como fonte de requisitos. A validação dos requisitos deve assegurar que o documento de especificação de requisitos apresente uma descrição clara do sistema de software para que possa ser seguida nas próximas fases do desenvolvimento, além de uma confirmação final de que os requisitos atendem às necessidades das partes interessadas.
A validação de requisitos pode ser um processo prolongado que envolve pessoas, leituras, análises de documentação e reuniões. É possível que dure semanas ou mesmo meses para que se valide os requisitos de um sistema complexo, principalmente quando muitas partes interessadas estão envolvidas. Se esta fase não for realizada, o retrabalho é inevitável, pois as deficiências podem não ser detectadas em fases posteriores. A solução de problemas decorrentes de erros de requisitos, em sistemas já terminados, pode custar até 100 vezes mais em relação ao que foi previsto na estimativa inicial (KOTONYA; SOMMERVILLE, 1998).
Existem vários métodos que podem ser utilizados como base para a validação de requisitos; entre eles podem-se citar a revisão de requisitos, aplicação de listas de verificação, prototipação com cenários, elaboração de versão preliminar de manual de usuário e modelagem da análise do sistema através de diagramas.
A revisão de requisitos é o método mais utilizado para validar requisitos (KOTONYA; SOMMERVILLE, 1998). O objetivo é envolver um grupo de pessoas que possa ler o documento e analisar os requisitos, procurar problemas, realizar reuniões para discutir e gerar uma lista de ações para resolver os problemas identificados.
As listas de verificação devem conter as características e os erros mais freqüentes cometidos nas especificações. A verificação é uma inspeção, em que cada item da lista de verificação é um item a ser analisado.
A prototipação pode ser utilizada tanto para a elicitação de requisitos quanto para a validação. Os protótipos para executar a validação devem ser mais completos que os protótipos da elicitação, pois além de implementar os requisitos, devem dar uma idéia do uso prático sistema através da execução de cenários. Os protótipos utilizados na fase de validação deverão ser utilizados posteriormente para desenvolver o sistema.
A elaboração de uma versão premininar do manual do usuário causa a reescrita de requisitos de forma diferente da inicial, permitindo entender melhor os requisitos, além de detectar o relacionamento entre eles. Este manual deve incluir informações sobre a funcionalidade a ser desenvolvida e as partes do sistema de software que não serão desenvolvidas, uma descrição sobre como enfrentar dificuldades na implantação de um sistema novo, além das instruções sobre como instalar os protótipos e o próprio sistema final. A vantagem da elaboração do manual do usuário é que este documento será a base para a elaboração da documentação final do usuário.
A técnica de validação dos modelos do sistema possui três objetivos principais: (1) mostrar que um modelo em particular é consistente e que não conflita com outras partes do sistema; (2) mostrar que os modelos são consistentes internamente e externamente; (3) mostrar que o modelo reflete os requisitos das partes interessadas. Um ponto importante é que os modelos devem ser descritos também em linguagem natural, pois muitas partes interessadas podem não entender a notação utilizada e ter dificuldade em identificar os requisitos.