Buscar

BOAS PRATICAS NA ENGENHARIA DE REQUISITOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 1/15
DevMedia - Versão para impressão
Boas Práticas na Engenharia de
Requisitos
Nauane Karoline Brazolino Dias
Graduanda do curso de Bacharelado em Sistemas de Informações pelo Centro de Ensino Superior de
Juiz de Fora (CES/JF). Estagiária da Prefeitura de Juiz de Fora e integrante do grupo de pesquisa do
projeto Modelagem de Ontologia de Domínio Para Workflow Científico.
Marco Antônio Araújo
Doutorando e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ, Especialista
em Métodos Estatísticos Computacionais e Bacharel em Matemática com Habilitação em
Informática pela UFJF.
De que se trata o artigo:
 Este artigo objetiva a apresentação de padrões para construção de Documento de
Especificação de Requisitos de Software (DERS) e também mostrar boas práticas para sua
elaboração, de forma a facilitar a comunicação entre os stakeholders.
Para que serve:
 Obedecendo a padrões para desenvolvimento do DERS, esse documento apresentará
melhor qualidade, representando, consequentemente, o que os stakeholders esperam do
projeto de software que está sendo desenvolvido, tornando possível que o projeto seja
implementado com maior possibilidade de sucesso, abrangendo as necessidades dos
usuários.
Em que situação o tema é útil:
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 2/15
 Em projetos de software, a Engenharia de Requisitos é normalmente empregada como uma
das fases preliminares. É através da Engenharia de Requisitos que os analistas descobrem as
reais necessidades do cliente e transferem-nas para o DERS. Utilizando os padrões mostrados
neste artigo, é possível criar um DERS com maior qualidade.
 
[abrir imagem em janela]
Figura 1. O processo de Engenharia de Software [3]
 Com os avanços tecnológicos que vem ocorrendo nas últimas décadas e a visível diminuição
do custo do hardware, a informação passa a ser um recurso estratégico das empresas. O
software se tornou, então, a força motora desta nova era. A integridade das informações
oferecidas por um software pode diferenciar uma empresa de suas concorrentes.
 O software é capaz de manipular o produto mais importante para uma empresa - a
informação, e por isso é tão caro. Para evitar que a parte mais cara dos sistemas
computadorizados fosse desenvolvida com baixa qualidade e pouca previsibilidade de custo e
recursos, surgiram técnicas de Engenharia de Software. A Engenharia de Software surgiu com
o objetivo de definir e aplicar métodos que pudessem ajudar no processo de construção,
manutenção e implantação de software.
 A Engenharia de Software pode ser entendida, então, como a disciplina de engenharia
aplicada ao desenvolvimento de software, compreendendo um conjunto de etapas que
envolvem métodos, ferramentas e procedimentos que possibilitam o controle do processo de
desenvolvimento de software, ocupando-se de todos os aspectos, desde os estágios iniciais
de especificação do sistema até a manutenção desse sistema, oferecendo ao profissional uma
base para a construção de software de alta qualidade produtivamente.
 A Engenharia de Requisitos pode ser vista como uma sub-área da Engenharia de Software,
cujo principal objetivo é a obtenção de uma especificação correta e completa dos requisitos.
 Este artigo propõe apresentar a Engenharia de Requisitos e seu principal produto, o
Documento de Especificação de Requisitos de Software (DERS), e mostrar boas práticas para
a construção do mesmo.
A Engenharia de Requisitos
 O principal objetivo da Engenharia de Requisitos é criar e manter documentos de requisitos
de sistemas, chamado de Documento de Especificação de Requisitos de Software (DERS) [2].
O processo de engenharia de requisitos, como um todo, contém quatro grandes sub-
processos que são: em quais aspectos o sistema é útil ao negócio (estudo de viabilidade),
descoberta de requisitos (elicitação e análise), conversão de tais requisitos em um formato
padrão (especificação) e descoberta se tais requisitos realmente definem o sistema tal como o
usuário deseja (validação).
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 3/15
 Na Figura 1 pode ser visto um processo de Engenharia de Software como um todo,
