Você está na página 1de 19

Engenharia de Requisitos sejam embasadas em dados reais, e não em

“achismos”. Alguns de seus principais objetivos


Desenvolver software é uma atividade complexa são:
por natureza. Uma das razões para esta afirma-
ção é que não existe uma única solução para · Qualidade de software;
cada cenário de desenvolvimento. Além disso,
lidamos o tempo todo com pessoas, o que torna o · Produtividade no desenvolvimento, operação e
sucesso do projeto bastante relacionado à com- manutenção de software;
petência da equipe e à forma como trabalham, e,
para dificultar ainda mais, muitas vezes não fa- · Permitir que profissionais tenham controle sobre
zemos uso de um processo bem definido para o desenvolvimento de software dentro de custos,
apoiar as atividades do projeto. prazos e níveis de qualidade desejados.

Entende-se por processo, neste contexto, como Entretanto, o cenário de desenvolvimento de sof-
sendo um conjunto de atividades bem definidas tware atual e o cenário idealizado junto à enge-
com os respectivos responsáveis por execução, nharia de software ainda estão distantes. Vários
ferramentas de apoio e artefatos produzidos. Ou fatores contribuem para isso, podemos citar dois:
seja, define-se como a equipe deverá trabalhar
para alcançar o objetivo: desenvolver software · O não uso dos fundamentos da engenharia de
com qualidade dentro de prazos, custos e requisi- software para apoiar as atividades do desenvol-
tos definidos. vimento;

A boa notícia é que muitas empresas estão se · O mau uso dos fundamentos da engenharia de
movimentando no sentido de definirem detalha- software para apoiar as atividades do desenvol-
damente seus processos para apoiarem suas vimento.
atividades de desenvolvimento. Uma recente
Isso tem diversas consequências. Gostaríamos
matéria publicada na revista Exame relata o cres-
de destacar neste artigo o crescente custo com
cimento do número de empresas que atingiram
manutenção dos sistemas. Consideramos como
níveis de maturidade considerando modelos co-
manutenção neste artigo como sendo qualquer
mo MPS.BR e CMMI.
retrabalho (em nível de requisitos, projeto, codifi-
Este resultado é um forte indicador de que as cação, teste) causado por uma definição do do-
empresas nacionais estão se preocupando com a mínio do problema mal elaborada nas fases inici-
qualidade dos serviços que oferecem, conseguin- ais do desenvolvimento.
do, dessa forma, uma inserção maior no mercado
Neste ponto, é importante analisamos os dados
internacional de desenvolvimento de software.
da Tabela 1. Perceba que o custo das atividades
Neste artigo, faremos uma introdução à Engenha- relacionadas à análise de requisitos é baixo. Por
ria de Requisitos, atividade base para as demais outro lado, é nesta fase que grande parte dos
tarefas associadas ao desenvolvimento de sof- defeitos são inseridos. Podemos perceber ainda
tware. analisando a primeira linha que o custo de corre-
ção destes problemas nesta fase é baixo. Conti-
Engenharia de Software e Requisitos nuando a análise, percebemos que estes defeitos
não são tratados no momento devido, o que pode
Vimos na introdução que se busca cada vez mais aumentar bastante o custo com o projeto.
o apoio dos fundamentos da engenharia de sof-
tware no desenvolvimento de sistemas. Enten- Embora simples, esta análise nos permite concluir
demos engenharia de software como sendo, de que é importante que seja dada maior importância
acordo com o IEEE, a aplicação de uma aborda- às atividades relacionadas à especificação dos
gem sistemática, disciplinada e quantificável no requisitos do software.
desenvolvimento, operação e manutenção de
software. Sistemática por que parte do princípio
de que existe um processo de desenvolvimento
definindo as atividades que deverão ser executa-
das. Disciplinada por que parte do princípio de
que os processos definidos serão seguidos.
Quantificável por que se deve definir um conjunto
de medidas a serem extraídas do processo du-
rante o desenvolvimento de forma que as toma-
Tabela 1. Cenário atual de desenvolvimento.
das de decisão relacionadas ao desenvolvimento
do software (por exemplo, melhoria de processo)

1
Reforçando a importância que as atividades rela- Neste ponto, sabemos que um trabalho mais cri-
cionadas a requisitos devem possuir na indústria terioso na área de requisitos é fundamental para
de software, estudo realizado pelo Standish o sucesso de projetos de software. A partir da
Group, considerando 350 companhias e 8.000 próxima seção conheceremos a definição de re-
projetos de software, em 1995 revelou que quisitos e algumas de suas definições relaciona-
(ver Figura 1): das antes de discutirmos mais profundamente a
engenharia de requisitos.
· 16,2% dos projetos são finalizados com suces-
so, ou seja, cobre todas as funcionalidades em Requisitos
tempo e dentro do custo previsto;
Existem diferentes definições encontradas na
· 52.7% dos projetos são considerados problemá- literatura técnica para requisitos:
ticos, ou seja, não cobre todas as funcionalidades
exigidas, custo aumentado e está atrasado. · Um requisito é uma característica do sistema ou
a descrição de algo que o sistema é capaz de
· 31,1% dos projetos fracassam, ou seja, o projeto realizar para atingir os seus objetivos;
é cancelado durante o desenvolvimento.
· As descrições das funções e restrições são os
requisitos do sistema;

· Um requisito é uma propriedade que o software


deve exibir para resolver algum problema no
mundo real;

· Uma condição ou uma capacidade que deve ser


alcançada ou estar presente em um sistema para
satisfazer um contrato, padrão, especificação ou
outro documento formalmente imposto...

Percebe-se que as citações encontradas definem


o mesmo conceito sob diferentes perspectivas.
Tabela 2. Distribuição da conclusão dos projetos Podemos entender requisitos como sendo o con-
de software. junto de necessidades explicitadas pelo cliente
que deverão ser atendidas para solucionar um
O Standish Group ainda fez uma análise sobre os determinado problema do negócio no qual o clien-
fatores críticos para sucesso dos projetos de sof- te faz parte.
tware. O resultado dos dez mais lembrados pode
ser visto na Tabela 2. Podemos perceber que três É importante estar atento para esta definição:
dos principais fatores estão relacionados às ativi- embora o requisito seja definido pelo cliente, nem
dades de requisitos: (1) Requisitos Incompletos; sempre o que o cliente quer é o que o negócio
(2) Falta de Envolvimento do Usuário; (6) Mudan- precisa. Cabe à equipe de consultores identificar
ça de Requisitos e Especificações. a real necessidade do negócio.

Neste contexto, requisitos são importantes para:

· Estabelecer uma base de concordância entre o


cliente e o fornecedor sobre o que o software
fará;

· Fornecer uma referência para a validação do


produto final;

· Reduzir o custo de desenvolvimento (como vi-


mos anteriormente, requisitos mal definidos cau-
sam retrabalho).

Entendida a definição de requisitos, é preciso


conhecer seus tipos.

Requisitos Funcionais

2
São requisitos diretamente ligados a funcionali- · Processo de descobrir, analisar, documentar e
dade do software, descrevem as funções que o verificar as funções e restrições do sistema.
software deve executar. Alguns exemplos são:
Embora coerentes, estas definições podem ser
· O software deve permitir o cadastro de clientes; melhoradas. Perceba que elas referem-se apenas
às atividades relacionadas à produção de requisi-
· O software deve permitir a geração de relatórios tos. Entretanto, nada é dito a respeito da gerência
sobre o desempenho de vendas no semestre; destas atividades, também conhecida como ge-
rência de requisitos. Com isto em mente, pode-
· O software deve permitir o pagamento das com- mos evoluir a definição de engenharia de requisi-
pras através de cartão de crédito. tos para: termo usado para descrever as ativida-
des relacionadas à produção (levantamento, re-
Requisitos não Funcionais gistro, validação e verificação) e gerência (contro-
le de mudanças, gerência de configuração, ras-
São requisitos que expressam condições que o
treabilidade, gerência de qualidade dos requisi-
software deve atender ou qualidades específicas
tos) de requisitos. A Figura 3 representa essa
que o software deve ter. Em vez de informar o
definição.
que o sistema fará, os requisitos não-funcionais
colocam restrições no sistema. Alguns exemplos
são:

· O software deve ser compatível com os


browsers IE (versão 5.0 ou superior) e Firefox
(1.0 ou superior);

· O software deve garantir que o tempo de retorno


das consultas não seja maior do que 5 segundos.

Requisitos de Domínio

São requisitos derivados do domínio da aplicação


e descrevem características do sistema e quali- Figura 3. Engenharia de Requisitos.
dades que refletem o domínio. Podem ser requisi-
tos funcionais novos, restrições sobre requisitos Desta forma, os dois conceitos base (produção e
existentes ou computações específicas. Dois gerência) devem ser considerados em conjunto
exemplos de requisitos do domínio são: ao se definir estratégias de trabalho com requisi-
tos nas organizações (ver Figura 4).
· O cálculo da média final de cada aluno é dado
pela fórmula: (Nota1 * 2 + Nota2 * 3)/5;

