Elicitação de requisitos é o nome dado para o conjunto de atividades realizadas para a descoberta dos requisitos de um sistema.
A melhor elicitação é aquela que consegue identificar o maior número possível de requisitos necessários para o desenvolvimento de um sistema.
Assim, não se trata apenas de questionar os clientes e usuários sobre o que eles precisam, mas sim de uma análise da empresa, da área de negócio, dos processos envolvidos e dos problemas enfrentados.
Uma das maiores dificuldades do processo de desenvolvimento de um sistema está relacionada ao entendimento do analista de sistemas sobre o problema e as necessidades do cliente.
Essa é uma etapa em que ocorrem muitos problemas de comunicação, como por exemplo o cliente não conseguir se explicar com clareza, o analista de sistema não compreender a área de negócio do cliente, o analista de sistemas não conseguir ser claro na documentação dos requisitos e a equipe de desenvolvimento não compreender corretamente o documento de requisitos.
Esses problemas são ilustrados na figura abaixo:
Em resumo, as principais dificuldades são:
Clique sobre os itens dos retângulos para exibir o conteúdo.
Técnicas utilizadas de forma complementar para que se identifique o maior número possível de requisitos necessários para o desenvolvimento de um sistema.
A escolha das técnicas e seu esquema de integração dependerá do problema e da equipe participante.
1. Entrevistas
O analista conversa sobre o sistema com diferentes pessoas e obtêm um entendimento dos requisitos.
Vantagens:
Desvantagens:
Tipos de entrevistas:
Dicas para boas entrevistas:
O analista coleta diversos documentos do cliente e faz a leitura do mesmos com o objetivo de obter informações e um melhor entendimento sobre a empresa do cliente, bem como sobre a área de negócio.
Vantagens: acesso facilitado pois não depende da disponibilidade das pessoas e grande volume de informações.
Desvantagens: dispersão das informações em diferentes documentos e grande volume de trabalho.
O analista elabora questões a serem respondidas pelos futuros usuários do sistema.
Técnica recomendada quando existe um grande número de usuários e dificuldades para entrevistá-los.
Vantagens: padronização das perguntas e tratamento estatístico das respostas.
Desvantagens: limitação do universo de respostas e pouca interação
O analista passa algum tempo observando as pessoas no trabalho e constrói uma imagem de como o trabalho é realizado.
Vantagens:
Desvantagens:
Dicas para uma boa observação:
Os usuários explicam como fazem o seu trabalho para que o analista obtenha entendimento sobre a forma como os usuários trabalham atualmente.
Vantagens: possibilidade de compreender fatos não facilmente observáveis e permitir melhor entendimento dos fatos.
Desvantagens: as pessoas nem sempre conseguem explicar como trabalham e “o que se diz é diferente do que se faz”
6. Participação ativa dos usuários
Alguns usuários são incluídos na equipe do projeto de software para que as dúvidas possam ser esclarecidas de forma rápida e precisa.
Vantagens: rapidez e precisão no esclarecimento das dúvidas.
Desvantagem: necessidade de treinar os usuários.
O analista reaproveita requisitos de outros projetos de sistema. Na mesma área de aplicação, apenas 15% dos requisitos de um novo sistema são exclusivos dele. O restante são os mesmos de outros sistemas similares.
Vantagens: o processo de especificação de requisitos se torna mais rápido e a chance de termos que corrigir requisitos diminuem visto que os requisitos reutilizados já foram validados em projetos anteriores.
Desvantagens: dificuldade de promover reutilização sem modificação
8. Análise de sistemas similares
O analista pesquisa sistemas similares para identificar diferentes formas de solução para um problema comum.
Vantagens: possibilidade de descobrir as melhores práticas para solucionar um problema e conseqüente diminuição do tempo para especificação dos requisitos.
Desvantagens: tempo necessário para identificar sistemas similares e dificuldade de acesso a sistemas proprietários.