conhecido como Ciclo de Vida Clássico, que também pode ser executado várias vezes como
parte integrante de um ciclo de vida iterativo e incremental.
 
[abrir imagem em janela]
Figura 2. Processo de Engenharia de Requisitos [2]
Esse modelo representa o processo de Engenharia de Software como um todo e envolve as
atividades [3]:
- Análise de requisitos do software: É nessa fase que a Engenharia de Requisitos é aplicada.
Os requisitos do sistema são coletados baseados no conhecimento de domínio do software,
assim como funções requeridas, comportamento, desempenho e interface. 
- Projeto: projeto de software é na verdade um processo de vários passos que foca em quatro
atributos distintos: estrutura de dados, arquitetura do software, representação de interface e
detalhes de procedimentos (algorítmicos). 
- Codificação: o projeto é traduzido em linguagem de máquina através de uma linguagem de
programação. 
- Testes: Os testes focam em descobrir erros e definir que determinadas entradas irão
realmente produzir os resultados esperados. 
- Suporte: O software certamente irá precisar de modificações após ser entregue ao cliente.
Essas modificações podem ocorrer por causa de erros que tenham sido encontrados, novas
funcionalidades, melhoria de desempenho ou adaptação de funcionalidades existentes. 
Neste “modelo” de Engenharia de Software, a Engenharia de Requisitos encontra-se na
primeira fase - a fase de Análise. Na Figura 2, pode-se ver a representação do processo de
Engenharia de Requisitos. 
O processo é iterativo, ou seja, pode-se voltar a uma fase que já foi feita, como em uma
espiral. As três fases principais (elicitação, especificação e validação) são divididas em
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 4/15
subfases. A elicitação, que é responsável por coletar os requisitos, foi dividida em Elicitação
dos Requisitos do Sistema e Elicitação dos Requisitos de Usuário. A fase de especificação foi
dividida em Especificação dos Requisitos de Sistema e Modelagem, Especificação dos
Requisitos de Usuário e Especificação dos Requisitos de Negócio.
E a fase de Validação foi dividida em Estudo de Viabilidade, Prototipação e Revisões. 
Acompanhando a linha de evolução dos processos de Engenharia de Requisitos, começa-se
com a elicitação dos requisitos de usuário e a especificação dos requisitos de negócio para
realizar um estudo de viabilidade. Concluído este processo, é feita a elicitação dos requisitos
do sistema, a especificação dos requisitos do usuário e a especificação dos requisitos de
sistema e modelagem. Nesse ínterim é possível reavaliar alguma pendência nos processos
feitos anteriormente, visando uma melhoria dos mesmos. O próximo passo é a prototipação,
que irá mostrar aos stakeholders um primeiro cenário do software. Em seguida são feitas as
revisões apuradas na validação feita com os stakeholders. Caso esteja tudo feito de acordo
com as pretensões dos interessados no projeto, o Documento de Especificação de Requisitos
de Software (DERS) é considerado pronto e passa-se para a próxima fase do processo de
Engenharia de Software.
 
[abrir imagem em janela]
Figura 3. Estruturado DERS
 Nem sempre é fácil identificar corretamente os requisitos de software, até mesmo devido à
natureza abstrata própria de um projeto de software. Porém, se esse processo não for bem
feito, o DERS ficará comprometido, inviabilizando toda a fase de projeto, que é a fase seguinte
à fase de Análise.
 São muitos os problemas que podem acontecer durante todo o processo de desenvolvimento
e implementação de um software, e problemas relacionados à base da construção do software,
ou seja, os requisitos desse software, podem gerar impactos negativos no final da construção.
Requisitos incompletos ou defeituosos podem causar problemas no produto de software final.
 Muitos projetos têm falhado devido a problemas na elicitação, tais como requisitos