· Um aluno pode se matricular em uma disciplina


desde que ele tenha sido aprovado nas discipli-
nas consideradas pré-requisitos.

A partir da próxima seção apresentaremos os


conceitos envolvidos na engenharia de requisitos.

Engenharia de Requisitos Figura 4. Produção e Gerência de Requisitos.


Existem diferentes definições encontradas na Neste ponto podemos citar alguns dos principais
literatura técnica para engenharia de requisitos: objetivos da engenharia de requisitos:
· Termo usado para descrever as atividades rela- · estabelecer uma visão comum entre o cliente e
cionadas à investigação e definição de escopo de a equipe de projeto em relação aos requisitos que
um sistema de software; serão atendidos pelo projeto de software;
· Processo sistemático de desenvolvimento de · registrar e acompanhar requisitos ao longo de
requisitos através de um processo cooperativo de todo o processo de desenvolvimento;
análise onde os resultados das observações são
codificados em uma variedade de formatos e a · documentar e controlar os requisitos alocados
acurácia das observações é constantemente veri- para estabelecer uma baseline para uso gerencial
ficada; e da engenharia de software;

3
· manter planos, artefatos e atividades de softwa- relacionados às atividades de gerência podem ser
re consistentes com os requisitos alocados. vistos na Figura 3.

Para apoiar o alcance destes objetivos, é impor- A partir de agora conheceremos cada um dos
tante que se tenha um processo de engenharia conceitos que, em conjunto, definem a engenha-
de requisitos bem definido. Um processo de en- ria de requisitos.
genharia de requisitos é um conjunto estruturado
de atividades a serem seguidas para criar, validar Produção de Requisitos
e manter um documento de requisitos. Poucas
organizações têm um processo de ER explicita- A cada fase do ciclo de vida do software produzi-
mente definido e padronizado. Entretanto, sugere- mos um documento contendo uma representação
se que cada organização deva desenvolver um distinta do software a ser construído. Cada um
processo adequado à sua realidade. A Figura desses documentos representa o software em um
5 apresenta um modelo genérico de atividades determinado nível de abstração. A tendência é
que pode descrever a maioria dos processos de diminuirmos o nível de abstração através da in-
engenharia de requisitos. Perceba que ele está clusão de mais e mais detalhes, até que, sua
concentrado nas atividades de produção dos re- última representação seja o código fonte na lin-
quisitos guagem escolhida.

Um dos artefatos produzidos no início do proces-


so de desenvolvimento de software é a sua espe-
cificação de requisitos. Ele é base para as demais
atividades de desenvolvimento e sua qualidade é
fundamental para o sucesso do projeto. Uma
especificação de requisitos bem elaborada é pré-
requisito para um software de qualidade, embora
não seja garantia disso. Desta forma, durante a
produção de requisitos devemos possuir, além
das atividades essenciais de levantamento e es-
pecificação, atividades relacionadas à garantia da
qualidade. Conheceremos nesta seção as quatro
Figura 5. Processo de Engenharia de Requisitos. atividades base relacionadas com a produção de
requisitos.
Apesar do aparente fluxo entre as atividades, não
existe uma fronteira explícita elas. Na prática Levantamento
existe muita sobreposição e interação entre uma
atividade e outra. Esta atividade relaciona-se à obtenção dos requi-
sitos do software. Para isto, analistas e engenhei-
Como entradas para o processo são considera- ros de software trabalham com clientes e usuários
das: finais para descobrir o problema a ser resolvido,
os serviços do sistema, o desempenho necessá-
· Descrições do que os stakeholders necessitam rio, restrições de hardware e outras informações.
para suportar suas atividades;
Existem algumas técnicas que apóiam as ativida-
· Informações a respeito do sistema que será des de levantamento de requisitos. Uma breve
substituído ou de qualquer sistema com o qual o descrição de algumas delas é:
sistema sendo definido terá que interagir;
· Entrevista: esta técnica resume-se em “conver-
· Padrões vigentes na organização a respeito de sas” realizadas com o usuário (entrevistado) para
práticas de desenvolvimento de sistemas, gerên- levantar os requisitos do sistema a ser desenvol-
cia de qualidade, etc.; vido. Podemos decompor esta técnica nas se-
guintes atividades:
· Regulamentos externos, tais como leis, regula-
mentos de segurança ou saúde;  Ler material de suporte;

· Informações gerais sobre o domínio de aplica-  Estabelecer os objetivos da entrevista;


ção.
 Decidir quem entrevistar;
Em paralelo à execução das atividades definidas
no processo da Figura 5, está o processo de  Preparar o entrevistado;
gerência dos requisitos, voltado ao endereçamen-
to de modificações nos requisitos. Os aspectos

4
 Decidir os tipos de questões e a sua estru- de Requisitos para o sistema com consenso de
tura. todos de forma a ser uma validação formal dos
requisitos do sistema.
Uma entrevista pode ser estruturada de três dife-
rentes formas: O JAD é divido quem quatro fases. A Figura
6 apresenta estas fases e os artefatos produzidos
- Estrutura em pirâmide: iniciamos as entrevistas por cada uma delas.
com perguntas mais especificas sobre o sistema
e fechamos com perguntas mais genéricas. Ge-
ralmente utilizadas com usuários mais relutantes;

- Estrutura em funil: iniciamos as entrevistas com


perguntas mais genéricas sobre o sistema e fe-
chamos com perguntas mais especificas. Geral-
mente utilizadas com usuários que tem uma rela-
ção mais afetiva com o assunto;

- Estrutura em diamante: esta estrutura combina


as duas estruturas anteriores e é utilizada para
manter a usuário entrevistado interessado no
assunto e para isto se utiliza de perguntas varia- Figura 6. Fases da técnica para levantamento de
das. requisitos JAD.

- Prototipação: é uma versão inicial de um A atividade de levantamento de requisitos não é


sistema para experimentação. Permite aos trivial. Existe um conjunto grande e variado de
utilizadores identificar os pontos fortes e fracos do fatores que a tornam complexa, por exemplo:
sistema por ser algo concreto que pode ser
criticado. Temos dois tipos de protótipos: - Falta de conhecimento do usuário das suas
reais necessidades
- Protótipos “Throw-away”: ajudam o levantamen-
to e desenvolvimento dos requisitos e suportam - Usuário com vaga noção do que precisa e do
os requisitos mais difíceis de perceber; que um produto de software pode oferecer.

- Protótipos Evolutivos: ajudam o desenvolvimen- - Falta de conhecimento do desenvolvedor do


to rápido de uma versão inicial do sistema e su- domínio do problema
portam os requisitos bem definidos e conhecidos.
- Desenvolvedor sem conhecimento adequado do
Algumas das desvantagens da prototipação são domínio, o que leva a decisões erradas.
os custos de aprendizagem e os custos de
desenvolvimento. - Domínio do processo de levantamento de requi-
sitos pelos desenvolvedores
- JAD (Joint Application Development): é uma
técnica que permite a interação entre pessoas - Desenvolvedor não ouve o que os usuários têm
que necessitam tomar decisões que afetem múlti- a dizer e força suas próprias visões e interpreta-
plas áreas de uma organização. Esta técnica ções.
envolve atividades de preparação para as reuni-
ões, sessões de workshop com os participantes, - Comunicação inadequada entre os desenvolve-
agenda para as reuniões, participantes assumin- dores e usuários
do papeis de facilitador / condutor e documenta-
- Usuários incapazes de expressar suas necessi-
dor além de facilidades visuais, como a utilização
dades apropriadamente;
de flipchart, quadro negro.
- Significados diferentes a termos comuns.
Esta técnica deve ser utilizada nos casos onde
existe a necessidade de consenso entre diversos - Dificuldade do usuário tomar decisões
usuários, pois possibilita a todos os envolvidos ter
uma visão global do sistema, ajudando a consoli- - Falta de entendimento sobre as consequências
dar interesses de diversos usuários quanto ao das decisões ou as alternativas possíveis.
sistema a ser desenvolvido.
- Problemas de comportamento
O objetivo desta técnica é aumentar o comprome-
timento e participação do usuário e obter subsí- - O levantamento de requisitos é um processo
dios para elaborar o documento de Especificação social;

