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;
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:
Requisitos de Domínio
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.
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;
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;
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.
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.
11
diferentes grupos garantirá uma boa representa- Uso de técnicas visuais: para aumentar a
ção; comunicação e o entendimento;
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;
É 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);
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;
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;
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.
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
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