incompletos, mal entendidos ou ambíguos. Faz-se necessário então que esses requisitos
sejam bem construídos de maneira que expressem exatamente o que o usuário deseja, da
maneira que ele deseja e a forma como poderá ser feito. Por isso é importante conhecer
técnicas para tornar a construção destes requisitos mais eficaz.
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 5/15
 Todo o trabalho feito nas fases iniciais de Engenharia de Requisitos (viabilidade, elicitação,
análise e especificação) gera como resultado o DERS. O DERS é o documento oficial do que
deverá ser implementado pelos desenvolvedores do sistema [2].
O Documento de Especificação de
Requisitos de Software
 O DERS, segundo o IEEE (Institute of Electrical and Electronics Engineers), deve ser
completo e não ambíguo, sendo responsável por auxiliar os clientes de software a descrever
com precisão o que eles desejam obter, e desenvolvedores de software a entender
exatamente o que o cliente deseja.
Ainda segundo o IEEE, para os clientes, desenvolvedores e outros indivíduos ligados ao
projeto, um bom DERS deve prover diversos benefícios, tais como:
- Estabelecer a base de acordo entre os clientes e a empresa fornecedora sobre o que o
software irá fazer; 
- Reduzir o esforço de desenvolvimento; 
- Prover uma base para estimativas de custo e prazos; 
- Prover uma base para validação e verificação do produto; 
- Facilitar a manutenção do produto de software final. 
Um DERS conta com alguns padrões indicados para sua elaboração. O IEEE elaborou um
documento que contém padrões e práticas recomendadas para a criação do DERS chamado
IEEE Recommended Practice for Software Requirements Specification - Práticas
Recomendadas para a Especificação de Requisitos de Software. Segundo essas práticas, o
DERS deve ter uma estrutura tal como mostrada na Figura 3.
As seções devem, então, ser preenchidas da seguinte maneira:
- Propósito (1.1): deve delinear o propósito particular deste DERS e especificar para quem
está sendo feito esse documento.
- Escopo (1.2): deve especificar o produto software a ser produzido, nomeando-o; explicar o
que o produto irá fazer e, se necessário, o que não irá fazer, descrever as aplicações do
software que está sendo especificado, incluindo benefícios, objetivos e metas relevantes. 
- Definições, siglas e abreviaturas (1.3): deve prover a definição de todos os termos, siglas e
abreviaturas que são necessárias para entender este DERS. 
- Referências (1.4): deve prover uma lista de todos os documentos que forem referenciados
em outros locais do DERS, identificando cada um por autor, título, data, editora, organização,
e outros atributos quando aplicáveis. 
- Visão Global (1.5): deve apresentar de forma sucinta e resumida o que os capítulos
restantes do DERS irão tratar. 
- Perspectiva do produto (2.1): deve colocar o produto na perspectiva de outros produtos
relacionados. Se é um produto independente, isso deve ser dito aqui. Caso contrário, se é um
componente de um sistema maior, o que ocorre frequentemente, então esta subseção deve
relatar as interfaces entre esse software e o sistema, além dos requisitos do sistema maior
para a funcionalidade deste software. 
- Funções do produto (2.2): deve prover um índice das principais funções que o software irá
executar. 
- Características do usuário (2.3): deve descrever as características gerais dos usuários do
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 6/15
produto.
- Restrições (2.4): deve descrever qualquer outro item que limite as opções do produto, tais
como políticas de controle, limitações de hardware, interface com outras aplicações, controles
de segurança, entre outros itens que forem relevantes. 
- Pressupostos e Dependências (2.5): deve listar todos os fatores que afetem os requisitos
definidos. 
- Requisitos Específicos (3): contém a definição dos requisitos de software. É o principal
capítulo do DERS, pois é nesta seção que os requisitos funcionais e não funcionais estarão
definidos. 
Esse modelo apresentado é o padrão que o IEEE indica. Cockburn (2005) apresenta uma
complementação a este modelo, onde utiliza um modelo semelhante ao modelo do IEEE,
acrescido de um capítulo para descrição de casos de uso que implementem os requisitos
funcionais especificados. Casos de uso representam a interação do sistema com seus
usuários e servem como um meio de comunicação entre os envolvidos no projeto e são
geralmente descritos em forma textual, embora possam ser descritos de outra maneira, tal
como fluxogramas, diagramas, entre outras. Assim, utilizando casos de uso, o usuário revê os
diagramas e as especificações para determinar se o analista realmente capturou os requisitos
do sistema. Por este motivo, é essencial que os diagramas e as especificações mostrem ao
usuário os aspectos essenciais para que o software seja desenvolvido. Dessa forma, o modelo
do IEEE ganha um capítulo para facilitar a fase de validação junto aos stakeholders.
 