5
- Conflitos e ambiguidades nos papéis que os Validação
usuários e desenvolvedores desempenham.
A validação representa a atividade em que obte-
- Questões técnicas mos o aceite do cliente sob determinado artefato.
No cenário de engenharia de requisitos, esta ati-
- Complexidade crescente dos sistemas atuais. vidade significa aprovar junto ao cliente os requi-
sitos que foram especificados. Embora aparente-
Registro mente simples, esta atividade pode ser bastante
dificultada pelo cliente ou mesmo por um proces-
Uma vez identificados e negociados, os requisitos so de validação inadequado utilizado pela empre-
devem ser documentados para que possam servir sa.
de base para o restante do processo de desen-
volvimento. Gerência de Requisitos
Entre os muitos problemas que enfrentamos na Requisitos são por natureza voláteis. Diversos
documentação de requisitos, certamente, admi- fatores contribuem para sua instabilidade ao lon-
nistrar o grande volume de informações gerado go do tempo. Mudanças externas no ambiente
pelo processo de requisitos é um dos principais. (mudanças de legislação, mudanças no mercado,
mudança no posicionamento estratégico da em-
Os requisitos são documentados em um nível presa), erros incorridos no processo de requisitos,
apropriado de detalhe. Em geral é produzido um entre outros. Todos esses fatores fazem com que
documento de especificação de requisitos, de seja necessário alterar os requisitos. Tais altera-
forma que todos os stakeholders possam enten- ções precisam ser conduzidas de forma ordenada
dê-lo. para que não se perca controle sobre o prazo e o
custo do desenvolvimento.
O registro dos requisitos num documento próprio
facilita o controle de alterações de todos os en- Denominamos a atividade de administrar os re-
volvidos na manutenção dos requisitos, bem co- quisitos ao longo do tempo de gerenciamento de
mo a geração de versões do documento e a faci- requisitos. Os benefícios desta atividade são per-
lidade de acesso por todos os envolvidos. cebidos no médio prazo, sendo que são necessá-
rios investimentos no curto prazo. Assim, a ativi-
Verificação
dade é, muitas vezes, tida como um fardo desne-
Esta atividade examina a especificação do sof- cessário à condução do processo. Contudo, sua
tware, de forma a assegurar que todos os requisi- não implementação faz com que as economias de
tos foram definidos sem ambiguidades, inconsis- curto prazo sejam logo suplantadas pelas despe-
tências ou omissões, detectando e corrigindo sas no longo prazo, verificadas com superação de
possíveis problemas ainda durante a fase de de- custo e prazo nos projetos conduzidos.
finição dos requisitos.
Veremos a partir de agora algumas das ativida-
Neste contexto, sabe-se que o custo da correção des que devem ser consideradas durante a ge-
de defeitos aumenta na medida em que o proces- rência dos requisitos.
so de desenvolvimento progride. Revisões de
Controle de Mudanças
artefatos de software têm se mostrado uma abor-
dagem eficiente e de baixo custo para encontrar Conforme foi citado anteriormente, os requisitos
defeitos logo após terem sido introduzidos, redu- são voláteis e, portanto, sofrem mudanças ao
zindo o retrabalho e melhorando a qualidade dos logo do tempo, para conduzir estas mudanças
produtos. Não é em vão que modelos de maturi- recomenda-se preparo e planejamento. Uma das
dade de processo de software, como o CMMI e o maneiras bastante utilizadas para organizar estas
MPS BR exigem a condução de revisões. mudanças é a “baseline” de requisitos que nos
permite diferenciar o que era o requisito original, o
Um tipo particular de revisão de software são as
que foi introduzido e o que foi descartado. Além
inspeções. Inspeções possuem um processo de
disto, é interessante estabelecer um único canal
detecção de defeitos rigoroso e bem definido. Os
para controle de mudanças, bem como utilizar um
benefícios de se aplicar inspeções são maiores
sistema para este controle.
para artefatos desenvolvidos no início do proces-
so, como o documento de requisitos. Conhece- Apresentamos a seguir uma sugestão de passos
remos um pouco mais sobre inspeção de softwa- que devem ser seguidos para um processo de
re em um segundo artigo a ser publicado na se- controle de mudança:
gunda edição da Engenharia de Software Maga-
zine. · Checar validade da solicitação de mudança;

6
· Identificar os requisitos diretamente afetados · tornando possível que sejam realizadas, mais
com a mudança; facilmente, avaliações sobre seu grau de evolu-
ção.
· Identificar dependências entre requisitos para
buscar os requisitos afetados indiretamente; Rastreabilidade

· Assegurar com solicitante a mudança a ser rea- No centro da atividade de gerenciamento de re-
lizada; quisitos está a rastreabilidade. Esta é definida
como a habilidade de se acompanhar a vida de
· Estimar custos da mudança; um requisito em ambas as direções (por exemplo:
partindo de requisitos e chegando a projeto ou,
· Obter acordo com usuário sobre o custo da mu- partindo de projeto e chegando a requisitos) do
dança. processo de software e durante todo o seu ciclo
de vida.
Após a realização desta análise, podemos aceitar
ou rejeitar a mudança, conforme os impactos e A dificuldade envolvida com a rastreabilidade está
custos que ela pode ter no sistema. no grande volume de informações gerado. As
informações do processo de requisitos devem ser
Gerência de Configuração catalogadas e associadas aos outros elementos
de forma que possam ser referenciadas através
Durante o ciclo de vida do desenvolvimento, o
dos diversos itens de informação registrados. É
software passa por uma série de modificações,
um trabalho extenso que, sem o auxílio de ferra-
desde a especificação dos requisitos até a im-
mentas adequadas, muito provavelmente não
plantação do sistema. A gerência de configuração
poderá ser feito
de software existe no intuito de definir critérios
que permitam realizar tais modificações manten- Para implementar a rastreabilidade, usualmente é
do-se a consistência e a integridade do software confeccionado em conjunto com a especificação
com as especificações, minimizando problemas de requisitos um artefato chamado matriz de ras-
decorrentes ao processo de desenvolvimento, treabilidade, que tem como objetivo mapear os
através de um controle sistemático sobre as mo- rastros dos requisitos descritos na especificação.
dificações.
Os rastros dos requisitos podem ser de dois tipos:
A criação de um plano de gerência de configura-
ção consiste em estabelecer normas, ferramentas · Pré-rastreabilidade: os rastros (artefatos: plano
e templates que permitam gerenciar de maneira de negócio, atas de reunião com o usuário) que
satisfatória os itens de configuração de um siste- fundamentaram a criação do requisito.
ma, que são definidos por Pressman como: “cada
um dos elementos de informação que são criados · Pós-rastreabilidade: os rastros (artefatos: códi-
durante o desenvolvimento de um produto de go, documentos) que se formaram a partir do
software, ou que para este desenvolvimento se- requisito criado.
jam necessários, que são identificados de manei-
ra única e cuja evolução é passível de rastrea- Gerência de Qualidade de Requisitos
mento”.
Segundo o padrão IEEE 830, devemos considerar
Em cada fase do processo de desenvolvimento, alguns critérios de qualidade ao trabalharmos
um conjunto bem definido de itens de configura- com requisitos:
ção deve ser estabelecido. A este conjunto é da-
do o nome de baselines. Estas baselines servem · Correção: um documento de requisitos é consi-
como marco no processo de desenvolvimento, derado correto se todos os requisitos represen-
pois ao final de cada fase é estabelecida uma tam algo que deve estar presente no sistema que
nova baseline e, portanto, todos os itens de confi- está sendo desenvolvido, ou seja, os requisitos
guração estão sob total controle de seus desen- reais do usuário devem coincidir com os requisi-
volvedores. Desta forma, nesta baseline é guar- tos identificados. Esta não é uma tarefa trivial e
dada “uma foto” dos artefatos criados até aquele parte de seu sucesso está associada a uma boa
momento: atividade de validação dos requisitos.

· tornando mais fácil realizar modificações nos · Não ambiguidade: um conjunto de requisitos é
artefatos de maneira controlada; não ambíguo quando somente pode ser interpre-
tado por todos os envolvidos em um projeto de
· possibilitando ter um controle sistemático sobre uma única maneira.
todos os itens de configuração abordados em
cada fase do ciclo de vida do software, e;

7
· Completude: um conjunto de requisitos é dito  Definição das prioridades: Em qualquer
completo quando descreve todas as demandas conjunto de requisitos, alguns serão mais impor-
de interesse dos usuários. Estas demandas inclu- tantes do que outros. Esse estágio envolve inte-
em requisitos funcionais, de desempenho, restri- ração com os stakeholders para a definição dos
ções, atributos e interfaces externas. requisitos mais importantes;

· Consistência: um conjunto de requisitos é dito  Verificação de requisitos: Os requisitos são


consistente se nenhum subconjunto destes requi- verificados para descobrir se estão completos e
sitos entra em conflito com os demais requisitos consistentes e se estão em concordância com o
do sistema. que os stakeholders desejam do sistema.

· Verificabilidade: um requisito é verificável se O levantamento e análise de requisitos é um pro-


existe uma forma efetiva, em termos de tempo e cesso iterativo, com uma contínua validação de
custo, para que pessoas ou ferramentas indiquem uma atividade para outra, conforme exemplificado
se um sistema cumpre o requisito (IEEE). Em pela Figura 1.
quase todas as situações, é difícil provar de forma
conclusiva que um requisito é cumprido por um
software. Entretanto, escrever bem o requisito
pode ajudar a aumentar a confiança na avaliação.

