Guia de Elicitação e Análise de Requisitos de Software
Classificado em Tecnologia
Escrito em em
com um tamanho de 7,85 KB
Elicitação e Análise de Requisitos
Atividades da elicitação:
- (1) Entendimento do domínio da aplicação: é o conhecimento geral onde o sistema será aplicado.
- (2) Entendimento do problema: os detalhes específicos do problema do cliente devem ser entendidos.
- (3) Entendimento do negócio: deve-se entender como os sistemas interagem e contribuem de forma geral com os objetivos de negócio.
- (4) Entendimento das necessidades e limitações dos stakeholders do sistema: deve-se entender, em detalhe, as necessidades específicas das pessoas que requerem suporte do sistema no seu trabalho.
Elicitar: significa descobrir, tornar explícito e obter o máximo de informações para o conhecimento do objeto em questão. Cabe à elicitação a tarefa de identificar os fatos que compõem os requisitos do sistema, de forma a prover o mais correto e completo entendimento do que é demandado daquele software.
Dificuldades da Elicitação
- (1) Usuários podem não ter uma ideia precisa do sistema por eles requerido.
- (2) Usuários têm dificuldades para descreverem seu conhecimento sobre o domínio do problema.
- (3) Usuários e analistas têm diferentes pontos de vista do problema (por terem diferentes formações).
- (4) Usuários podem antipatizar-se com o novo sistema e se negarem a participar da elicitação (ou mesmo fornecer informações errôneas).
Estágios da Elicitação
- (1) Definir objetivos: os objetivos organizacionais devem ser estabelecidos, incluindo objetivos gerais do negócio, uma descrição geral do problema a ser resolvido, por que o sistema é necessário e as limitações do sistema.
- (2) Aquisição de conhecimento do background: informação de background do sistema inclui informações acerca da organização onde o sistema será instalado, o domínio da aplicação do sistema e informação acerca de outros sistemas existentes.
- (3) Organização do conhecimento: a grande quantidade de conhecimento que foi coletada nos estágios anteriores deve ser organizada e colocada em ordem.
- (4) Coletar os requisitos dos stakeholders: os stakeholders do sistema são consultados para a descoberta de seus requisitos.
Análise e Negociação de Requisitos
Cheques da Análise
- (1) Checagem da necessidade: a necessidade dos requisitos é analisada. Em alguns casos, alguns requisitos propostos não podem contribuir para os objetivos de negócio da organização ou para o problema específico tratado pelo sistema.
- (2) Checagem de consistência e completude: os requisitos são checados entre si para determinar consistência e completude. Consistência significa que nenhum requisito deve ser contraditório; completude significa que nenhum serviço (ou limitação) que seja necessário foi esquecido.
- (3) Checagem de viabilidade: os requisitos são checados para garantir que são viáveis dentro do orçamento e tempo disponível para o desenvolvimento do sistema.
Negociação dos Requisitos
- (1) Discutir requisitos: os requisitos que foram identificados como problemáticos são discutidos e os stakeholders envolvidos apresentam seus pontos de vista acerca dos requisitos.
- (2) Priorizar requisitos: os requisitos disputados são priorizados para identificar requisitos críticos e ajudar o processo de tomada de decisão.
- (3) Concordância dos requisitos: soluções para os problemas dos requisitos são identificadas e um conjunto de requisitos é acordado. Geralmente, isto envolve mudanças em alguns dos requisitos.
Técnicas de Elicitação
A escolha das técnicas e seu esquema de integração dependerá do problema e da equipe participante.
- Entrevista: O engenheiro de requisitos discute o sistema com diferentes stakeholders e obtém um entendimento dos requisitos.
- Vantagens: contato direto com o usuário e validação imediata.
- Desvantagens: conhecimento tácito e diferenças de cultura.
- Tipos: fechadas (questões predefinidas), abertas (não há agenda predefinida) e tutorial (cliente no comando, aula).
- Leitura de documentos: Abstrações e vocabulário da aplicação.
- Vantagens: facilidade de acesso e volume de informações.
- Desvantagens: dispersão das informações e volume de trabalho.
- Questionários: Utilizados quando existe conhecimento sobre o problema e um grande número de clientes. Dão uma ideia definida sobre como certos aspectos do universo de informação/software são percebidos. Possibilitam análises estatísticas.
- Vantagens: padronização das perguntas e tratamento estatístico das respostas.
- Desvantagens: limitação do universo de respostas e pouca interação.
- Análise de protocolos: Consiste em analisar o trabalho de determinada pessoa através de verbalização. Objetivo: estabelecer a racionalidade utilizada na execução de tarefas.
- Vantagens: possibilidade de elicitar fatos não facilmente observáveis e permitir melhor entendimento dos fatos.
- Desvantagens: desempenho do entrevistado e o fato de que "o que se diz é diferente do que se faz".
- Participação ativa dos usuários: Incorporação dos usuários ao grupo de Engenharia de Requisitos (ER). Os usuários precisam aprender as linguagens de modelagem utilizadas para ler as descrições e criticá-las. Integração dos usuários com os ER na modelagem do sistema.
- Vantagens: envolvimento dos clientes e usuários.
- Desvantagens: treinamento dos usuários e falsa impressão da eficácia do sistema.
- Cenários: São histórias que explicam como um sistema poderá ser usado. Devem incluir: uma descrição do estado do sistema antes de começar o cenário, o fluxo normal de eventos, exceções, informações sobre atividades concorrentes e o estado final do sistema. Cenários revelam facilidades que o sistema pode precisar.
- Etnografia: Técnica das ciências sociais baseada na observação das pessoas no trabalho para entender processos reais, que muitas vezes diferem dos formais.
- Vantagens: visão mais completa e perfeitamente ajustada ao contexto.
- Desvantagens: tempo gasto e pouca sistematização do processo.
- Reuso de requisitos: Envolve considerar requisitos desenvolvidos para outros sistemas. Economiza tempo e esforço, pois já foram analisados e validados.
- Possibilidades: domínios similares, apresentação da informação (consistência de estilos) e políticas da companhia (segurança).
- Vantagens: produtividade e qualidade.
- Desvantagens: dificuldade de promover reutilização sem modificação.
- Prototipagem: Versão inicial do sistema para experimentação. Essencial para o aspecto "look and feel" da interface.
- Tipos: (1) Descartável: ajuda na elicitação de requisitos difíceis de entender. (2) Evolucionária: entrega rápida de um sistema funcional, implementando primeiro o que é bem entendido.
- Custos e problemas: treinamento em ferramentas, custos de desenvolvimento, extensão de prazos e possível incompletude de requisitos críticos.