[abrir imagem em janela]
Figura 4. Estrutura baseada no modelo de Cockburn (2005) para o DERS
 
[abrir imagem em janela]
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 7/15
Figura 5. Custos para Correção de Falhas
 Então, com essa proposta, o documento de requisitos utilizado terá o aspecto apresentado
na Figura 4.
 Com este modelo, pretende-se construir um documento completo, que consiga atingir de
forma objetiva e completa todos os requisitos do software, além de utilizar os casos de uso
para mostrar ao usuário o software que será projetado. De acordo com a Figura 4, foram
inseridos dois itens, um para os diagramas de caso de uso, que deve seguir o padrão da UML
(Unified Modeling Language), e o outro com a descrição minuciosa dos casos de uso. Assim,
pode-se mostrar aos interessados no projeto mais detalhadamente o que se pretende como
intuito de aumentar a acuidade do DERS. Quando um processo de requisitos é ineficaz, o
DERS não reflete as necessidades reais do cliente, o que gera um software de baixa
qualidade. Segundo estudos, de 40% a 60% de todos os problemas encontrados em um
projeto de software são causados por falhas no processo de requisitos. Se a fase de
engenharia de requisitos for bem feita, esses problemas poderiam ser detectados e corrigidos
a um custo muito mais baixo. De acordo com o quadro da Figura 5, o custo para corrigir um
defeito na fase de testes supera em mais de 30 vezes o custo para corrigir a mesma falha
durante a fase de requisitos. Com essa análise, podemos facilmente detectar que boas
práticas de engenharia de requisitos que procurem evitar a propagação de falhas para outras
fases podem trazer benefícios como a redução de custo do projeto. Entre estas boas práticasestão a padronização, a inspeção e a revisão do DERS.
Boas Práticas para Construção do DERS
 De acordo com o modelo apresentado na Figura 3 (e ampliado na Figura 4), os itens 1 e 2
abordam outros aspectos do software e do projeto de software que não são, por si só,
requisitos do software.
Esses dois itens devem ser escritos obedecendo as orientações do IEEE e as especificações
da empresa.
 O item 3, conforme apresentado na Figura 3, configura-se então como o capítulo mais
importante, pois será através deste item que o software será especificado e é com base neste
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 8/15
item que o cliente irá validar o produto. Os itens 4 e 5 também são importantes, pois são uma
maneira de mostrar aos stakeholders a primeira visão do projeto.
Requisitos Específicos
 No item de Requisitos Específicos (item 3 conforme modelo apresentado na Figura 4) do
DERS devem-se descrever os requisitos de software, que serão funcionais e não-funcionais.
 Os requisitos funcionais são aqueles que dizem respeito à funcionalidade do software, o que
ele deve fazer. Esses requisitos descrevem como o sistema deve reagir a particulares
entradas e saídas e como deve agir em determinadas situações. Se necessário, também
podem ser incluídos requisitos que expliquem o que o sistema não será capaz de fazer. Os
requisitos não-funcionais são restrições aos serviços e funções oferecidos pelo sistema.
Geralmente se aplicam ao sistema como um todo e não são, geralmente, aplicados
individualmente a uma característica ou serviço do sistema. Entre esses requisitos se
encontram, por exemplo, os requisitos de desempenho, de segurança, de entrada e saída,
entre outros.
 Descrever bem estes requisitos é fundamental para que o DERS se torne um bom DERS,