· Modificabilidade: um conjunto de requisitos é


modificável quando seu estilo e estrutura é tal que
as alterações podem ser realizadas de forma
simples e consistente com os demais requisitos.

A gerência, neste cenário, é responsável por


manter uma infraestrutura necessária para ativi-
dades de verificação que tornem possível investi- Figura 1. Processo de levantamento e análise de
garmos a qualidade dos requisitos que estamos requisitos (SOMMERVILLE, 2003)
definindo.
Dificuldades encontradas
Técnicas de Elicitação de Requisitos
O problema de não saber especificar corretamen-
O Levantamento de Requisitos de Software te o que o sistema deverá fazer é muito antigo.
Pompilho (1995) cita um exemplo do relatório
O início para toda a atividade de desenvolvimento produzido por McKinsey, em 1968, e mencionado
de software é o levantamento de requisitos, sen- por B. Langefords e B. Sundgren onde se afirma-
do esta atividade repetida em todas as demais va que dois terços das empresas ali estudadas
etapas da engenharia de requisitos. estavam desapontadas com o atendimento rece-
bido em sistemas de informação.
Sommerville (2003) propõe um processo genérico
de levantamento e análise que contém as seguin- Após mais de 30 anos da elaboração do relatório
tes atividades: a situação não é muito diferente. Algumas das
razões para o baixo grau de satisfação dos usuá-
 Compreensão do domínio: Os analistas
rios para os sistemas destacam-se:
devem desenvolver sua compreensão do domínio
da aplicação;  Na fase de levantamento de requisitos do
projeto, onde não é utilizada uma técnica ade-
 Coleta de requisitos: É o processo de inte-
quada para extrair os requisitos do sistema;
ragir com os stakeholders do sistema para des-
cobrir seus requisitos. A compreensão do domínio  A falha do analista em não descrever os
se desenvolve mais durante essa atividade; requisitos do sistema de modo claro, sem ambi-
guidades, conciso e consistente com todos os
 Classificação: Essa atividade considera o
aspectos significativos do sistema proposto.
conjunto não estruturado dos requisitos e os or-
ganiza em grupos coerentes; Entre as dificuldades encontradas na fase de
levantamento de requisitos estão: o usuário prin-
 Resolução de conflitos: Quando múltiplos cipal do sistema não sabe o que quer que o sis-
stakeholders estão envolvidos, os requisitos tema faça ou sabe e não consegue transmitir para
apresentarão conflitos. Essa atividade tem por o analista; requisitos identificados, mas que não
objetivo solucionar esses conflitos; são realistas e não identificam os requisitos simi-

8
lares informados por pessoas diferentes. Um etapa os analistas se reúnem com os stakehol-
stakeholder errado afetará em perda de tempo e ders e utilizam a abordagem de brainstorming
dinheiro para ambas as partes envolvidas no de- para identificar os serviços em potencial e as
senvolvimento do sistema. entidades que interagem com o sistema.

Identifica-se um levantamento de requisitos ade- A segunda etapa é a estruturação de pontos de


quado através da boa definição do projeto, da vista, que envolve agrupar pontos de vista relaci-
efetividade do projeto, de informações necessá- onados, segundo uma hierarquia. Serviços co-
rias a um perfeito diagnóstico e de soluções inte- muns estão localizados nos níveis mais altos da
ligentes. Quanto ao levantamento de requisitos hierarquia e herdados por pontos de vista de nível
inadequado, o resultado é um diagnóstico pobre inferior.
com conclusões comprometidas, não identifica-
ção das causas dos problemas, custos elevados, A etapa de documentação do ponto de vista tem
prazos vencidos ou comprometedores, omissão por objetivo refinar a descrição dos pontos de
de processos fundamentais e descréditos. vista e serviços identificados.

As técnicas de levantamento de requisitos têm O mapeamento de sistema conforme ponto de


por objetivo superar as dificuldades relativas a vista envolve identificar objetos em um projeto
esta fase. Todas as técnicas possuem um concei- orientado a objetos, utilizando as informações de
to próprio e suas respectivas vantagens e des- serviço que estão encapsuladas nos pontos de
vantagens, que podem ser utilizadas em conjunto vista.
pelo analista.
A Figura 2 exemplifica a técnica de levantamento
Serão apresentadas de forma resumida nesse orientado a ponto de vista.
artigo algumas técnicas de levantamento de re-
quisitos.

Levantamento Orientado a Pontos de Vista

Para qualquer sistema, de tamanho médio ou


grande, normalmente há diferentes tipos de usuá-
rio final. Muitos stakeholders têm algum tipo de Figura 2. Método VORD, SOMMERVILLE – 2003
interesse nos requisitos do sistema. Por esse
motivo, mesmo para um sistema relativamente Etnografia
simples, existem muitos pontos de vista diferentes
A etnografia é uma técnica de observação que
que devem ser considerados. Os diferentes pon-
pode ser utilizada para compreender os requisitos
tos de vista a respeito de um problema ‘veem’ o
sociais e organizacionais, ou seja, entender a
problema de modos diferentes. Contudo, suas
política organizacional bem como a cultura de
perspectivas não são inteiramente independen-
trabalho com objetivo de familiarizar-se com o
tes, mas em geral apresentam alguma duplicida-
sistema e sua história. Os cientistas sociais e
de, de modo que apresentam requisitos comuns.
antropólogos usam técnicas de observação para
As abordagens orientadas a ponto de vista, na desenvolver um entendimento completo e deta-
engenharia de requisitos, reconhecem esses dife- lhado de culturas particulares.
rentes pontos de vista e os utilizam para estrutu-
Nesta técnica, o analista se insere no ambiente
rar e organizar o processo de levantamento e os
de trabalho em que o sistema será utilizado. O
próprios requisitos. Uma importante capacidade
trabalho diário é observado e são anotadas as
da análise orientada a pontos de vista é que ela
tarefas reais em que o sistema será utilizado. O
reconhece a existência de várias perspectivas e
principal objetivo da etnografia é que ela ajuda a
oferece um framework para descobrir conflitos
descobrir requisitos de sistema implícitos, que
nos requisitos propostos por diferentes stakehol-
refletem os processos reais, em vez de os pro-
ders.
cessos formais, onde as pessoas estão envolvi-
O método VORD (viewpoint-oriented require- das.
ments definition – definição de requisitos orienta-
Etnografia é particularmente eficaz na descoberta
da a ponto de vista) foi projetado como um fra-
de dois tipos de requisitos:
mework orientado a serviço para o levantamento
e análise de requisitos.  Os requisitos derivados da maneira como
as pessoas realmente trabalham, em vez da ma-
A primeira etapa da análise de ponto de vista é
neira pelas quais as definições de processo di-
identificar os possíveis pontos de vista. Nessa
zem como elas deveriam trabalhar;

9
 Os requisitos derivados da cooperação e Uma técnica utilizada em workshops é o brains-
conscientização das atividades de outras pesso- torming. Após os workshops serão produzidas
as. documentações que refletem os requisitos e deci-
sões tomadas sobre o sistema a ser desenvolvi-
Alguns itens importantes que devem ser executa- do.
dos antes, durante e depois do estudo de obser-
vação: Alguns aspectos importantes a serem considera-
dos: a postura do condutor do seminário deve ser
 Antes, é necessário identificar as áreas de de mediador e observador; a convocação deve
usuário a serem observadas; obter a aprovação possuir dia, hora, local, horário de início e de tér-
das gerências apropriadas para executar as ob- mino; assunto a ser discutido e a documentação
servações; obter os nomes e funções das pesso- do seminário.
as chave que estão envolvidas no estudo de ob-
servação; e explicar a finalidade do estudo; Prototipagem

 Durante, é necessário familiarizar-se com o Protótipo tem por objetivo explorar aspectos críti-
local de trabalho que está sendo observado. Para cos dos requisitos de um produto, implementando
isso é preciso observar os agrupamentos organi- de forma rápida um pequeno subconjunto de fun-
zacionais atuais; as facilidades manuais e auto- cionalidades deste produto. O protótipo é indicado
matizadas; coletar amostras de documentos e para estudar as alternativas de interface do usuá-
procedimentos escritos que são usados em cada rio; problemas de comunicação com outros produ-
processo específico que está sendo observado; e tos; e a viabilidade de atendimento dos requisitos
acumular informações estatísticas a respeito das de desempenho. As técnicas utilizadas na elabo-
tarefas, como: frequência que ocorrem, estimati- ração do protótipo são várias: interface de usuá-
vas de volumes, tempo de duração para cada rio, relatórios textuais, relatórios gráficos, entre
pessoa que está sendo observada. Além de ob- outras.
servar as operações normais de negócios acima
é importante observar as exceções; Alguns dos benefícios do protótipo são as redu-
ções dos riscos na construção do sistema, pois o
 Depois, é necessário documentar as des- usuário chave já verificou o que o analista captou
