Escolar Documentos
Profissional Documentos
Cultura Documentos
Usurios e Requisitos
A hundred objective measurements didn't sum the worth of a garden;
only the delight of its users did that.
Only the use made it mean something.
Lois McMaster Bujold, A Civil Campain, 1999
Stakeholders
Requisitos Funcionais
Requisitos No Funcionais
Descrevendo Requisitos
Elicitao de Requisitos
Entrevistas e JAD
I.1
Stakeholders e Usurios
Em ingls, requirement, o que levou alguns tradutores a usar o termo requerimentos, considerado
inadequado.
Objetivo
Interesse
Prioridade
Cliente
Fazer pedido
Receber o
produto pedido
Cliente
Obter status do
pedido
Prever o prazo de
chegada do
pedido
Gerente
Obter lista de
pedidos diria
Saber a produo
diria
I.2
entendem facilmente esses conceitos quando traduzidos para portugus mais simples,
como entrada de dados e entrada de comandos.
A figura a seguir mostra uma forma um pouco antiga, mas muito utilizada at hoje
para definir as fronteiras de um sistema: um Diagrama de Fluxo de Dados, em seu modo
contextual.
I.3
O que um Requisito
Segundo a norma IEEE Std 610.12-1990, um requisito
O sistema dever avisar que a rede est fora do ar em 204 segundos aps
a rede sair do ar.
Conciso, de forma que cada requisito defina apenas um requisito que deve
ser feito e apenas o que deve ser feito, de maneira clara e simples.
o Um requisito, para ser conciso, no inclui explicaes, motivaes,
definies ou descries do seu uso.
o Estes textos podem ser mantidos em outros documentos, apontados
pelo requisito (de preferncia sob o controle de um sistema de
gerncia de requisitos).
Alm desses requisitos, quando um requisito for funcional, dever ser tambm
Independente da Implementao, ou seja, o requisito define o que deve ser feito, mas
no como.
2
3
http://www.stsc.hill.af.mil/crosstalk/2005/04/0504Jones.html
Mesmo que muitas vezes requisitos supostamente estveis mudem, mas no h como nos prepararmos de
forma economicamente vivel para essa alterao.
I.4
Requisitos e Necessidades
objetivo funcional, metas de negcio, que visam determinar como ser a soluo para
problemas especficos.
Muitas vezes o analista se depara com a necessidade de, antes de definir requisitos,
definir propriamente qual o problema a ser tratado. Para isso, deve fazer com que os
clientes cheguem a um acordo sobre qual o verdadeiro problema, ou o problema mais
importante. Faz pouco sentido construir um sistema se o verdadeiro problema de negcios
no for endereado pela soluo planejada.
Para analisar o problema, necessrio que os usurios:
I.5
Tipos de Requisitos
Requisitos
No Funcionais
Requisitos
do
Produto
Requisitos
de
Usabilidade
Requisitos
de
Confiabilidade
Requisitos
de
Eficincia
Requisitos
de
Desempenho
Requisitos
da
Organizao
Requisitos
De
Prazo
Requisitos
de
Portabilidade
Requisitos
de
Implementao
Requisitos
de
Espao
Requisitos
Externos
Requisitos
de Interoperabilidade
Requisitos
De
tica
Requisitos
De
Padronizao
Requisitos
Legais
Requisitos
de
Privacidade
Requisitos
de
Segurana
Esse texto tem como foco requisitos funcionais e requisitos de informao. Ainda
no existe uma forma plenamente aceita de tratar requisitos no funcionais, mas o leitor
interessado poder encontrar diferentes mtodos, a maioria incipiente, na literatura de
Engenharia de Software.
Alguns requisitos no funcionais, quando negados, geram um anti-requisito que
nunca seria pedido por um cliente. Por exemplo, um requisito no funcional comum que
o software seja confivel. Ningum pediria para ser construdo um software no
confivel, porm diferentes clientes esto interessados em diferentes nveis de
confiabilidade e diferentes formas de certificar esse nvel. Deve ser levado em conta que
quanto mais esforo colocado para se alcanar um requisito, maior o custo agregado ao
projeto e isso servir como referncia para o cliente escolher o grau de confiabilidade que
deseja. Por isso um requisito deve ser verificvel. O requisito robusto, por exemplo,
pode ser medido por meio do MTBF4 do sistema.
Outros tipos de Requisitos
James e Susan Robertson [B9] identificam mais trs tipos de requisitos: restries
de projeto, temas de projeto e impulsionadores de projeto.
I.6
Descrevendo Requisitos
Exemplos de Requisitos
A seguir listamos alguns exemplos de requisitos bem descritos, seguindo o estilo
de exemplos originais de Karl Wiegers 6:
Alguns autores sugerem que o verbo esteja no presente. Na verdade, isso pode causar alguma confuso no
leitor de um sistema a ser feito, pois a leitura dar a idia que o sistema j faz. Alm disso, pode haver a
confuso entre o sistema a ser feito com o sistema a ser substitudo.
6
Nmero identificador,
o para facilitar a discusso, identificamos todos os requisitos
unicamente.
Tipo
o Classificando-o como funcional, no funcional,...
Descrio
o Sentena que descreve o evento
Justificativa
Fonte do requisito
o A pessoa ou o grupo que o originou
Critrio de aceitao
o Uma medida que possa ser usada para garantir que o requisito foi
alcanado.
Satisfao do usurio
o Um grau, de 1 (nenhum interesse) a 5 (extremamente satisfeito), por
exemplo, indicando a satisfao do cliente se esse requisito for
alcanado.
Insatisfao do usurio
o Um grau, de 1 (nenhum interesse) a 5 (extremamente insatisfeito),
por exemplo, indicando a satisfao do cliente se esse requisito no
for alcanado.
Dependncias
o Referncias a outros requisitos que dependem de alguma forma
desse requisito
Conflitos
o Referncia aos requisitos que de alguma forma conflitam com esse
Material de apoio
Histrico
Dependncia de Requisitos
importante notar que os requisitos no so independentes uns dos outros. Muitos
requisitos s podem ser implementados se outros requisitos forem implementados antes.
Por exemplo, impossvel fazer um relatrio de vendas sem que se cadastrem as vendas
previamente no sistema. Uma das atividades mais importantes da gerncia de requisitos
manter esse relacionamento de dependncia, que influenciar em todo desenvolvimento e
Processo do sistema.
http://www.volere.co.uk/template.htm
Para isso existem algumas solues possveis. Uma delas manter uma tabela de
dependncia de requisitos, outra manter um banco de dados de requisitos que inclua
relaes de dependncia. Existem alguns produtos no mercado especializados na gerncia
de requisitos.
Priorizando Requisitos
Existe uma tendncia grande de o sistema crescer muito durante a anlise.
Principalmente se entrevistamos um grande nmero de pessoas, existe uma facilidade
natural das pessoas para propor novas funcionalidades para um sistema que ainda no
existe, por imaginarem alguma utilidade nessas funes propostas.
Assim, muitas vezes nos vemos envolvidos com uma quantidade de requisitos to
grande que bvio que o sistema a ser feito no poder ser entregue no prazo ou pelo custo
combinado, ou que se pensava em combinar.
Nesse caso, algumas tcnicas podem ser utilizadas para caracterizar o que deve ser
realmente feito ou, pelo menos, em que ordem as coisas devem ser feitas.
A primeira tcnica disponvel associar a cada requisito do sistema uma
importncia. Uma escala de trs ou cinco valores adequada para isso, como em:
Imprescindvel para o sucesso do sistema, Funcionalidade Importante, mas podemos
esperar algum tempo, Ajudaria ter, mas possvel viver sem essa funcionalidade,
Benefcios mnimos, Desnecessrio.
A segunda tcnica disponvel planejar o sistema para ser entregue em vrias
verses, mesmo que nem todas as verses estejam includas nesse contrato, e pedir para o
cliente determinar que funcionalidades devem aparecer em cada verso. Nesse caso pode
ser interessante dar um peso ou custo para cada requisito, de modo que o cliente possa
controlar seus gastos.
Uma terceira tcnica disponvel dar uma moeda virtual para o cliente, por
exemplo, 1000 dinheiros, e pedir para ele distribuir quanto pagaria por cada funo,
priorizando no desenvolvimento aquelas funes que o cliente decidir pagar mais.
Todas essas tcnicas, porm, ficam dependentes de uma outra priorizao
importante dos requisitos: a priorizao por dependncia.
Devem ser levados em conta os vrios fatores que influenciam nessa determinao
de prioridades, entre eles os citados por [B13]:
Questionando os requisitos
Em vrios momentos do projeto, importante tratar a lista de requisitos como uma
lista a ser abertamente questionada. Para isso devemos analisar as caractersticas desejadas
dos requisitos (Seo I.3.1 ) e verificar, para cada requisito, se elas so verdade. Alm
disso, devemos tambm analisar de que forma os requisitos respondem as perguntas 5W2H
(Who, When, Where, What, Which, How, How much). Se o requisito passar por todos os
questionamentos, temos um requisito muito bom. Se falhar em alguns, pode ser que no
seja o momento ainda no projeto ou que a pergunta no seja pertinente, porm deve ser
analisado cada caso.
Os maiores problemas sempre sero encontrados na ambigidade dos requisitos.
Qualquer ambigidade um risco, porm no incio do projeto a ambigidade necessria,
pois decises importantes ainda no foram tomadas. Cabe ao analista saber em que p
est o projeto e qual o nvel de detalhe adequado aos requisitos.
I.7
A Especificao de Requisitos
IEEE, IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Specications
I.8
idem
O mesmo acontece na investigao que um analista tem que fazer com o cliente em
busca do requisito. Inicialmente o cliente ser ambguo, generalista e paulatinamente, com
a ajuda do analista, dever chegar a uma especificao precisa do que deseja.
Uma receita geral para o levantamento de requisitos pode ser dada em 5 passos:
1. Identificar quem fornecer os requisitos
2. Levantar lista de desejos para estas pessoas
3. Refinar cada lista de desejos at que seja auto-consistente
4. Integrar as listas de desejos de forma que sejam consistentes
5. Determinar os requisitos no funcionais.
Apesar de tudo, no uma tarefa fcil levantar os requisitos. Muitos problemas
podem acontecer. comum que stakeholders no saibam exatamente o que querem ou no
saibam articular propriamente suas idias, especialmente quando o desenvolvedor no
possui o linguajar tpico da rea de aplicao (jargo). Muitas vezes, tambm, os
desenvolvedores pensam entender melhor do problema que seus clientes, propondo
supostas melhorias que afetam custo e aumento o risco dos sistemas propostos.
Processo de elicitao de requisitos
A elicitao de requisitos pode ser modelada em um processo como o proposto por
Christel e Kang, apresentado nas figuras a seguir.
Busca de Fatos
Coleta e Classificao
de Requisitos
Racionalizao e
Avaliao
Priorizao
Integrao e
Validao
Busca de Fatos
Coleta e Classificao
dos Requisitos
Racionalizao e
Avaliao
Priorizao
Integrao e Validao
Atividade
I.9
Entrevista Aberta
Esse tipo de entrevista evita muitos dos problemas dos questionrios, porm
tambm cria outros. O entrevistador formula uma questo e permite que o entrevistado
responda como quiser. O entrevistador pode pedir mais detalhes, mas no determina os
termos da entrevista. Permanecem, entretanto, as questes: as perguntas podem ser
respondidas? A resposta faz parte do repertrio normal do discurso do entrevistado? H
muitas coisas que as pessoas sabem fazer, mas tem dificuldade de descrever, como h
tambm o conhecimento tcito, que de difcil elicitao.
Os benefcios das entrevistas abertas so: a ausncia de restries, a possibilidade
de trabalhar uma viso ampla e geral de reas especficas e a expresso livre do
entrevistado.
H desvantagens tambm. A tarefa de entrevistar difcil e desgastante. O
entrevistador e o entrevistado precisam reconhecer a necessidade de mtua colaborao ou
o resultado no ser o desejado. H falta de procedimentos padronizados para estruturar as
informaes recebidas durante as entrevistas. A anlise da informao obtida no trivial.
difcil ouvir e registrar simultaneamente; principalmente, porque h fatos que s tomam
importncia depois de outros fatos serem conhecidos, e a ele j no foi registrado. Da a
importncia da gravao e da respectiva transcrio; fica mais fcil selecionar e registrar o
que relevante e validar com o entrevistado.
So exigncias para o relacionamento entre os participantes de uma entrevista:
respeito ao conhecimento e habilidade do especialista; percepo de expresses no
verbais; sensibilidade s diferenas culturais; cordialidade e cooperao.
Entrevista Estruturada
A entrevista estruturada extrai informaes sobre perguntas especficas. Nesse tipo
de entrevista, importante entrevistar a pessoa certa. uma boa tcnica para ser usada
aps uma pesquisa com questionrio, quando possvel selecionar, entre as respostas, as
partes interessadas com maior potencial de gerao de outras informaes. Suas vantagens
so: Respostas diretas, com menos ambigidade, informao detalhada. Sua desvantagem
bsica que as questes relevantes precisam ser identificadas com antecedncia.
O processo da entrevista
O processo de entrevista no se resume ao ato especfico da entrevista. Na verdade
ele comea muito antes e acaba muito depois. O processo normal da entrevista inclui:
1. Determinao da necessidade da entrevista
2. Especificao do objetivo da entrevista
3. Seleo do entrevistado
4. Marcao da entrevista
A linguagem
Realizando a entrevista
O objetivo normal de uma entrevista conseguir informaes do entrevistado, para
isso devemos fazer no s que o usurio fale, mas tambm que ele pense. importante
para o entrevistador no assumir nada e no fazer pr-julgamentos, caso contrrio correr
o risco de fazer uma entrevista viciada.
O entrevistador deve manter o controle o assunto da entrevista. No deixe o
entrevistador mudar de assunto ou tergiversar, mantendo suas perguntas direcionadas para
o objetivo da entrevista.
As duas principais armas do entrevistador so a pergunta e o silncio. Para
perguntar devemos ter conscincia do tipo de pergunta que escolhemos. Se quisermos que
o usurio explique algo, ento devemos utilizar uma pergunta aberta. Isso muito comum
em entrevistas abertas no incio da anlise.
O importante fazer o usurio pensar, para isso, o entrevistador deve evitar
perguntas que contenham a prpria resposta ou as que podem ser respondidas apenas com
um sim ou no. As perguntas fechadas devem ser utilizadas para tirar dvidas do
entrevistador. Use questes comeando com quem, qual, quando, onde, porque
e como sempre que possvel. Tente completar o ciclo (quem qual quando onde
porque como) para todos os assuntos.
Em dvida, pergunta novamente de outra forma. O entrevistador deve pedir que
processos complicados sejam explicados mais de uma vez, preferencialmente sob
perspectivas diferentes. Desenh-los em quadros brancos ou em papel pode ser uma boa
soluo para eliminar qualquer dvida.
importante estabelecer exemplos concretos para o que est sendo descrito pelo
usurio. Tambm, em caso de uma dvida, melhor descrever um exemplo concreto (o
que aconteceria se ...) do que uma dvida abstrata. O entrevistador deve estar consciente
que muito difcil encontrar um entrevistado capaz de raciocinar plenamente de forma
abstrata sobre um problema. Mesmo nesse caso, normalmente a forma abstrata se resume
ao caso perfeito, sendo que as excees so melhores explicadas com exemplos.
No tenha pressa, no responda pelo entrevistado. No se preocupe com a demora
para responder ou o silncio. O silncio, inclusive, uma boa ttica para fazer o
entrevistado continuar falando. Deixe o entrevistado pensar, olhe para ele curiosamente.
Antes de mudar de assunto, verifique sua compreenso, explicando de forma
resumida o que acabou de ouvir. Isso permite ao entrevistado pensar e dar uma clarificao
se necessrio
Esteja atento para a ausncia de crticas por parte do candidato. Isso pode ser
causado pela falta de confiana do entrevistado em voc ou porque o problema
constrangedor demais para ser tratado. O analista deve constatar esse fato no processo de
anlise, mas no durante a entrevista.
As interrupes causadas por fatores externos (telefone, pessoas que entram e que
saem, etc.) podem ser importantes em um processo de entrevistas. Se uma entrevista for
prejudicada por muitas interrupes, isso deve ficar no relatrio da entrevista.
No relatrio, tambm devemos separar o que fato do que opinio.
O Comportamento do Entrevistador
Esteja atento ao prprio comportamento. Lembre-se que no importa sua inteno
ao fazer ou deixar de fazer algo, mas a interpretao que o entrevistado dar ou que fizer
ou no fizer.
No passado era comum que consultores sempre se vestissem de terno, at mesmo
apenas ternos escuros. A maioria das empresas hoje utiliza um cdigo de vestimenta mais
informal. A regra mais atual que o entrevistador ou consultor tome cuidado para no
provocar um grande desnvel entre a sua roupa e a roupa do entrevistado ou cliente, se
adaptando as normas de vestimenta do cliente (ou do mercado ao qual o cliente pertence).
10
As regras de etiqueta consideram a gua a nica coisa que pode ser pedida em qualquer situao.
Nome do entrevistador
Cargo do entrevistador
Nome do entrevistado
O objetivo da entrevista
importante notar que o relatrio da entrevista deve ser aceito pelo entrevistado.
normal o entrevistado remover alguma coisa ou colocar algo a mais. O analista deve ficar
atento aos motivos do usurio em fazer modificaes.
Se houver discusso quanto interpretao de algo e o analista achar essencial
manter sua verso no relatrio, deve tambm permitir que o entrevistado coloque sua
verso.
As perguntas de concluso
Ao final da entrevista, importante realizar uma avaliao da percepo do
entrevistado sobre a entrevista que acabou de ser realizada. Para isso necessrio que seja
respondido um formulrio, contendo perguntas como:
Voc acha que essa entrevista cobriu tudo que era necessrio?
Voc acha que era a pessoa mais certa para responder essas perguntas?
JAD
Outra tcnica importante de elicitao de requisitos, que merece um tratamento
separado, o JAD.
Muitas vezes, quando um grupo de informtica entrega um sistema de informao
aos seus clientes escuta a frase: no era isso que eu queria! Isto acontece porque os
desenvolvedores no conseguiram levantar com os usurios suas verdadeiras necessidades.
Este problema de comunicao pode ter diversas causas: linguagem especializada
de ambas as partes, desconhecimento da rea de atuao pelos desenvolvedores,
preocupaes com a tecnologia empregada ao invs das necessidades dos usurios, etc. Na
fase inicial do projeto, a dificuldade de comunicao entre clientes e equipe de
desenvolvimento a principal causa de defeitos que sero encontrados no produto final.
Para enfrentar os problemas de comunicao entre desenvolvedores e usurios,
foram desenvolvidos, ao final da dcada de 1970, vrios mtodos onde o desenvolvimento
de sistemas baseado na dinmica de grupo.
Na forma tradicional de desenvolver sistemas os analistas entrevistam os usurios,
um aps outro, tomando notas que so mais tarde consolidadas e ento validadas com o
usurio, finalmente se transformando em um documento de anlise.
O JAD, Joint Application Design, ou Mtodo de Projeto Interativo, substitui as
entrevistas individuais por reunies de grupo, onde participam representantes dos usurios
e os representantes dos desenvolvedores.
Quando o mtodo aplicado de forma correta, os resultados alcanados
ultrapassam os objetivos imediatos da obteno de informao dos usurios e cria um
ambiente de alta sinergia na equipe, onde todos se sentem comprometidos com as solues
encontradas. Esse comprometimento permite que todos se considerem proprietrios e
colaboradores no desenvolvimento do sistema.
O Objetivo do Mtodo
O objetivo do mtodo extrair informaes de alta qualidade dos usurios, em curto
espao de tempo, atravs de reunies estruturadas para alcanar decises por consenso.
Os Componentes
O lder de sesso tem como tarefa nmero um conduzir o grupo para solues de
consenso. Esse lder de sesso age como facilitador, um servidor neutro dentro do grupo
que no avalia nem contribui com idias. A responsabilidade do facilitador sugerir
mtodos e procedimentos que ajudem o grupo a concentrar energia em tarefas especficas,
garantindo a todos os membros do grupo condies de participar.
O documentador um auxiliar imparcial do lder de sesso, responsvel pelo
registro das decises e especificaes produzidas. Apenas as informaes relevantes so
documentadas, segundo orientao do lder de sesso.
O patrocinador detm a autoridade formal sobre as reas afetadas pelo sistema,
estabelecendo diretrizes e objetivos do projeto.
A equipe responsvel pelo contedo da sesso, representando as reas envolvidas
no projeto.
A Dinmica
A base de trabalho a equipe presente na reunio. Devemos combinar algumas
regras de jogo, de modo a alcanar o mximo de produtividade. natural que em um
grupo de 15 pessoas surjam discusses, conversas paralelas, interrupes, etc. Em respeito
ao tempo precioso dos participantes vamos necessrio estabelecer um cdigo de
cooperao.
O Ambiente
O Ambiente fsico da reunio fundamental para a produtividade dos trabalhos. Os
seguintes aspectos devem ser considerados:
Os participantes devem estar organizados de forma a poderem se olhar e olhar para
o lder de sesso. A melhor arrumao a em forma de U.
No devem acontecer interrupes aos participantes.
Todos devem cumprir a agenda, principalmente o incio e o fim da reunio.
O Consenso
A forma mais produtiva de deciso do grupo aquela obtida por consenso.
Consenso no a unanimidade de opinies, mas, sim, a situao em que cada membro
concorda que a soluo encontrada a melhor para o grupo e que possvel conviver com
ela sem ferir convices ou valores essenciais.
I.10 Exerccios
Projeto 1: Livraria ABC
Baseado em todos os textos disponveis sobre a Livraria ABC, faa:
1. Uma lista de requisitos funcionais preliminares