pois serão estes os requisitos implementados pelos casos de uso que serão diagramados e
desenhados nos diagramas e especificações dos casos de uso (itens 4 e 5 conforme modelo
apresentado na Figura 4). Entretanto, nem sempre é fácil descrever tais requisitos e sua forma
depende muito do software que está sendo descrito [2]. É difícil então escolher um padrão
geral para criação destes requisitos.
 Porém, apesar das diferenças entre cada projeto de software, que irão gerar requisitos muito
diferentes em cada DERS, o IEEE apresenta algumas características que devem ser comuns a
todos os requisitos. O IEEE recomenda que um requisito deve ser correto, não ambíguo,
completo, consistente, verificável, modificável e rastreável. Ainda é recomendável que os
requisitos sejam organizados de forma a facilitar a leitura do documento. Isso pode ser feito
agrupando requisitos que tenham alguma funcionalidade em comum.
Diagrama de Casos de Uso
 O diagrama de casos de uso deve mostrar, graficamente, todas as funções que um sistema
precisará desempenhar e, para sua construção, deve obedecer aos padrões da UML.
 De maneira geral, os casos de uso deverão ter a mesma nomenclatura das funções listadas
no item 2.2 do modelo proposto (Figura 4). Esta prática é recomendada de forma a gerar um
documento sem ambiguidades e que será mais facilmente lido pelo usuário.
 Cada categoria de usuário do sistema, desde que tenha um nível de acesso diferente, deve
ser representada por um ator que irá ter acesso às funções do sistema representadas pelos
casos de uso. Cada um desses casos de uso será descrito no item 5 da especificação.
Descrição dos Casos de Uso
 Os casos de uso são muito indicados para o DERS porque rapidamente se aprende a ler um
caso de uso. "Os casos de uso são [...] populares porque contam uma história coerente de
como o sistema irá se comportar em uso. Os usuários do sistema conseguem ver o que este
novo sistema será" [2]. Com um caso de uso bem feito, é possível mostrar aos usuários o que
o sistema se propõe a fazer e validar com o usuário se esta perspectiva está correta.
 Um caso de uso é escrito em linguagem natural e é constituído por uma sequência de
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 9/15
sentenças. Estes passos são compostos por ações simples, que descrevem o ator realizando
uma tarefa ou passando informação para um outro ator. Um caso de uso tem normalmente, ao
menos, dois finais possíveis, um de sucesso e outro de erro. Um caso de uso sempre será
responsável por implementar, pelo menos, um requisito funcional do sistema. Todos os
requisitos funcionais do sistema devem estar ligados a um ou mais casos de uso.
Essas ligações entre casos de uso e requisitos é necessária para permitir a rastreabilidade
dos requisitos. Uma vez que um requisito mude, é possível, através dos casos de uso aos
quais ele está ligado, ver qual o impacto da mudança e aplicá-la a todo o documento,
mantendo-o íntegro.
 Um caso de uso pode especificar objetivo, requisitos implementados, atores, prioridade, pré-
condições, frequência de uso, pós-condições, fluxo principal, fluxos alternativos, fluxos de
exceção, validações, regras de negócio e protótipo de interfaces. Algumas dessas informações
podem ser suprimidas e consideradas opcionais, dependendo do sistema que está sendo
especificado.
 O objetivo de um Caso de Uso (UC - Use Case) deve descrever para que serve esse UC em
