Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Elicitação de Requisitos
A elicitação de requisitos corresponde a identificar junto aos clientes, usuários e outros envolvidos quais são os
objetivos do sistema ou produto, o que deve ser acompanhado, como o sistema ou produto se encaixa no contexto
das necessidades do negócio e, finalmente, como será a utilização do sistema ou produto no dia-a-dia.
“A parte mais árdua na construção de um software consiste exatamente em identificar ’o que’ construir.
Nenhuma outra parte do trabalho compromete tanto o resultado do trabalho se elaborado de forma
incorreta. Nenhuma outra parte oferece tanta dificuldade para efetuar correções posteriores.” – Fred
Brook
Apesar de parecer simples, trata-se de um processo extremamente complexo. Algumas das razões desta dificuldade:
• Problemas de escopo: os limites do sistema são geralmente definidos de forma incompleta, ou os
clientes/usuários especificam detalhes técnicos desnecessários que podem confundir (ao invés de
esclarecer) os objetivos gerais do sistema;
• Problemas de compreensão: os clientes/usuários:
• Não estão completamente certos das necessidades;
• Têm uma compreensão pobre das capacidades e limitações de seu ambiente computacional;
• Não possuem uma compreensão plena do domínio do problema;
• Têm problemas comunicando suas necessidades aos engenheiros de software;
• Omitem informações que julgam óbvias;
• Especificam requisitos conflitantes com necessidades de outros clientes/usuários;
• Especificam requisitos ambíguos ou instáveis;
• Problemas de volatilidade: os requisitos mudam o tempo todo.
“Fatos não deixam de existir porque são ignorados.” – Aldous Huxley
Para auxiliar a superar estes problemas, os engenheiros de sistema devem abordar os requisitos de maneira
organizada. Alguns passos são sugeridos para elicitação de requisitos:
• Avaliar a viabilidade técnica e de negócio para o sistema proposto;
• Identificar as pessoas que vão auxiliar a especificar os requisitos e compreender seus preconceitos
organizacionais;
• Definir o ambiente técnico3 no qual o sistema será instalado;
• Identificar “regras de domínio4” que limitam a funcionalidade ou performance do sistema ou produto que
será construído;
• Definir um ou mais métodos de elicitação de requisitos5;
• Solicitar participação de várias pessoas para que os requisitos sejam definidos a partir de diversos pontos de
vista;
• Identificar claramente a justificativa de existência para cada requisito registrado;
• Identificar requisitos ambíguos que serão candidatos a prototipação.
Os produtos de trabalho a criar como conseqüência das atividades de elicitação de requisitos irão depender do
tamanho do sistema ou produto que será construído. Para a maioria dos sistemas, estes produtos de trabalho incluem:
• As necessidades e viabilidade estruturadas;
• O limite de escopo do sistema ou produtos;
• Uma lista de clientes, usuários e outros stakeholders que participaram da atividade de elicitação de
requisitos;
• Uma descrição do ambiente técnico do sistema;
• Uma lista de requisitos e as regras de domínio aplicáveis a cada um;
• Um conjunto de cenários de uso capazes de prover uma idéia do uso do sistema ou produto sob diferentes
condições de operação;
• Qualquer protótipo que eventualmente tenha sido desenvolvido para melhor definir os requisitos.
Cada um destes produtos deve ser revisado por todas as pessoas que tenham participado da elicitação de requisitos.