FONTES DE DOCUMENTAÇÃO
5.1 CONCEITOS E FUNDAMENTOS
O passo inicial do projeto de desenvolvimento de software é a elicitação50 que tem como objetivo auxiliar os envolvidos no processo de identificação dos fatos que compõem os requisitos do sistema. Podem ser utilizadas técnicas de entrevistas, cenários, observação e análise social, etnografia e leitura de documentos (SOMMERVILLE, 2001).
Segundo Belgamo e Martins (2008), a elicitação de requisitos é uma atividade importante, pois oferece a base para o desenvolvimento das etapas seguintes: especificação, análise, verificação e gerenciamento das premissas de desenvolvimento do sistema.
Thayer (1997) enumera as etapas do processo de desenvolvimento de software:
• elicitação: processo através do qual os clientes e os usuários são questionados por um desenvolvedor para estabelecerem o que o sistema a ser implementado deverá fazer;
• análise: processo onde são analisadas as necessidades dos clientes e usuários;
• especificação: registro dos requisitos analisados;
• verificação: comparação entre as etapas de elicitação e especificação, ou seja, verificar se estão em acordo com a solicitação do cliente; e
• gerenciamento: planejamento e controle das atividades de elicitação, especificação, análise e verificação.
50
A fase de elicitação é o início de todo desenvolvimento de software, no entanto, esta atividade não acontece apenas uma vez, este processo é interativo e poderá voltar em outras etapas de desenvolvimento, enquanto o entendimento do sistema vai se consolidando. Para iniciar a elicitação é preciso identificar as pessoas certas, usuários finais, onde o conhecimento e a experiência são essenciais no processo de desenvolvimento (GOGUEN, 1997). Deve-se preocupar também com a veracidade das informações e se estão de acordo com as necessidades da instituição. Para isso, é importante que o desenvolvedor conheça as atividades realizadas pelos usuários no seu contexto de trabalho se atentando para os fatores sociais e técnicos, para poder alcançar o objetivo que é a identificação dos requisitos.
De acordo com a Technology Leadership Council Brazil (TLCBrazil, 2011), a atividade de elicitação de requisitos é uma das mais importantes práticas da elaboração de um sistema. Através dela, busca-se o entendimento das necessidades do usuário e dos requisitos de negócio, de forma a trata-los posteriormente através de uma solução tecnológica.
Entende-se que é necessário realizar uma análise das ações dos usuários, os objetivos que pretendem alcançar, o contexto em que estão inseridos, as regras e normas que estão submetidos, o histórico do desenvolvimento das atividades realizadas etc. Todos esses dados são importantes para a extração dos requisitos.
5.2 ATIVIDADES
Através da revisão de literatura, verificou-se que muitos autores adotam o termo elicitação, ao invés de levantamento, pois essa prática não trata simplesmente do levantamento de requisitos, mas também da identificação dos fatos que os compõem e dos problemas a serem solucionados. Por ser uma atividade interpessoal, essa prática é muito dependente da capacidade de entendimento do analista e da habilidade do usuário em expressar as suas necessidades.
Segundo Kotonya e Sommerville (1998), a elicitação de requisitos está fundamentada em quatro atividades:
• domínio da aplicação - abrange o entendimento geral da área na qual o sistema será aplicado;
• entendimento do problema - abrange a apreensão dos detalhes do problema específico a ser resolvido com auxílio do sistema a ser desenvolvido;
• entendimento do negócio - abrange a percepção da contribuição do sistema para que sejam atingidos os objetivos gerais da organização;
• entendimento das necessidades e restrições dos stakeholders51
- abrange a assimilação detalhada:
o das necessidades de apoio a serem providas pelo sistema à realização do trabalho e ao interesse de cada uma das partes interessadas;
o dos processos de trabalho a serem apoiados pelo sistema;
o do papel de eventuais sistemas existentes na execução e condução dos processos de trabalho.
5.2.1 Identificação e armazenamento
Uma recomendação essencial no gerenciamento de requisitos é uma identificação única no escopo do projeto (SOMMERVILLE, 2001).
É importante que se chegue a um padrão de identificação dos requisitos para facilitar no momento de implementação do sistema.
5.2.2 Problemas frequentes
De acordo com Belgamo e Martins (2008), é comum aparecerem muitos problemas durante a elicitação. Por exemplo, durante as entrevistas aparecem problemas de escopo, de entendimento e questões de viabilidade por parte dos usuários.
Independente do tamanho do sistema a ser implementado, é preciso ter sistematização e organização, compreensão dos usuários e clientes, e alteração dos requisitos com frequência, caso seja necessário.
Segundo Faulk (1997), no que se refere ao contexto dos problemas na elicitação de requisitos, além do citado acima, pode-se dividir em dois grupos:
• problemas acidentais - proveniente da falta de controle, tais como:
51
o pouco esforço despendido no levantamento das informações junto ao usuário;
o documentação incipiente sobre os requisitos obtidos; o especificações incorretas dos requisitos; e
o conclusão do processo antes do cumprimento de todas as etapas. • problemas essenciais – proveniente da falta de comunicação:
o dificuldades do usuário em identificar as suas necessidades; o dificuldade de comunicação entre o usuário e o desenvolvedor; e o alteração tardia dos requisitos.
Diante da descrição acima, aparentemente os problemas acidentais são mais fáceis de serem evitados. Já nos problemas essenciais, que envolvem a comunicação entre pessoas, é preciso levar em conta o contexto, as habilidades pessoais do entrevistado, o tipo de abordagem e o lado psicológico, pois os aspectos sociais assumem grande importância na elicitação dos requisitos.
5.2.3 Resultados esperados
Conforme Kotonya e Sommerville (1998), o resultado da fase de elicitação de requisitos deve incluir:
• estrutura das necessidades e viabilidades do sistema; • limites de escopo do sistema ou produto;
• listagem dos stakeholders;
• descritivo do ambiente técnico do sistema e as regras de domínio aplicáveis a cada requisito; e
• exemplos de aplicações capazes de prover uma ideia do uso do sistema ou produto sob diferentes condições de operação.