poucas palavras. Os requisitos implementados representam a ligação dos requisitos
especificados no item de Requisitos Específicos (item 3) com o UC que está sendo descrito.
Os atores são os usuários específicos do UC e deve ser um dos usuários do sistema. A
prioridade de um UC normalmente é descrita como Alta, Média ou Baixa, assim como a
frequência de uso, e essas duas informações serão importantes no momento de
desenvolvimento do software, caso seja necessário priorizar o desenvolvimento de parte do
software. As pré-condições dizem respeito às condições que deverão ser respeitadas antes do
início do caso de uso, ou seja, como o caso de uso não será chamado caso esta restrição não
seja cumprida, essas condições não irão gerar fluxo de exceção e não precisarão de
validação. Mas é importante tomar cuidado, uma condição que nem sempre é verdadeira não
pode ser classificada como uma pré-condição. Caso uma condição seja verdadeira com
algumas ressalvas deve-se criar uma validação referente a isto e gerar fluxos de exceção, e
não apontá-la como uma pré-condição. A pós-condição descreve em que o caso de uso
modificou o sistema.
Os fluxos são a parte principal do caso de uso. Um caso de uso deve conter todos os cenários,
tanto de sucesso quanto de falha. A melhor maneira de organizar o texto é escrever o cenário
de sucesso principal, ou fluxo principal, como uma sequência numerada simples de passos
que é executada do acionamento até a conclusão. Depois disso, devem-se descrever os
outros cenários, sendo os cenários de sucesso alternativos, chamados de fluxos alternativos,
e os cenários de falha, chamado de fluxos de exceção.
Algumas boas práticas para escrever um caso de uso de forma eficaz são [2]:
- Utilizar gramática simples: o principal objetivo do UC é mostrar, de forma clara, o que o
sistema faz. Se um texto complexo for escrito para descrever esse UC, o seu entendimento
será prejudicado.
- Mostrar claramente quem são os atores: mostrando claramente quais são os atores do UC,
fica mais fácil para os stakeholders compreenderem o UC e as suas funções.
- Incluir todas as ações: na descrição do UC não adianta apenas colocar a descrição de
sucesso do mesmo. É preciso colocar todas as ações, de sucesso e de falha. Todas as ações
que puderem ser tomadas pelos atores poderão gerar caminhos alternativos, e esses devem
ser descritos.- Validar (nunca verificar): o termo validar é preferível ao termo verificar, pois deixa claro que o
sistema irá validar os dados inseridos de acordo com as regras de negócio e restrições para
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 10/15
os valores. - Mencionar o tempo apenas opcionalmente: não é obrigatório mencionar o tempo,
pois fica implícito que um passo ocorre logo após o anterior.
Os erros mais comuns são estender desnecessariamente os casos de uso e descrever com
uma precisão desnecessária, omitir o sujeito das sentenças (omitindo também o ator), fazer
suposições sobre o projeto de interface com o usuário e usar níveis de objetivos que são
muito baixos.
 
[abrir imagem em janela]
Figura 6. Exemplo de Requisitos Funcionais
 Ou seja, ser muito específico é ruim, pois tende a aumentar desnecessariamente a
complexidade do projeto, entretanto, também não se deve ser objetivo demais, omitindo
pontos importantes do caso de uso.
 Cockburn (2005) diz que "há apenas um formato de sentença usado na escrita de passo de
ação no caso de uso: uma sentença no presente, com verbo ativo na voz ativa, descrevendo
um ator alcançando com sucesso um objetivo que move o processo adiante". Um bom exemplo
disso é: “O ator seleciona a opção Incluir Cliente.”
A Inspeção do DERS
A inspeção do DERS é muito importante para o sucesso do DERS e deve avaliar o documento
como um todo em busca de defeitos antes da validação junto ao cliente e usuários. Os erros
encontrados em um DERS podem ser: 
- Omissão: é todo erro relativo a alguma informação que não foi descrita, ou seja, que não
está presente no DERS. Pode ser algum requisito que não foi incluído, falta de resposta do
sistema a alguma situação, falta da definição de termos, entre outras omissões. 
- Ambiguidade: ocorre sempre que alguma informação estiver descrita de forma a poder causa
confusão ou dúvida. 
- Inconsistência: é alguma sentença que contradiz algo que foi dito anteriormente no
documento. 
- Fato Incorreto: é quando um fato descrito no DERS não é verdadeiro ou não pode ser
executado, de acordo com as condições especificadas no domínio da aplicação. 
- Informação Estranha: são as informações que não pertencem ao DERS, não sendo
necessárias para o entendimento do mesmo. Esse problema também contempla as
informações que são passadas, mas não são utilizadas em nenhum momento no DERS.
 É altamente recomendável que a inspeção do DERS seja feita por um outro profissional, que