cobertas resultantes das observações feitas. Para nos requisitos do produto. Para ter sucesso na
consolidar o resultado é preciso rever os resulta- elaboração dos protótipos é necessária a escolha
dos com as pessoas observadas e/ou com seus do ambiente de prototipagem, o entendimento
superiores. dos objetivos do protótipo por parte de todos os
interessados no projeto, a focalização em áreas
A análise de observação tem algumas desvanta- menos compreendidas e a rapidez na construção.
gens como, consumir bastante tempo e o analista
ser induzido a erros em suas observações. Mas Entrevistas
em geral a técnica de observação é muito útil e
frequentemente usada para complementar des- A entrevista é uma das técnicas tradicionais mais
cobertas obtidas por outras técnicas. simples de utilizar e que produz bons resultados
na fase inicial de obtenção de dados. Convém
Workshops que o entrevistador dê margem ao entrevistado
para expor as suas ideias. É necessário ter um
Trata-se de uma técnica de elicitação em grupo plano de entrevista para que não haja dispersão
usada em uma reunião estruturada. Devem fazer do assunto principal e a entrevista fique longa,
parte do grupo uma equipe de analistas e uma deixando o entrevistado cansado e não produzin-
seleção dos stakeholders que melhor represen- do bons resultados.
tam a organização e o contexto em que o sistema
será usado, obtendo assim um conjunto de requi- As seguintes diretrizes podem ser de grande auxi-
sitos bem definidos. lio na direção de entrevistas bem-sucedidas com
o usuário: desenvolver um plano geral de entre-
Ao contrário das reuniões, onde existe pouca vistas, certificar-se da autorização para falar com
interação entre todos os elementos presentes, o os usuários, planejar a entrevista para fazer uso
workshop tem o objetivo de acionar o trabalho em eficiente do tempo, utilizar ferramentas automati-
equipe. Há um facilitador neutro cujo papel é con- zadas que sejam adequadas, tentar descobrir que
duzir a workshop e promover a discussão entre informação o usuário está mais interessado e
os vários mediadores. As tomadas de decisão usar um estilo adequado ao entrevistar.
são baseadas em processos bem definidos e com
o objetivo de obter um processo de negociação, Para planejar a entrevista é necessário que antes
mediado pelo facilitador. dela sejam coletados e estudados todos os dados

10
pertinentes à discussão, como formulários, relató- tado e solicitar ao entrevistado confirmação do
rios, documentos e outros. Dessa forma, o analis- que foi dito.
ta estará bem contextualizado e terá mais produ-
tividade nos assuntos a serem discutidos na en- Questionários
trevista.
O uso de questionário é indicado, por exemplo,
É importante determinar um escopo relativamente quando há diversos grupos de usuários que po-
limitado, focalizando uma pequena parte do sis- dem estar em diversos locais diferentes do país.
tema para que a reunião não se estenda por mais Neste caso, elaboram-se pesquisas específicas
de uma hora. O usuário tem dificuldade de con- de acompanhamento com usuários selecionados,
centração em reuniões muito longas, por isso é que a contribuição em potencial pareça mais im-
importante focalizar a reunião no escopo definido. portante, pois não seria prático entrevistar todas
as pessoas em todos os locais.
Após a entrevista é necessário validar se o que
foi documentado pelo analista está de acordo Existem vários tipos de questionários que podem
com a necessidade do usuário, que o usuário não ser utilizados. Entre estes podemos listar: múltipla
mudou de opinião e que o usuário entende a no- escolha, lista de verificação e questões com es-
tação ou representação gráfica de suas informa- paços em branco. O questionário deve ser de-
ções. senvolvido de forma a minimizar o tempo gasto
em sua resposta.
A atitude do analista em relação à entrevista é
determinar seu fracasso ou sucesso. Uma entre- Na fase de preparação do questionário deve ser
vista não é uma competição, deve-se evitar o uso indicado o tipo de informação que se deseja ob-
excessivo de termos técnicos e não conduzir a ter. Assim que os requisitos forem definidos o
entrevista em uma tentativa de persuasão. O analista deve elaborar o questionário com ques-
modo como o analista fala não deve ser muito tões de forma simples, clara e concisa, deixar
alto, nem muito baixo, tampouco indiretamente, espaço suficiente para as repostas que forem
ou seja, utilizar os termos: ele disse isso ou aquilo descritivas e agrupar as questões de tópicos es-
na reunião para o outro entrevistado. O modo pecíficos em um conjunto com um título especial.
melhor para agir seria, por exemplo, dizer: O João O questionário deve ser acompanhado por uma
vê a solução para o projeto dessa forma. E o se- carta explicativa, redigida por um alto executivo,
nhor André, qual é a sua opinião? Em uma entre- para enfatizar a importância dessa pesquisa para
vista o analista nunca deve criticar a credibilidade a organização.
do entrevistado. O analista deve ter em mente
que o entrevistado é o perito no assunto e forne- Deve ser desenvolvido um controle que identifi-
cerá as informações necessárias ao sistema. que todas as pessoas que receberão os questio-
nários. A distribuição deve ocorrer junto com ins-
Para elaborar perguntas detalhadas é necessário truções detalhadas sobre como preenchê-lo e ser
solicitar que o usuário: indicado claramente o prazo para devolução do
questionário. Ao analisar as respostas dos parti-
 Explique o relacionamento entre o que está cipantes é feito uma consolidação das informa-
em discussão e as demais partes do sistema; ções fornecidas no questionário, documentando
as principais descobertas e enviando uma cópia
 Descreva o ponto de vista de outros usuá- com estas informações para o participante como
rios em relação ao item que esteja sendo discuti- forma de consideração pelo tempo dedicado a
do; pesquisa.

 Descreva informalmente a narrativa do item Brainstorming


em que o analista deseja obter informações;
Brainstorming é uma técnica para geração de
 Perguntar ao usuário se o item em discus- idéias. Ela consiste em uma ou várias reuniões
são depende para a sua existência de alguma que permitem que as pessoas sugiram e explo-
outra coisa, para assim poder juntar os requisitos rem idéias.
comuns do sistema, formando assim um escopo
conciso. As principais etapas necessárias para conduzir
uma sessão de brainstorming são:
Pode-se utilizar a confirmação, para tanto o ana-
lista deve dizer ao usuário o que acha que ouviu  Seleção dos participantes: Os participantes
ele dizer. Neste caso, o analista deve utilizar as devem ser selecionados em função das contribui-
suas próprias palavras em lugar das do entrevis- ções diretas que possam dar durante a sessão. A
presença de pessoas bem informadas, vindas de

11
diferentes grupos garantirá uma boa representa-  Uso de técnicas visuais: para aumentar a
ção; comunicação e o entendimento;

 Explicar a técnica e as regras a serem se-  Manutenção do processo organizado e


guidas: O líder da sessão explica os conceitos racional: o JAD emprega a análise top down e
básicos de brainstorming e as regras a serem atividades bem definidas. Possibilita assim, a
seguidas durante a sessão; garantia de uma análise completa reduzindo as
chances de falhas ou lacunas no projeto e cada
 Produzir uma boa quantidade de idéias: Os nível de detalhe recebe a devida atenção;
participantes geram tantas idéias quantas forem
exigidas pelos tópicos que estão sendo o objeto  Utilização de documentação padrão: pre-
do brainstorming. Os participantes são convida- enchida e assinada por todos os participantes.
dos, um por vez, a dar uma única idéia. Se al- Este documento garante a qualidade esperada do
guém tiver problema, passa a vez e espera a projeto e promove a confiança dos participantes.
próxima rodada.
A técnica JAD é composta de duas etapas princi-
No brainstorming as idéias que a princípio pare- pais: planejamento, que tem por objetivo elicitar e
çam não convencionais, são encorajadas, pois especificar os requisitos; e projeto, em que se lida
elas frequentemente estimulam os participantes, com o projeto de software.
o que pode levar a soluções criativas para o pro-
blema. O número de idéias geradas deve ser bem Cada etapa consiste em três fases: adaptação,
grande, pois quanto mais idéias forem propostas, sessão e finalização. A fase de adaptação consis-
maior será a chance de aparecerem boas idéias. te na preparação para a sessão, ou seja, organi-
Os participantes também devem ser encorajados zar a equipe, adaptar o processo JAD ao produto
a combinar ou enriquecer as idéias de outros e, a ser construído e preparar o material. Na fase de
para isso, é necessário que todas as idéias per- sessão é realizado um ou mais encontros estrutu-
maneçam visíveis a todos os participantes. rados, envolvendo desenvolvedores e usuários
onde os requisitos são desenvolvidos e documen-
Nesta técnica é designada uma pessoa para re- tados.
gistrar todas as idéias em uma lousa branca ou
em papel. À medida que cada folha de papel é A fase de finalização tem por objetivo converter a
preenchida, ela é colocada de forma que todos os informação da fase de sessão em sua forma final
participantes possam vê-la. (um documento de especificação de requisitos).

