Técnicas de Elicitação de Requisitos Software
Técnicas de Elicitação de Requisitos Software
requisitos de software
Apresentação
Muitos projetos da área de Tecnologia da Informação falham devido a requisitos mal identificados
ou mal compreendidos. Mas quais são as consequências destas falhas? É possível comparar os
requisitos de software aos alicerces de uma casa. Quando a estrutura de uma casa é malfeita, todo o
resto da construção fica comprometida, podendo, inclusive, levar à queda da edificação.
No desenvolvimento de software isso não é diferente. Os requisitos são a base para todas as
demais etapas do desenvolvimento. Se forem mal compreendidos e mal definidos, estes problemas
se propagarão para todas as atividades, levando, no mínimo, ao retrabalho. Além do retrabalho, o
não cumprimento dos requisitos pode acarretar prejuízos ainda mais significativos, como a perda da
credibilidade da empresa no mercado, prejuízos financeiros e, em alguns casos, até mesmo a perda
de vidas humanas.
Por este motivo, é importante focar grande parte dos esforços de desenvolvimento em elicitar
adequadamente os requisitos para que estes possam constituir uma base sólida para o
desenvolvimento de software.
Nesta Unidade de Aprendizagem, você aprenderá a identificar a fonte dos requisitos, ou seja, de
onde o Analista de Requisitos obtém as informações para que possa gerar os requisitos de software.
Aprenderá, ainda, as características das principais técnicas que podem ser utilizadas para elicitar os
requisitos. Por fim, irá compreender como selecionar a técnica de acordo com as características do
contexto.
Bons estudos.
Imagine que você é Analista de Requisitos na área de Tecnologia da Informação de uma empresa
que comercializa planos de saúde.
A elicitação tem início a partir da compreensão do cenário de negócio no qual o software está
inserido e da identificação das fontes que servirão de base para a coleta de informações. Dessa
forma, a seleção e correta aplicação da técnica minimizarão os riscos de surgimento tardio de
requisitos invisíveis ou esquecidos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Conteúdo do livro
As consequências da condução inadequada da etapa de elicitação de requisitos em projetos de
software são inquestionáveis e bem conhecidas. Muitas pessoas que trabalham com
desenvolvimento de software já passaram pela frustração de verem seus projetos atrasarem, serem
replanejados e até mesmo cancelados por conta de requisitos que não foram adequadamente
identificados, compreendidos e documentados. Muitas vezes isto ocorre porque a pessoa
responsável pela etapa de elicitação de requisitos esqueceu algum stakeholder importante, não
sabia que existia alguma regulamentação à qual o software deveria ser aderente ou mesmo porque
desconhecia a melhor técnica de elicitação a ser aplicada naquela situação.
Boa leitura.
ENGENHARIA DE
REQUISITOS
Sheila Reinehr
Seleção de técnicas de
elicitação de requisitos
de software
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
Introdução
À medida que a tecnologia faz cada vez mais parte de nossas atividades
cotidianas, cresce nossa dependência do correto funcionamento de
dispositivos e softwares neles contidos. Utilizamos nossos smartphones
para apoiar a maioria das nossas atividades pessoais e profissionais, desde
consultar como está o trânsito no caminho para a faculdade ou o trabalho
até checar a temperatura para escolher a roupa adequada ou consultar a
conta para ver se o pagamento entrou. Não admitimos mais que os bancos
não tenham todos os serviços on-line ou que tenhamos que nos deslocar
até a pizzaria para buscar o lanche. Temos tudo na ponta dos dedos!
Para que essas facilidades nos alcancem na forma de funcionalidades
nos aplicativos do celular ou nos sites na internet, muita coisa precisa
acontecer antes. São necessários profissionais com diversas habilidades
e competências, esforço conjunto e horas de desenvolvimento e testes.
Em algum momento, pessoas criaram esses serviços.
De onde saem as ideias para essas funcionalidades? Quem define
o que um sistema deve executar e como deve executar? Como se faz
2 Seleção de técnicas de elicitação de requisitos de software
Stakeholders
Outros
Clientes stakeholders
Pohl e Rupp (2015) sugerem que seja mantida uma lista sempre atualizada com esses
envolvidos. Eles argumentam que, caso a lista esteja incompleta ou exista algum
stakeholder que seja identificado tardiamente, as consequências negativas para
o projeto são certas: aspectos importantes podem permanecer não detectados,
o objetivo do projeto pode se perder ou custos adicionais podem surgir para a correção
dos problemas (retrabalho).
entrevista;
reunião;
brainstorming;
observação;
questionário.
Entrevista
Uma das formas mais usuais de se realizar a elicitação de requisitos a partir de
fontes humanas é a entrevista. Trata-se de uma conversa entre duas pessoas,
provocada por uma delas, com um objetivo definido. A entrevista proporciona
o contato pessoal, que faz com que o entrevistado se sinta parte do processo
de construção da solução.
A entrevista facilita a obtenção de informações que, muitas vezes, estão
apenas na memória das pessoas, além de informações a respeito dos integrantes
da unidade, como suas qualificações, atribuições, utilização de processos, bem
como opiniões sobre a unidade e o trabalho. Se uma boa relação é estabelecida
com o entrevistado ou com um pequeno grupo de entrevistados, eles podem
se sentir mais seguros para falar sobre questões mais delicadas do que em um
grupo maior (WIEGERS; BEATTY, 2013).
10 Seleção de técnicas de elicitação de requisitos de software
Veja aqui algumas dicas adicionais para a condução de entrevistas para a elicitação
de requisitos:
conquiste a confiança do entrevistado se apresentando e explicando claramente
a finalidade do encontro;
tome notas durante a entrevista ou grave-a (se o entrevistado permitir);
se possível, utilize o papel do redator (liberando você para focar na conversa com
o entrevistado);
deixe para analisar criticamente depois (não corrija falhas, faça críticas ou discuta);
inicie com questões mais abertas, tipo “como é o trabalho que você realiza?”;
evite termos muito técnicos e tente se aproximar do jargão da área;
evite perguntas com respostas apenas do tipo “sim” ou “não”, que podem limitar
a participação do entrevistado;
se a entrevista se desviar, reconduza, com habilidade, para o fim programado;
se o entrevistado se recusar a fornecer dados, obtenha a cooperação de outros
colegas em papel similar ou, em último caso, do superior hierárquico do entrevistado;
esclareça as possíveis preocupações por parte do entrevistado;
dê abertura para novos contatos, da sua parte e da parte do entrevistado;
valide as informações obtidas com relação ao objetivo previamente estipulado.
Seleção de técnicas de elicitação de requisitos de software 11
Reunião
Outra forma bastante comum de elicitação de requisitos é a reunião. Uma
reunião é o intercâmbio de ideias, sugestões e opiniões entre determinados
indivíduos, visando à aceitação de um ponto de vista (esclarecimento, con-
clusão, decisão, linha de ação etc.) por parte dos participantes.
A reunião é uma comunicação direta entre os participantes e permite a
integração do grupo em torno do mesmo assunto, formando uma equipe de
trabalho. Ela é usada para a coleta de sugestões e críticas dos participantes
(discussões, acertos, acordos e busca de consenso e alternativas); aglutinação e
intercâmbio de experiências; e definição de problemas que devem ser tratados
pela solução, explorando as suas causas e efeitos. Ela permite o envolvimento
das pessoas para a tomada de decisão em grupo.
Assim como a entrevista, a reunião exige uma preparação por parte de quem
vai conduzi-la. É preciso organizar a agenda dos tópicos que serão tratados,
bem como o tempo estimado para discutir cada item. O ambiente no qual a
reunião ocorrerá deve ser amplo, ventilado e iluminado. O espaço deve ser
suficiente para acomodar todos os participantes. Material de apoio deve ser
providenciado, como quadro branco e canetas para anotações, computador,
projetor, tela de projeção e demais materiais de escritório.
12 Seleção de técnicas de elicitação de requisitos de software
Para que uma reunião com o objetivo de elicitação de requisitos seja bem-
-sucedida, é importante que o analista de requisitos que vai conduzi-la seja
cuidadoso ao se preparar. Existem algumas recomendações que podem ajudar:
Veja aqui algumas dicas de perguntas para a condução de reuniões para a elicitação
de requisitos:
Pergunta dirigida: pergunta dirigida especificamente a um participante. Ideal
para lidar com pessoas tímidas. Por exemplo: “Gostaríamos de ouvir a opinião de
Fulano sobre o assunto”; “Por favor, Sr. Fulano, poderia nos dizer alguma coisa?”.
Pergunta geral: pergunta dirigida a todos os participantes, com a finalidade de
estimular a discussão. É um meio de reanimar discussões que, repentinamente,
esfriaram. Por exemplo: “Que mais poderíamos considerar a respeito do que foi
exposto?”; “Que outras medidas poderiam ser tomadas nesse caso?”; “Que alter-
nativas vocês sugerem?”.
Pergunta redistribuída: pergunta que é retornada por quem a recebeu para um
dos demais participantes ou a todo o grupo. Por exemplo: “É uma boa pergunta,
como os senhores responderiam?”; “Ninguém melhor do que Fulano, que entende
desse assunto, para responder a essa pergunta”.
Reversa: pergunta endereçada ao condutor, que a devolve a quem a formulou.
Esse processo exige certo tato, porque pode gerar antagonismo ou embaraço no
participante, que pode, receando que isso se repita, optar por não mais se manifestar.
14 Seleção de técnicas de elicitação de requisitos de software
Brainstorming
O brainstorming consiste em uma “tempestade de ideias”, sem julgamentos
ou análises, que ocorre em um ambiente descontraído e informal. Sentar-se
sozinho ou com um amigo para pensar em uma nova ideia não é exatamente
um brainstorming. A aplicação da técnica requer preparação e envolvimento
de mais pessoas.
Inicialmente, deve ser selecionada uma dinâmica para o entrosamento
dos participantes, que permita que o ambiente fique descontraído e propício
à criatividade. É comum que seja alguma brincadeira simples, com cunho
divertido, realizada em pé ou se movimentando. Esse aquecimento não deve
tomar muito tempo do evento.
O material necessário para o brainstorming também deve ser providenciado
com antecedência e pode ser constituído de notinhas adesivas coloridas (tipo
Post-it) e canetas coloridas. A quantidade vai depender da quantidade de
pessoas e dos objetivos do brainstorming. Lembre-se de que a base é a geração
de muitas ideias, e cada uma deve ser escrita em uma notinha.
A seção de brainstorming é composta por três fases: aquecimento (com
a dinâmica selecionada), ideação (com a geração das ideias) e encerramento
(com o agrupamento das ideias). Opcionalmente, pode ser realizada, na última
etapa, uma breve análise ou votação das melhores ideias.
Algumas questões devem ser observadas para que o brainstorming seja realizado
com sucesso:
o brainstorming não se aplica a grupos muito fechados e formais;
o clima precisa ser descontraído e não pode haver críticas, julgamentos e gozações,
pois isso inibe o fluxo de ideias;
quando o grupo for muito grande, o ideal é dividi-lo em subgrupos com não mais
do que 8 pessoas cada (o número depende do contexto e dos perfis).
Seleção de técnicas de elicitação de requisitos de software 15
Observação
Como o próprio nome sugere, esta é uma técnica na qual o analista de requi-
sitos vai a campo para poder observar como o trabalho ocorre. Esta técnica
utiliza os sentidos na obtenção de determinados aspectos da realidade. Não
consiste apenas em ver e ouvir, mas em examinar fatos ou fenômenos que se
deseja estudar.
A observação pode ser usada para confirmar informações obtidas das
entrevistas, questionários ou documentos, comparando-as com a realidade.
Pode-se levantar volumes, acessar outras fontes de informações (manuais de
procedimentos etc.) e levantar o fluxo de documentos ao longo das tarefas.
Ela é capaz ainda de ajudar a ter ideias sobre pontos nos quais o novo software
pode reduzir gargalos e minimizar trabalhos realizados de forma manual.
A principal limitação da observação é a interferência, mesmo que não
intencional, no ambiente de trabalho. A presença de um observador sempre
provoca perturbações nas pessoas, o que pode alterar as condições reais em que
o trabalho é realizado, por mais discreto que seja o observador. Outra questão
importante é que o observador tem seu próprio ponto de vista, ou seja, a sua
ótica pessoal, e pode tender a criar impressões favoráveis ou desfavoráveis.
Pode haver eventos que ocorrem ocasionalmente e sua ocorrência espontânea
não pode ser prevista, o que impede, muitas vezes, o observador de presenciar
o fato. E, uma última limitação, é que a observação consome tempo e certa-
mente não será viável para ser utilizada em cada tarefa que o usuário realiza.
O tempo de duração de uma observação pode variar, de acordo com o que
se pretende observar. É importante certificar-se que o fenômeno que se deseja
observar irá ocorrer durante o período da observação. Se a necessidade for
de observar algo que ocorre apenas em momentos de pico, por exemplo, é
necessário que sejam identificados os períodos em que esses picos tendem a
acontecer, para que o observador possa estar presente.
O observador deve tomar notas de forma discreta, buscando não despertar
nas pessoas a sensação de estarem sendo vigiadas. Gravações de áudio e vídeo
só podem ser realizadas com autorização.
Há casos em que é possível realizar uma observação menos passiva e mais
ativa, na qual uma interação com o executor da tarefa é possível. Isso pode ser
útil para compreender por que ele tomou aquela decisão naquele momento e
com base em que informações a decisão foi tomada.
16 Seleção de técnicas de elicitação de requisitos de software
A observação requer um olhar atento e muita discrição. Eis o que você deve observar
no ambiente:
Como ocorre o fluxo de atividades entre os participantes do processo?
Existem momentos de pico de atividades?
Existem problemas causados pela tecnologia ou pela ausência dela?
O que acontece quando a tecnologia falha (cai a rede, por exemplo)?
Quais são os fluxos alternativos e casos que requerem um tratamento especial?
Questionário
A técnica de questionário, também conhecida como survey ou pesquisa de
opinião, nada mais é do que a aplicação de um instrumento na forma de ques-
tionário, que tem por objetivo coletar informações de fontes, que podem ser em
grande volume e estar distantes fisicamente. O questionário pode ser a porta
de entrada para outras técnicas, por exemplo, levantando as principais dores
dos usuários com o processo ou o sistema atual (WIEGERS; BEATTY, 2013).
O questionário é composto por um conjunto de perguntas com respostas
objetivas ou abertas, dispostas em sequência lógica e progressiva. O objetivo
do questionário é obter informações que servirão de base para tratamentos
estatísticos. Lembre-se de que, se forem poucas pessoas, talvez seja melhor
realizar uma entrevista. Tenha em mente também que os questionários são
frios e impessoais e não permitem a mesma riqueza de outras técnicas.
Embora, à primeira vista, possa parecer que utilizar um questionário seja
uma atividade simples, na realidade, não é. Elaborar questões é uma tarefa que
exige conhecimento e experiência. Primeiro, porque as pessoas não gostam
de responder questionários e, portanto, ele deve ser curto e fácil de responder.
Segundo, porque exige habilidade para não introduzir viés e nem direcionar
as respostas. E, por fim, as perguntas devem permitir que sejam obtidas as
informações que o analista de requisitos necessita efetivamente.
A preparação do questionário envolve elaborar as questões, estimar o tempo
de resposta, simular previamente as análises e realizar um teste piloto. Esse
teste piloto deve permitir identificar se as pessoas conseguem compreender
adequadamente o que está sendo perguntado e se o tempo de preenchimento
está compatível com o estimado. Ajustes podem ser feitos após o teste piloto.
Seleção de técnicas de elicitação de requisitos de software 17
Para aumentar as chances de sucesso do seu questionário, fique atento a estas dicas:
adicione uma breve introdução, que esclareça os pontos principais;
utilize uma linguagem clara e simples para elaborar as perguntas;
utilize frases concisas, sem prejudicar o entendimento da questão;
utilize termos que evitem a dupla interpretação;
dê preferência para as questões objetivas e que possam ser facilmente tabuladas,
fornecendo conclusões objetivas sobre o trabalho em andamento;
revise se as alternativas cobrem todas as possibilidades que deseja investigar;
não deixe um espaço muito grande para as respostas das questões abertas,
de modo a evitar longos discursos do respondente;
utilize perguntas encadeadas (para testar a coerência das respostas) e perguntas
complementares (fará esgotar o assunto).
Outras técnicas
As técnicas descritas até aqui se aplicam à elicitação de requisitos realizada
quando existem classes de stakeholders que podem ser representadas por uma
pessoa, com a qual se pode fazer contato direto (como entrevistas e reuniões)
ou indireto (como no caso do questionário). Existem ainda outras técnicas
derivadas do design thinking que podem ser utilizadas quando as fontes são
humanas, mas elas não serão objeto deste capítulo.
Existem alguns tipos de requisitos que são provenientes de outras fontes não
humanas, como, por exemplo, leis ou normativas de órgãos regulamentado-
res. No segmento bancário, por exemplo, temos as normativas provenientes
do Banco Central, do Conselho Monetário Nacional, da Comissão de Valores
Mobiliários (CVM) etc. Temos ainda órgãos que regulamentam outros setores
como a Agência Nacional de Saúde (ANS), a Agência Nacional de Teleco-
municações (ANATEL), a Agência Nacional de Energia Elétrica (ANEEL) e
diversos outros. Essas leis ou normativas precisam ser lidas e interpretadas pelo
18 Seleção de técnicas de elicitação de requisitos de software
(Continua)
Seleção de técnicas de elicitação de requisitos de software 19
(Continuação)
Análise de documentos
Análise de interface
Análise de interface
Questionário
Grupo Focal
Observação
de sistemas
Entrevista
de usuário
Workshop
Software para o mercado × × ×
Melhorias em sistemas × × × × ×
existentes
Novo software × × ×
Implementação de × × × × ×
pacote de software
Sistemas embarcados × × × ×
Stakeholders distribuídos × × ×
geograficamente
BOURQUE, P.; FAIRLEY, R. SWEBOK: guide to the software engineering body of knowledge
version 3. [S. l.]: IEEE Computer Society, 2014.
LEFFINGWELL, D. Agile software requirements: lean requirements practices for teams,
programs, and the enterprise. Upper Saddle River: Pearson Education, 2011.
POHL, K.; RUPP, C. Requirements engineering fundamentals: a study guide for the certified
professional for requirements engineering exam, foundation level, IREB Compliant. 2.
ed. Santa Barbara: Rock Nook, 2015.
SCHWABER, K.; SUTHERLAND, J. Guia do SCRUM: um guia definitivo para o SCRUM:
as regras do jogo. [S. l.], 2013. Disponível em: [Link]
scrumguide/v1/[Link]. Acesso em: 31 jan. 2020.
WIEGERS, K. E.; BEATTY, J. Software requirements. 3. ed. Redmond: Microsoft Press, 2013.
Leitura recomendada
PRESSMAN, R.; MAXIM, B. Engenharia de software: uma abordagem profissional. 8. ed.
Porto Alegre: AMGH, 2016.
Dica do professor
Uma das maiores causas de fracasso em projetos de software é a condução indevida das atividades
relacionadas à Engenharia de Requisitos. A mais crítica destas etapas é, certamente, a elicitação de
requisitos. Diversas são as técnicas que podem ser utilizadas para descobrir os requisitos de um
produto de software. O JAD (Joint Application Design ou Joint Application Development) é uma
destas técnicas. Ela visa reunir os stakeholders relevantes do projeto em torno de um mesmo
objetivo: elicitar os requisitos do projeto, reduzindo as possíveis falhas de comunicação e
interpretação.
Nesta Dica do Professor, você irá conhecer um pouco mais sobre o JAD e compreenderá sua
importância em projetos de software.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Na prática
Um dos cuidados que um Analista de Requisitos deve ter para elicitar os requisitos de um projeto
de software é selecionar adequadamente a técnica que será utilizada. Isso depende das
características do projeto e do contexto no qual ele será desenvolvido. Quando o projeto é
inovador e se busca por soluções criativas, uma boa ideia é utilizar o brainstorming.
Confira, Na Prática, alguns dos desafios que envolvem a atividade de conduzir uma sessão de
brainstorming.
Conteúdo interativo disponível na plataforma de ensino!
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Engenharia de Software
Leia o livro a seguir e aprofunde seus conhecimentos a respeito desta unidade de aprendizagem.