não o responsável por criar o DERS.
Estudo de Caso
 Com base na estrutura apresentada, apresentaremos a partir de agora um estudo de caso.
Construção do DERS
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 11/15
 O primeiro passo é descrever todos os requisitos do sistema, que devem ser elicitados com
os stakeholders. Levando em conta que neste estudo de caso deseja-se apenas realizar o
login, então se devem descrever apenas os requisitos diretamente ligados a esta
funcionalidade. Ao conversar com os stakeholders do projeto, o seguinte cenário foi obtido
(Figura 6).
 Nota-se que apenas um requisito foi levantado. Tendo os requisitos especificados, deve-se
construir o diagrama de casos de uso que irá implementar estes requisitos antes da descrição
de tais casos de uso. 
 
[abrir imagem em janela]
Figura 7. Exemplo de Diagrama do Caso de Uso
 
[abrir imagem em janela]
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 12/15
Figura 8. Descrição do Caso de Uso
 
[abrir imagem em janela]
Figura 9. Exemplo de Caminhos Alternativos
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 13/15
Levando-se em conta o requisito apurado, o diagrama da Figura 7 é o suficiente para
implementá-lo.
 Após elicitar os requisitos, especificá-los e criar um diagrama de casos de uso que o
implemente, é necessário descrever o caso de uso conforme pode ser observado na Figura 8.
 Com base nas prerrogativas e modelo mostrados anteriormente, construiu-se a descrição
acima. Pode-se visualizar um quadro com as informações básicas descritas. Há ainda a
descrição dos campos do formulário Login, que é parte deste caso de uso, e o Fluxo Principal
- que são as ações do ator dentro do caso de uso.
Inspeção do DERS
 A inspeção do DERS, como dito anteriormente, deve ser feita por outros membros da equipe,
que não aquele que foi responsável por sua criação. Esta pessoa terá maior facilidade em
encontrar os defeitos do documento, pois terá que entender o documento com sua leitura, e
através deste exercício poderá conseguir encontrar defeitos. Os defeitos de um DERS o
tornam de difícil compreensão.
 Ao ler o fragmento de DERS apresentado, percebe-se que não há fluxos alternativos,
mostrando os caminhos alternativos de sucesso e de falha. A Figura 9 mostra os possíveis
caminhos alternativos que deveriam estar no documento.
 O Fluxo Principal também deve ser alterado para indicar em que momento ocorrem os fluxos
alternativos. O Fluxo Alternativo [A1], por exemplo, ocorre no passo 3 do Fluxo Principal, pois o
ator, ao invés de escolher a opção Login, escolhe a opção Cancelar. O mesmo vale para o
[A2]. Já os Fluxos de Exceção normalmente ocorrem no passo que contiver o termo "validar".
Neste exemplo, os Fluxos de Exceção [E1] e [E2] ocorrerão no passo 4. 
 
[abrir imagem em janela]
Figura 10. Exemplo de Fluxo Principal com Ligação para Caminhos Alternativos
O Fluxo Principal ficará como mostrado na Figura 10.
 Uma leitura minuciosa e detalhista é importante para detectar todos os eventuais defeitos que
possam existir no DERS. Consultando a Figura 7, pode-se notar que o caso de uso foi
denominado "Entrar no Sistema", enquanto na descrição do mesmo (Figura 8), percebe-se
que o termo utilizado foi "Realizar login". Este é, geralmente, um dos defeitos mais comuns em
um DERS, tratando-se de uma inconsistência. Quando se trata de um sistema pequeno como
o descrito neste exemplo, é fácil perceber que o caso de uso do diagrama é o caso de uso que
está sendo descrito. Porém, este problema torna-se ainda mais grave quando pensado em um
sistema maior. A terminologia empregada deve obedecer a um padrão. Neste caso, deve-se
escolher apenas um dos dois termos e utilizá-los ao longo de todo o DERS para descrever o
caso de uso. Pode-se mudar no diagrama ou na descrição, mas os dois têm que ter a mesma
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 14/15
nomenclatura.
 Outro tipo de defeito - ambiguidade - pode ser notado durante a descrição do caso de uso.