Analisar as idéias é a fase final do brainstorming. Há seis tipos de participantes, embora nem todos
Nessa fase é realizada uma revisão das idéias, participem de todas as fases:
uma de cada vez. As consideradas valiosas pelo
grupo são mantidas e classificadas em ordem de  Líder da sessão: é responsável pelo suces-
prioridade. so do esforço, sendo o facilitador dos encontros.
Deve ser competente, com bom relacionamento
JAD pessoal e qualidades gerenciais de liderança;

JAD (Joint Application Design) é uma técnica para  Engenheiro de requisitos: é o participante
promover cooperação, entendimento e trabalho diretamente responsável pela produção dos do-
em grupo entre os usuários desenvolvedores. cumentos de saída das sessões JAD. Deve ser
um desenvolvedor experiente para entender as
O JAD facilita a criação de uma visão comparti- questões técnicas e detalhes que são discutidos
lhada do que o produto de software deve ser. durante as sessões e ter habilidade de organizar
Através da sua utilização os desenvolvedores idéias e expressá-las com clareza;
ajudam os usuários a formular problemas e explo-
rar soluções. Dessa forma, os usuários ganham  Executor: é o responsável pelo produto
um sentimento de envolvimento, posse e respon- sendo construído. Tem que fornecer aos partici-
sabilidade com o sucesso do produto. pantes uma visão geral dos pontos estratégicos
do produto de software a ser construído e tomar
A técnica JAD tem quatro princípios básicos: as decisões executivas, tais como alocação de
recursos, que podem afetar os requisitos e o pro-
 Dinâmica de grupo: são realizadas reuni- jeto do novo produto;
ões com um líder experiente, analista, usuários e
gerentes, para despertar a força e criatividade  Representantes dos usuários: são as pes-
dos participantes. O resultado final será a deter- soas na empresa que irão utilizar o produto de
minação dos objetivos e requisitos do sistema; software. Durante a extração de requisitos, os

12
representantes são frequentemente gerentes ou
pessoas-chave dentro da empresa que tem uma
visão melhor do todo e de como ele será usado;

 Representantes de produtos de software:


são pessoas que estão bastante familiarizadas
com as capacidades dos produtos de software.
Seu papel é ajudar os usuários a entender o que
é razoável ou possível que o novo produto faça;

 Especialista: é a pessoa que pode fornecer


informações detalhadas sobre um tópico específi-
co.

O conceito do JAD de abordagem e dinâmica de


grupo poderá ser utilizado para diversas finalida-
des, como: planejamento de atividades técnicas
para um grande projeto, discussão do escopo e
objetivos de um projeto e estimativa da quantida-
de de horas necessárias para desenvolver siste-
mas grandes e complexos.

A maioria das técnicas JAD funciona melhor em


projetos pequenos ou médios. Para um sistema Tabela 1. Grupos de técnicas para levanta-
grande e complexo podem ser usadas múltiplas mento de requisitos
sessões JAD para acelerar a definição dos requi-
sitos do sistema. Gerenciamento de Requisitos
Não existe uma técnica padrão para o processo O que é Gerenciamento de Requisitos?
de levantamento de requisitos. Para alcançar um
levantamento de requisitos mais preciso é impor- Corresponde ao conjunto de atividades que auxi-
tante o conhecimento de diversas técnicas para lia a equipe do projeto a identificar, controlar e
saber que técnica de levantamento aplicar em rastrear os requisitos, bem como as alterações
cada situação. nos requisitos em muitos momentos do projeto.

É primordial que o analista possua perfil adequa- Em outras palavras, é o processo que gerencia
do. O analista de sistemas precisa de mais do mudanças nos requisitos de um sistema.
que apenas a capacidade de desenhar fluxogra-
mas e outros diagramas técnicos. Estas mudanças ocorrem conforme os clientes
desenvolvem um melhor entendimento de suas
O analista de sistemas tem a função de projetar e reais necessidades.
analisar sistemas de ótimo desempenho. Para
que esse objetivo seja alcançado, é necessário o Novos requisitos surgem e há alterações nos
analista de sistema possuir a capacidade de: requisitos em todos os estágios do processo de
desenvolvimento do sistema. São comuns os
 Compreender conceitos abstratos, reorga- casos em que mais de 50% dos requisitos são
nizá-los em divisões lógicas e sintetizar soluções alterados antes que o sistema seja posto em ope-
baseadas em cada divisão; ração, o que causa sérios problemas para os
desenvolvedores.
 Absorver fatos pertinentes de fontes confli-
tantes ou confusas; Para minimizar dificuldades, os requisitos devem
ser documentados e controlados.
 Entender os ambientes do usuário/cliente;
Quando não há controle de alterações, mudanças
 Aplicar elementos do sistema de hardware de baixa prioridade podem ser implementadas
e/ou software aos elementos do usuário/cliente; antes daquelas de alta prioridade, além de mu-
danças com alto custo não serem necessaria-
 Comunicar bem nas formas escrita e verbal mente aprovadas. Um levantamento em mais de
e entender o objetivo global do software. 4.000 empresas européia identificou que uma das
principais áreas problemáticas do desenvolvimen-
A Tabela 1 apresenta os grupos de técnicas para to e produção de software era o gerenciamento
o levantamento de requisitos. de requisitos dos clientes (internos e externos).

13
As principais preocupações de gerenciamento de  Facilidades de gerenciamento de mudan-
requisitos são: ças que ajudam a garantir que as mudanças fo-
ram avaliadas e cotadas corretamente;
 Gerenciar mudanças nos requisitos acor-
dados;  Facilidades de rastreabilidade que auxiliam
os engenheiros de requisitos a encontrar depen-
 Gerenciar os relacionamentos entre os dências entre requisitos.
requisitos;
Especificação de Requisitos
 Gerenciar as dependências entre o docu-
mento de requisitos e outros documentos produ- A especificação de requisitos tem como objetivo
zidos ao longo do sistema e do processo de en- obter produtos de software de melhor qualidade
genharia de software. que satisfaçam às reais necessidades dos clien-
tes dentro de prazo e orçamento adequados.
As mudanças nos requisitos podem ser devidas a
erros e confusão no processo de engenharia de Podemos entender requisito como uma função,
requisitos, design ou problemas de implementa- restrição ou propriedade que deve ser fornecida,
ção. Novos requisitos podem surgir conforme os encontrada ou atendida para satisfazer às neces-
stakeholders desenvolvem uma melhor compre- sidades do usuário do sistema. (Descreve um
ensão do sistema ou em decorrência de altera- serviço ou uma limitação)
ções em circunstâncias externas como novas leis
ou regulamentações introduzidas no ambiente de Está comprovado: a maior parte dos problemas,
negócio. os de maior impacto negativo e os mais onerosos
tem origem nas etapas iniciais do desenvolvimen-
Os requisitos não podem ser gerenciados de for- to de software. Justamente nas etapas de especi-
ma efetiva sem rastreabilidade. Um requisito é ficação dos requisitos é onde as principais ativi-
rastreável se for possível identificar quem solici- dades são definidas e onde os requisitos do pro-
tou o requisito, porque o requisito existe, quais os duto devem ser identificados e mapeados com
requisitos relacionados e como os requisitos se objetividade e clareza.
relacionam as outras informações como design
de sistemas, implementações e documentos do Podemos dizer que as principais causas para o
usuário. Estas informações são utilizadas para fracasso dos projetos de software são: especifi-
identificar todos os requisitos afetados por mu- cação de requisitos mal formulada e alterações
danças propostas. constantes nos requisitos.

Boas práticas de gerenciamento de requisitos, Por serem atividades bases do processo de de-
como uma manutenção de dependências entre senvolvimento de software as falhas cometidas
requisitos, têm benefícios em longo prazo, como nas atividades de definição e validação de requi-
maior satisfação do cliente e custos de desenvol- sitos irão originar documentos de requisitos in-
vimento mais baixos. Uma vez que os retornos consistentes afetando as etapas seguintes de
não são imediatos, o gerenciamento de requisitos projeto, implementação e testes e gerando produ-
pode parecer uma despesa desnecessária. Entre- tos de softwares de baixa qualidade.
tanto, sem a gerencia, a economia de curto prazo
será devastada pelos custos em longo prazo. Embora não exista um modelo padrão consagra-
do para gerenciar requisitos podemos definir al-
Os problemas com gerenciamento de requisitos guns passos para um processo de especificação
geralmente significam que os clientes não ficarão de requisitos: (Soares, 2005) (Os processos de-
satisfeitos quando da entrega do produto. vem ser adaptados a cada necessidade / conjun-
tura)
Ferramentas de gerenciamento de requisitos po-
dem prover facilidades como: 1. Descoberta dos requisitos - consultas, do-
cumentos, pesquisas, entrevistas, JAD (Joint
 Um sistema de banco de dados para arma- Application Design);