Na descrição dos campos está escrito que existe um campo Nome, porém ao visualizar o
protótipo da tela, percebe-se a existência de um campo Usuário, e nenhum campo Nome.
Esses termos também não podem diferir, pois atrapalham o entendimento do DERS. A mesma
coisa para a opção Entrar descrita na seção Campos, que é chamada Opção Login na seção
Fluxo Principal, e é desenhada como um botão Login no formulário. A diversidade de
vocabulário pode ser uma fonte de inconsistências no documento, gerando ambiguidade. Um
só termo utilizado para denominar diversos elementos, ou vários termos para determinar uma
mesma situação, pode gerar interpretações errôneas.
 Outro erro incomum é o de Omissão. Observa-se na Figura 8 que não existe uma opção para
recuperação de senha.Essa opção é comum a formulários de login, pois o usuário pode eventualmente esquecer sua
senha e o sistema deve prover uma maneira de recuperá-la.
 Mesmo sabendo-se que é necessário um ponto para recuperação de senha, o Fluxo
Alternativo [A2] pode ser visto como uma Informação Inconsistente, pois com base no presente
documento, não pode ser executada.
 Analisando o protótipo de tela proposto, ainda é possível encontrar um outro defeito, que
pode ser categorizado com um Fato Estranho. Nota-se que o formulário tem três botões,
sendo que apenas dois dos quais estão sendo utilizados e descritos pelo caso de uso. O
terceiro botão "Fechar" parece ser um botão que está sobrando e, por isso, configura-se como
um defeito.
 Ainda é possível encontrar outros defeitos com uma leitura atenciosa. Por exemplo, quais são
os níveis de acesso? Esse é um defeito de omissão. Pode ser que, ao completar o DERS,
essa definição fosse feita, mas nesse momento ela não existe. É sempre importante delimitar o
software, de forma que não sejam encontradas omissões ou ambiguidades. Um documento
íntegro é muito importante para a construção de um bom software.
 Categorizar defeitos é um processo um pouco subjetivo e depende da interpretação do
inspetor do documento. Por isso é importante fazer uma leitura minuciosa e atenta, marcando
os defeitos encontrados e justificando-os, para que posteriormente o DERS possa ser
revisado pelo seu construtor.
Conclusão
 A Engenharia de Requisitos tem como um de seus objetivos a criação do Documento de
Especificação de Requisitos de Software (DERS). O DERS é construído com o intuito de
conseguir descrever o que o usuário deseja antes de começar a implementar o projeto.
 Quando um DERS é bem construído, através de sua avaliação junto aos stakeholders do
projeto, é possível descobrir se os interesses dos mesmos foram corretamente entendidos,
fazendo as necessárias correções a um custo muito inferior se comparado a custos em outras
etapas do projeto.
 Criar um bom DERS nem sempre é fácil, mas seguindo algumas diretrizes, como as do IEEE,
pode-se criar um DERS consistente e completo. Adicionando casos de uso ao DERS ainda é
possível chegar mais próximo aos stakeholders, pois trata-se de uma linguagem de
3/4/2014 DevMedia - Versão para impressão
http://www.devmedia.com.br/websys.5/webreader_print.asp?cat=48&artigo=2817&revista=impressao_27#a-2817 15/15
entendimento mais fácil.
 Algumas boas práticas facilitam a criação de um caso de uso eficaz, que será capaz de
fornecer aos interessados no projeto todas as informações que estes precisam, de maneira
objetiva e completa.
 Com um DERS completo, não ambíguo e objetivo, um projeto tem maiores chances de chegar
ao resultado esperado pelos stakeholders, ou seja, ter sucesso.

Outros materiais