zenamento de requisitos;
2. Análise dos requisitos identificados com
 Análise de documento e facilidades de refinamento e detalhamento dos mesmos;
geração para ajudar a construir um banco de
dados de requisitos e auxiliar na criação dos do- 3. Modelagem e Validação dos requisitos
cumentos de requisitos; verificando sua consistência (Documento de re-
quisitos);

4. Acompanhamento dos requisitos;

14
Ao final deste processo deve-se ter um documen- O banco de dados usado deverá ser o Oracle;
to de requisitos bem definido e entendido por
todos os intervenientes do processo: Clientes, Obs: "Os requisitos não funcionais são críticos
desenvolvedores, líderes, analistas, gerentes, para o sucesso de sistemas de software e estão
patrocinadores, etc. (stakeholders) diretamente relacionados com a satisfação dos
usuários. Devido a essa importância, alguns re-
Mas o que é Especificar um Requisito? quisitos funcionais podem ser sacrificados para
atender às restrições impostas pelos requisitos
Especificar um requisito implica em compreender não funcionais"
exatamente o que deve ser feito e que se espera
receber como resultado. O documento de requisitos de sistema - DRS -
pode ser entendido como a descrição formal e
Podemos classificar os requisitos em: oficial onde é descrita e comunicada os requisitos
a todos os envolvidos no processo de desenvol-
 Funcionais - descrevem as funcionalidades vimento de software (stakeholders). Ele é basi-
do sistema desejadas pelos clientes, ou seja, O camente composto de:
QUE se espera que o software faça;
1. Os serviços e funções que o sistema deve
 Não funcionais - São as qualidades e res- prover;
trições globais do sistema relacionados com ma-
nutenção, uso, desempenho, custo, interface, 2. As limitações sobre as quais o sistema
etc... deve operar;

Exemplos de requisitos funcionais: 3. Definições de outros sistemas com os


quais o sistema deve integrar;
O sistema deve possibilitar o cadastramento
dos dados pessoais dos clientes; 4. Limitações no processo usado para desen-
volver o sistema;
O sistema deve emitir relatórios gerenciais;
5. Descrições sobre o hardware no qual o
O sistema deve permitir a baixa automática do sistema irá executar
estoque quando da venda de um produto;
Os requisitos podem ser modelados e validados
A Norma ISO / IEC 9126 define seis característi- através de casos de uso que incluem o diagrama
cas de qualidade de software que devem ser ava- de casos de uso e a especificação do caso de
liadas: uso.

 Funcionalidade (finalidade do produto); Um caso de uso representa uma funcionalidade


completa, conforme percebida pelo ator e é defi-
 Usabilidade (esforço para utilizar, aprender nido como "um conjunto de seqüências de ações
o produto); que um sistema executa que produzem um resul-
tado observável por um particular ator".
 Confiabilidade (frequência de falhas, recu-
perabilidade); Os casos de uso é uma das técnicas usadas para
descrever claramente todos os requisitos de um
 Eficiência (característica relacionada ao dado sistema, esta técnica foi proposta por Ivar
desempenho); Jacobson em sua metodologia de desenvolvi-
mento de sistemas orientados a objetos , visando
 Manutenibilidade (esforço necessário para identificar os requisitos de um sistema.
modificar);
O Diagrama de Casos de Uso fornece um modo
 Portabilidade (capacidade de transferir o de descrever a visão externa do sistema e suas
produto para outros ambientes). interações com o mundo exterior, representando
uma visão de alto nível da funcionalidade do sis-
Exemplos de requisitos não funcionais: tema mediante uma requisição do usuário.
tempo de resposta do sistema não deve ultra- O modelo de casos de uso é um formato ágil para
passar 10 segundos; capturar requisitos de software. Ele contrasta com
documentos maiores e descritivos que tentam
software deve ser operacionalizado no sistema conter todos os requerimentos possíveis antes do
Windows; início da construção de um novo sistema, mas

15
falham completamente neste intento. Os princi- A seguir temos a sequência que pode ser usada
pais benefícios dos casos de uso na modelagem para construir o modelo de casos de uso:
de requisitos são:
Definir o Sistema (conjunto de casos de uso);
1. Os casos de uso podem ser facilmente
adicionados ao projeto de software e removidos Encontrar Os Atores;
do projeto de software assim que as prioridades
mudarem; Encontrar E Descrever Os Casos De Uso;

2. Os casos de uso podem também servir Definir Os Relacionamentos Entre Os Casos


como base para estimar, escalonar e validar es- De Uso;
forços;
Validar O Modelo.
3. Uma razão porque os casos de uso se
tornaram populares: são fáceis de entender por Como Identificar um Ator?
pessoas da área de negócio e assim provaram
As respostas às seguintes perguntas podem auxi-
ser uma excelente ponte entre quem desenvolve
liar na identificação dos atores:
o software e os utilizadores finais.
1. Quem utiliza a principal funcionalidade do
Os casos de uso também têm as suas dificulda-
sistema?
des. São excelentes para capturar os requisitos
funcionais de um sistema, mas não têm tanto 2. Quem vai precisar de suporte do sistema
sucesso em capturar os não funcionais. para realizar suas tarefas diárias?
É importante notar que os modelos de casos de 3. Quem precisa manter administrar e deixar
uso não descrevem como o software deverá ser o sistema "rodando"?
construído, e sim, como ele deverá se comportar.
As descrições de casos de uso normalmente evi- 4. Quais dispositivos de hardware o sistema
tam o uso de termos técnicos, preferindo a lin- precisa manipular?
guagem do usuário final. Normalmente, os casos
de uso são feitos por quem desenvolve o software 5. Com quais outros sistemas o sistema pre-
e/ou por quem vai utilizar esse mesmo software. cisa interagir?

Propósitos básicos: 6. Quem ou o quê tem interesse nos resulta-


dos produzidos pelo sistema?
1. Decidir e descrever os requisitos funcionais
do sistema; Propriedades de um caso de uso

2. Prover uma descrição clara e consistente  A descrição resumida do caso de uso é


do que o sistema deve fazer; uma breve descrição do caso de uso.

3. Prover a base para a realização de testes  Fluxo principal descreve o fluxo natural
que validam e verificam o sistema; seguido pelo caso de uso se todas as hipóteses
foram verdadeiras e se nenhum erro tiver ocorri-
4. Prover facilidades para rastrear requisitos do.
funcionais dentro das classes e operações do
sistema.  Os fluxos alternativos representam os des-
vios alcançados pela execução do caso de uso,
Principais Componentes do Modelo de Casos de causados pelos atores, por condições intrínsecas
Uso: ao caso de uso ou por erros ou exceções.
 Caso de uso: especifica uma funcionalida-  Os pontos de extensões são somente rótu-
de completa do sistema. É sempre iniciado por los que indicam, nos fluxos, a extensão do caso
um ator (direta ou indiretamente ordena ao siste- de uso. Podem existir vários pontos de extensões
ma a execução de um caso de uso); no mesmo fluxo.
 Ator: entidade externa que interage com os Como identificar um caso de uso?
casos de uso;
As respostas às perguntas abaixo podem auxiliar
 Sistema: conjunto de casos de uso a identificar os Casos de Uso:

16
1. Quais funções o ator requer do sistema? O qualidade e coerência dos requisitos definidos. É
que o ator precisa fazer? de vital importância que a tarefa de levantamento
de requisitos seja executada de forma criteriosa e
2. Ator precisa criar, ler, destruir, modificar ou detalhada, pois uma falha nessa etapa do ciclo de
armazenar algum tipo de informação dentro do vida do software vai gerar um projeto malsucedi-
sistema? do e a insatisfação do cliente.

3. Ator precisa ser notificado de eventos do Técnicas no Processo de Validação


sistema? O ator precisa notificar o sistema sobre
algum evento? Consegue-se entender então que os processos
de Validação de Requisitos têm como "variáveis"
4. Trabalho diário do ator poderia ser simplifi- de entrada o esboço vindo do processo de Análi-
cado ou tornado mais eficiente por meio de novas se e Negociação de Requisitos, as normas de
funcionalidades do sistema? qualidade da organização/projeto em que se inse-
re e do conhecimento empírico obtido de outros
5. Quais entradas e saídas o sistema precisa? projetos. Este processo "retorna" uma lista de
problemas que devem ser resolvidos. Iterativa-
6. Quais os principais problemas com o atual mente o processo vai finalizar com o "retorno" de
sistema? uma versão final do documento de requisitos.
Mas falta ainda saber quais as técnicas eficazes
Mesmo ainda nesta fase do processo de desen-
utilizadas para realizar este processo.
volvimento de software, através de uma especifi-
cação de requisitos bem elaborada e documenta- Revisão dos Requisitos
da através dos casos de uso pode-se usar a mé-
trica Pontos por Caso de Uso - PCU - (Use Case A revisão de requisitos deverá ser feita numa
Points) para realizar estimativas de tamanho, reunião formal onde deverá estar presentes um
prazo e custo em projetos de software. utilizador final ou um representante deste, um
especialista do domínio, um representante do
O processo de contagem da métrica PCU é cons- cliente, os responsáveis pelo desenho do sistema
tituído por seis passos descritos a seguir: e os engenheiros de requisitos. É importante que
esta reunião seja conduzida por alguém que este-
1. Contar os atores e atribuir o grau de com- ja dentro do projeto, mas não esteve envolvido na
plexidade; realização do documento de requisito, de forma a
este conduzir a reunião de uma forma rigorosa e
2. Contar os casos de uso e atribuir a com-
"livre de vícios".
plexidade;
Antes da realização da reunião formal é necessá-
3. Somar o total dos atores com o total de
rio existir um planeamento cuidado da revisão a
casos de uso para obter o PCU não ajustado; ser efetuada na reunião. Neste planeamento de-
vem ser preparadas checklists de revisão genéri-
4. Determinar a complexidade do fator técni- cas e não deverão incidir sobre requisitos indivi-
co; duais, mas sim nas relações dos requisitos, assim
como as propriedades de qualidade do documen-
5. Determinar a complexidade do fator ambi-
to. Os seguintes atributos de qualidade deverão
ente;
ser tomados em conta na formulação da chec-
6. Calcular o PCU ajustado; klists:

1. Compreensibilidade
A técnica de análise de Pontos por Casos de
Uso foi criada para permitir que seja possível 2. Redundância
estimar o tamanho do sistema ainda na fase de
levantamento de Casos de Uso, utilizando-se dos 3. Completude
próprios documentos gerados nesta fase de aná-
lise como subsídio para efetuar estimativas de 4. Consistência
tamanho, prazo e custo de software.
5. Organização
Naturalmente existe um grau de incerteza ineren-
te a fase inicial do processo e as definições de 6. Conformidade com as normas
requisitos da ordem de 45%.
7. Rastreabilidade
Assim, a medida do tamanho, complexidade e
riscos de um projeto de software vai depender da

17
Na tabela em baixo poderá ser visto um modelo mente representam os requisitos reais dos
de questões a seguir na formulação dos atributos stakeholders.
de qualidade das checklists:
Testes de Requisitos

Para cada requisito funcional deve ser possível


definir um ou mais testes a serem realizados no
sistema final para ser possível verificar se o sis-
tema cumpre o requisito na integra. Se este teste
não for possível ser definido isso vai significar que
Devem ser distribuídos os documentos necessá- o requisito necessita de ser clarificado pois muito
rios para a reunião a todos os futuros envolvidos provavelmente irá criar problemas no desenvol-
nesta assim como haver uma preparação prévia vimento do produto. Na definição de cada teste
de todos. Na reunião cada requisito deve ser deverá ser tomado em conta os seguintes pontos:
apresentado à vez para discussão pelo grupo,
sendo tomado nota de todos os problemas identi- 1. Identificador do requisito
ficados. As soluções para os problemas identifi-
cados apenas serão discutidas no final de todos 2. Requisitos relacionados
os requisitos serem apresentados.
3. Descrição do teste
Prototipagem
4. Problemas na realização do teste
No processo de análise e negociação de requisi-
tos desenvolveu-se um protótipo para facilitar na 5. Comentário e recomendações
recolha de requisitos pois é usualmente mais fácil
O que é Prototipação?
para os Stakeholders conseguirem identificarem
exactamente o que querem de uma forma visual e A prototipação é um processo que tem como ob-
aproximada do que poderá ser o produto final. jetivo facilitar o entendimento dos requisitos,
Logo também será mais fácil na fase de validação apresentar conceitos e funcionalidades do softwa-
de requisitos validar estes através do mesmo re. Desta forma, podemos propor uma solução
processo. adequada para o problema do cliente, aumentan-
do sua percepção de valor.
Obviamente que através do protótipo visual é
mais fácil detectar inconsistências e problemas Os protótipos também são grandes aliados das
nos requisitos. É também de referir a possibilida- metodologias ágeis de desenvolvimento, uma vez
de de iniciar-se já nesta fase os manuais de utili- que garantem maior alinhamento entre a equipe e
zação (pois normalmente são implementadas as o cliente. Eles podem ser desenvolvidos em dife-
interfaces). Deve-se notar duas pequenas des- rentes níveis de fidelidade: quanto maior ela for,
vantagens na utilização desta técnica. mais o protótipo se assemelhará ao resultado
entregue. No entanto, um protótipo de alta fideli-
A implementação de um protótipo poderá levar a
dade leva mais tempo para ser criado ou modifi-
desilusões para os utilizadores finais, quando as
cado. A escolha do protótipo ideal varia de acordo
interfaces da versão final não correspondem
com o nível de entendimento do negócio, a com-
exactamente às do protótipo e poderá tentar os
plexidade dos requisitos, prazo e orçamento para
programadores a utilizar o protótipo como uma
elaboração.
continuação do desenvolvimento do sistema.
Podemos dividir os protótipos em três categorias:
Também se deverá ter em conta o tempo gasto
na implementação do protótipo e medir se este Wireframes & Rascunhos
tempo no final será compensado pelas vantagens
trazidas por este. São protótipos de baixa fidelidade, rápidos para
se desenvolver e modificar. Wireframes não vão
Validação de Modelos mostrar detalhes visuais ou interações de tela,
mas vão ajudar a validar requisitos e regras de
Uma especificação de requisitos de um sistema
negócio de maneira eficiente. Wireframes são a
pode ser constituída por variadíssimos modelos,
melhor escolha para representar cenários com-
que obviamente necessitam de ser validados.
plexos onde um fluxo ou processo precisa ser
Essa validação deverá avaliar individualmente a
compreendido.
consistência de cada modelo assim como a con-
sistência entre os vários modelos do sistema. Ferramentas bacanas:
Deverá também verificar se estes modelos real-

18
 Papel & caneta (a melhor de todas) que, no final das contas, talvez não vá agregar
tanto valor para assim o cliente.
 Balsamiq Mockups
ANOTAÇÕES
 Pencil Sketch ________________________________________
________________________________________
Protótipos Visuais ________________________________________
Criados com programas de edição gráfica, estes ________________________________________
protótipos têm maior apelo visual, entretanto, não ________________________________________
possuem interações de tela e demandam mais ________________________________________
tempo para se fazer ajustes e melhorias. São ________________________________________
uma ótima opção para telas com maior ênfase em ________________________________________
estética e usabilidade, quando os requisitos já ________________________________________
foram entendidos. ________________________________________
________________________________________
Ferramentas bacanas: ________________________________________
________________________________________
 Adobe Photoshop
________________________________________
 GIMP ________________________________________
________________________________________
Protótipos Interativos ________________________________________
________________________________________
São protótipos completos e representativos. Além ________________________________________
da parte visual, englobam uma série de detalhes
________________________________________
de estética e efeitos de interação, proporcionando
uma experiência rica e realista. Também ajudam ________________________________________
a equipe a identificar novos requisitos, oportuni- ________________________________________
dades e futuros problemas. ________________________________________
________________________________________
As consequências disso para o software são lu- ________________________________________
cros maiores a longo prazo e riscos menores ________________________________________
durante o desenvolvimento. Em contrapartida, ________________________________________
protótipos interativos demandam uma equipe de ________________________________________
maior conhecimento técnico e demoram mais ________________________________________
tempo para serem criados.
________________________________________
Ferramentas bacanas: ________________________________________
________________________________________
 HTML, CSS, Javascript (é, amigo, é mão ________________________________________
na massa, não tem jeito) ________________________________________
________________________________________
 CSS Twitter Bootstrap (framework CSS que ________________________________________
pode acelerar bastante o processo de prototipa- ________________________________________
ção)
________________________________________
 Adobe Dreamweaver (permite fazer protóti- ________________________________________
pos interativos mais simplistas, sem exigir tanto ________________________________________
conhecimento técnico) ________________________________________
________________________________________
Prototipação é importante pois é um meio rápido ________________________________________
e bastante eficiente de se validar uma ideia, uma ________________________________________
nova abordagem ou um novo conceito. Porém, o ________________________________________
tipo de protótipo deve ser pensado com cautela ________________________________________
de acordo com cada necessidade para que se
________________________________________
possa explorar o que de melhor essa técnica po-
________________________________________
de oferecer. Durante a criação de um protótipo de
média/alta fidelidade, esteja sempre alinhado com ________________________________________
a equipe de desenvolvimento; um simples detalhe ________________________________________
prototipado pode gerar um trabalho complexo ________________________________________
________________________________________

19

Você também pode gostar