Escolar Documentos
Profissional Documentos
Cultura Documentos
Universidade de So Paulo
So Carlos
ESPECIFICAO DE REQUISITOS:
UMA INTRODUO
Maro de 1996
1
Este trabalho foi desenvolvido como parte das atividades do estgio supervisionado realizado no
Programa de Aperfeioamento de Ensino (PAE) no segundo semestre de 1995.
CONTEDO
1. INTRODUO................................................................................................. 3
5. CONCLUSES................................................................................................. 18
2
1. Introduo
O processo de desenvolvimento de software compreende um conjunto de
atividades que engloba mtodos, ferramentas e procedimentos, com o objetivo de
produzir softwares que atendem aos requisitos especificados pelos usurios (clientes)
[May90; Pre94]. A satisfao dos requisitos especificados pelos usurios a pr-
condio bsica para o sucesso de um software. Um software que foi mal
especificado, certamente ir desapontar o usurio e causar problemas equipe de
desenvolvimento, que ter de modific-lo para se adequar s necessidades do usurio.
De acordo com Castro [Cas95], a especificao de requisitos serve como um padro
para testar se as fases de projeto e implementao do processo de desenvolvimento de
software esto corretas.
O objetivo principal deste trabalho mostrar como um documento de requisitos
(informal) deve ser organizado e redigido para que seja legvel, no ambguo e siga as
diretrizes propostas por padres internacionais (por exemplo, Norma ISO/IEC 9126)
quanto especificao de requisitos. Isso realizado apresentando-se uma verso de
um documento de requisitos que analisada e corrigida, dando origem a um
documento organizado dentro dos padres propostos.
Este trabalho apresenta na seo 2 uma viso geral da engenharia de requisitos,
dando nfase, principalmente, definio e ao processo de engenharia de requisitos.
Na seo 3 apresentado um exemplo de um documento de requisitos (especificao
informal) de um determinado problema. A partir de uma anlise crtica dessa
especificao, utilizando regras de estruturao de especificaes de requisitos,
apresentado na seo 4 um documento estruturado de requisitos do sistema.
Finalizando, a seo 5 contm as concluses deste trabalho.
3
Segundo o dicionrio Aurlio [Aur86], o termo requisito pode ser definido
como condio necessria para a obteno de certo objetivo, ou para o
preenchimento de certo fim. J o termo especificao uma descrio rigorosa e
minuciosa das caractersticas que um material, uma obra, ou um servio devero
apresentar.
De acordo com o IEEE [IEE84; IEE91], o processo de aquisio, refinamento e
verificao das necessidades do usurio chamado de engenharia de requisitos (E.R.).
O objetivo da E.R. sistematizar o processo de definio dos requisitos, obtendo uma
especificao correta e completa dos requisitos. O entendimento da engenharia de
software como uma disciplina que procura tornar mais eficaz o software e mais
eficiente o processo utilizado para produzir este software fundamental para entender
o papel da E.R.
Boehm [Boe89] define a E.R. como uma disciplina cujo objetivo desenvolver
uma especificao completa, consistente e no ambgua, servindo de base para um
acordo entre todas as partes envolvidas e descrevendo o qu o produto de software ir
fazer ou executar, mas no como ele ser feito.
Segundo Leite [Lei90; Lei94], a E.R. estabelece o processo de definio de
requisitos como um processo no qual o que deve ser feito elicitado, modelado e
analisado. Este processo deve se basear em diferentes pontos de vista e usar uma
combinao de mtodos, ferramentas e pessoal. O produto deste processo um
modelo que servir para produzir um documento de requisitos. Este processo acontece
num contexto chamado de Universo de Informaes (UdeI), que apresentado na
Figura 1 e descrito a seguir.
Para produzir um documento de requisitos completo e consistente produto da
E.R. necessrio, inicialmente, entender melhor o contexto em que o problema se
situa, ou seja, quais so os objetivos do produto a ser desenvolvido, as
tarefas/atividades fundamentais para a engenharia deste produto e os limites do
desenvolvimento. Assim, para especificar corretamente os requisitos necessrio
definir o UdeI.
Segundo Leite [Lei94], UdeI o contexto geral no qual o software dever ser
desenvolvido. O UdeI inclui todas as fontes de informao e todas as pessoas
relacionadas ao software, s quais denominamos de agentes deste universo. O UdeI
a realidade circunstanciada pelo conjunto de objetivos definidos por quem solicitou o
software.
4
verbos eliciar (fazer sair, extrair, trazer tona a verdade), clarear, extrair e descobrir.
Assim, uma definio sucinta de elicitao obter e tornar explcito o mximo de
informaes possveis para o conhecimento de um objeto em questo.
UdeI
Documento de Requisitos
do Sistema
ELICITAR
UdeI ANALISAR
Mtodos,
Decises da Tcnicas e
Anlise Ferramentas
MODELAR Modelo de
Anlise do
Sistema
Figura 1: Processo de Engenharia de Requisitos.
5
do UdeI, enfoque antropolgico, reunies, reutilizao e recuperao (engenharia
reversa) do projeto do software.
Para que a elicitao tenha sucesso fundamental que os engenheiros de
requisitos se comuniquem eficazmente com os clientes ou pessoas (especialistas) que
entendem o problema. O engenheiro de requisitos precisa se envolver com o trabalho
do cliente e/ou especialistas no domnio, se envolver com os funcionrios, observar,
aprender e questionar.
Como resultado da fase de elicitao de requisitos desenvolvido o documento
de requisitos do sistema que contm a especificao de requisitos. Este documento
utilizado como base para as fases seguintes: anlise de requisitos e modelagem
[Fio95].
2.3. Modelagem
A fase de modelagem tem por objetivo criar e desenvolver modelos que
descrevem esttica e dinamicamente o que o sistema deve fazer, e no como deve ser
feito. Estes modelos expressam os requisitos descritos no documento de requisitos,
possibilitando um maior entendimento do domnio da aplicao, servindo para
determinar se a especificao est completa, consistente e precisa, fornecendo uma
transio para a fase de projeto. Diversos mtodos para apoiar o projetista na
modelagem de sistemas existem na literatura, como por exemplo: FUSION [Col94],
Booch [Boo91], OMT, JSD e Anlise Estruturada.
6
O documento de requisitos de um software contm todos os requisitos
funcionais e de qualidade do software, incluindo as capacidades do produto, os
recursos disponveis, os benefcios e os critrios de aceitao. Este documento serve
como um meio de comunicao entre o projetista do software e o usurio, a fim de
estabelecer um acordo acerca do software pretendido. Deve-se evitar que durante o
desenvolvimento do documento de requisitos decises de projeto sejam tomadas.
Assim, devido importncia do documento de requisitos dentro do processo de
desenvolvimento do software, fundamental que este documento seja organizado de
forma a melhorar a compreenso e a legibilidade dos requisitos, evitando que
problemas e erros surjam na fase de implementao do software.
O documento de requisitos do sistema deve ser composto por sentenas em
linguagem natural, seguindo determinados padres:
1) Iniciar com O sistema deve ....
Exemplo:
O sistema deve rodar em microcomputadores da linha IBM PC que
possuam microprocessador 486 DX ou superior.
2) Os requisitos devem estar organizados logicamente, como por exemplo,
inicialmente todos os requisitos de entrada, depois os de processamento e por ltimo
os requisitos de sada.
3) Cada requisito deve ter um identificador nico, por exemplo, um
identificador numrico, para posterior referncia.
4) Os requisitos do software devem estar divididos em requisitos funcionais e
no funcionais. Embora as suas fronteiras nem sempre sejam precisas de se
determinar, esta diviso tem sido bastante usada na literatura.
A Norma ISO/IEC 9126 [ISO9126] define seis caractersticas de qualidade de
software que devem ser avaliadas e tambm prope algumas subcaractersticas:
Funcionalidade, Usabilidade, Confiabilidade, Eficincia, Manutenibilidade e
Portabilidade. A seguir cada um destas caractersticas ser descrita segundo esta
norma.
A Funcionalidade define os requisitos funcionais que o software ou
componentes do software devem executar. A funcionalidade diz respeito finalidade
a que se prope o produto de software e , portanto, a principal caracterstica de
qualidade para qualquer tipo de software.
Definio de Funcionalidade [ISO9126]: Conjunto de atributos que
evidenciam a existncia de um conjunto de funes e suas propriedades especificadas.
As funes so as que satisfazem as necessidades explcitas e implcitas2. A Norma
2
Esse conjunto de atributos caracteriza o que o software faz para satisfazer as necessidades, enquanto
os outros conjuntos caracterizam principalmente quando e como ele faz.
7
ISO/IEC 9126 apresenta ainda, de forma informativa, a subdiviso em
subcaractersticas:
4.1. Adequao: atributos do software que evidenciam a presena de um
conjunto de funes e sua apropriao para as tarefas especificadas.
4.2. Acurcia: atributos do software que evidenciam a gerao de resultados ou
efeitos corretos ou conforme acordados.
4.3. Interoperabilidade: atributos do software que evidenciam sua capacidade
de interagir com sistemas especificados.
4.4. Conformidade: atributos do software que fazem com que ele esteja de
acordo com as normas, convenes ou regulamentaes previstas em leis e descries
similares, relacionadas aplicao.
4.5. Segurana de acesso: atributos do software que evidenciam sua capacidade
de evitar o acesso no autorizado, acidental ou deliberado, a programas e dados.
Os requisitos no funcionais, tambm denominados de requisitos de qualidade,
incluem tanto limitaes no produto (desempenho, confiabilidade e segurana) como
limitaes no processo de desenvolvimento (custos, mtodos a serem adotados no
desenvolvimento e componentes a serem reutilizados). As caractersticas de qualidade
de software so: Usabilidade, Confiabilidade, Eficincia, Manutenibilidade e
Portabilidade.
Definio de Usabilidade [ISO9126]: Conjunto de atributos que evidenciam o
esforo necessrio para se poder utilizar o software, bem como o julgamento
individual desse uso, por um conjunto explcito ou implcito de usurios3.
A Usabilidade caracterizada por um produto ser fcil de usar, de aprender e de
recordar. A satisfao do usurio quando usa um produto um fator importante. E,
mais importante ainda, verificar se o produto desempenha eficientemente a tarefa
para a qual foi projetado. Usabilidade tem se tornado uma vantagem competitiva e
significativa no desenvolvimento de software. A Norma ISO/IEC 9126 apresenta a
subdiviso em subcaractersticas de usabilidade:
4.6. Inteligibilidade: atributos do software que evidenciam o esforo do usurio
para reconhecer o conceito lgico e sua aplicabilidade.
4.7. Apreensibilidade: atributos do software que evidenciam o esforo do
usurio para aprender sua aplicao (por exemplo: controle de operao, entradas,
sadas).
4.8. Operacionalidade: atributos do software que evidenciam o esforo do
usurio para sua operao e controle da sua operao.
3
A usabilidade deve levar em conta os vrios ambientes de usurios que o software pode afetar, que
podem abranger desde a preparao para uso at a avaliao de resultados. A usabilidade definida nesta
Norma diferente da definio do ponto de vista ergonmico, em que outras caractersticas como
eficincia e eficcia tambm so consideradas componentes da usabilidade.
8
Definio de Confiabilidade [ISO9126]: Conjunto de atributos que evidenciam
a capacidade do software de manter seu nvel de desempenho sob condies
estabelecidas durante um perodo de tempo estabelecido4. As subcaractersticas de
confiabilidade so:
4.9. Maturidade: atributos do software que evidenciam a freqncia de falhas
por defeitos no software.
4.10. Tolerncia a Falhas: atributos do software que evidenciam sua capacidade
em manter um nvel de desempenho especificado nos casos de falhas no software ou
de violao nas interfaces especificadas.
4.11. Recuperabilidade: atributos do software que evidenciam sua capacidade
de restabelecer seu nvel de desempenho e recuperar os dados diretamente afetados,
em caso de falha, e em tempo e esforo necessrios para tal.
Definio de Eficincia [ISO9126]: Conjunto de atributos que evidenciam o
relacionamento entre o nvel de desempenho do software e a quantidade de recursos
usados, sob condies estabelecidas5. A subdiviso das caractersticas de eficincia
:
4.12. Comportamento em relao ao Tempo: atributos do software que
evidenciam seu tempo de resposta, tempo de processamento e velocidade na execuo
de suas funes.
4.13. Comportamento em relao aos Recursos: atributos do software que
evidenciam a quantidade de recursos usados e a durao de seu uso na execuo de
suas funes.
Definio de Manutenibilidade [ISO9126]: Conjunto de atributos que
evidenciam o esforo necessrio para fazer modificaes especificadas no software6.
A Manutenibilidade a facilidade com a qual o programa pode ser corrigido se
um erro encontrado; ser adaptado se o ambiente mudar ou ser melhorado se o cliente
desejar alguma mudana nos requisitos. Provavelmente, o fator mais importante que
afeta a manutenibilidade o planejamento para manutenibilidade. Se o software
visto como um elemento de um sistema que inevitavelmente sofrer mudanas, as
chances de se produzir um software manutenvel iro aumentar substancialmente. A
subdiviso das subcaractersticas de manutenibilidade :
4
Em software no ocorre desgaste ou envelhecimento. As limitaes em confiabilidade so decorrentes
de defeitos na especificao dos requisitos, projeto ou implementao. As falhas decorrentes desses
defeitos dependem de como o produto de software usado e das opes de programa selecionadas, e
no do tempo decorrido.
5
Os recursos podem incluir outros produtos de software, hardware, materiais (por exemplo: papel para
impressora, discos flexveis) e servios de operao, manuteno ou suporte.
6
As modificaes podem incluir correes, melhorias ou adaptaes do software devido a mudanas no
ambiente, ou nos seus requisitos.
9
4.14. Analisabilidade: atributos do software que evidenciam o esforo
necessrio para diagnosticar deficincias ou causas de falhas ou para identificar partes
a serem modificadas.
4.15. Modificabilidade: atributos do software que evidenciam o esforo
necessrio para modific-lo, remover seus defeitos ou adapt-lo a mudanas
ambientais.
4.16. Estabilidade: atributos do software que evidenciam o risco de efeitos
inesperados ocasionados por modificaes.
4.17. Testabilidade: atributos do software que evidenciam o esforo necessrio
para validar o software modificado.
Definio de Portabilidade [ISO9126]: Conjunto de atributos que evidenciam
a capacidade do software de ser transferido de um ambiente para outro7. As
subcaractersticas de portabilidade so:
4.18. Adaptabilidade: atributos do software que evidenciam sua capacidade de
ser adaptado a ambientes diferentes especificados, sem a necessidade de aplicao de
outras aes ou meios alm daqueles fornecidos para essa finalidade pelo software
considerado.
4.19. Capacidade para ser instalado: atributos do software que evidenciam o
esforo necessrio para sua instalao num ambiente especificado.
4.20. Capacidade para substituir: atributos do software que evidenciam sua
capacidade e esforo necessrio para substituir um outro software, no ambiente
estabelecido para esse outro software.
4.21. Conformidade: atributos do software que o tornam consonante com
padres ou convenes relacionados portabilidade.
7
O ambiente pode incluir ambiente organizacional, de hardware ou de software.
10
informaes tais como: nome, local e data da publicao; autor; resumo; etc. Esse
arquivo pode ser atualizado, consultado e utilizado de diversas maneiras. Um tipo de
utilizao que o sistema deve permitir a de produzir, de forma automatizada, um
arquivo de referncias bibliogrficas relativo a um documento especfico em
elaborao. Ou seja, tendo como base o texto do documento, identificar todas as
referncias que ocorrem no texto, extrair da base bibliogrfica e armazenar, em forma
padro, em arquivo, que ser posteriormente parte integrante do documento em
elaborao. A seguir relata-se como essas atualizaes, consultas e utilizaes devem
ser efetuadas.
11
- O sistema deve fornecer facilidades para a realizao de backups das
bibliografias.
12
- Ao usurio ser permitido somente completar algum item do arquivo de
referncias; ou aqueles inexistentes na bibliografia, ou aqueles que eventualmente
tenham sido inseridos de forma incompleta. No deve ser possvel ao usurio alterar
as informaes geradas automaticamente pelo sistema.
13
bibliografias no est classificado corretamente dentro da seo
Informaes para a atualizao do arquivo de bibliografia.
14
de bibliografia do terceiro e sexto requisito da seo 1, e tambm a mesma
que bibliografia do quarto requisito da seo 4?
b) O termo ... citados no texto do primeiro requisito da seo 4 o mesmo
que ... mencionados no texto. do terceiro requisito da seo 4, e tambm
o mesmo que ... se existir alguma citao no trabalho.... do quarto requisito
da seo 4?
15
B. Requisitos Funcionais
16
(todo a bibliografia do pesquisador) ou parcial (somente alguns itens
bibliogrficos).
10. O sistema no deve permitir a alterao da bibliografia por parte de pesquisadores
no autorizados (Segurana de Acesso).
17
18. Caso o sistema encontre uma citao no documento que no esteja na
bibliografia, o sistema dever fornecer uma mensagem adequada ao pesquisador
alertando a ocorrncia de uma possvel citao incorreta.
19. O sistema no deve permitir que o pesquisador altere as informaes geradas
automaticamente pelo sistema. Caso o pesquisador deseje alterar os itens de
informao de uma referncia das referncias bibliogrficas por erro ou por no
estar completa, ou deseje inserir um item bibliogrfico no encontrado pelo
sistema, este deve proceder com as alteraes desejadas na bibliografia e em
seguida o sistema deve percorrer novamente o documento gerando uma nova
bibliografia. Caso no deseje fazer alteraes na bibliografia, dever ento fazer
correes diretamente no documento.
C. Requisitos de Qualidade
Confiabilidade
20. O sistema deve ter capacidade para recuperar os dados perdidos da ltima
operao que realizou em caso de falha.
21. O sistema deve fornecer facilidades para a realizao de backups dos arquivos do
sistema.
Eficincia
22. O tempo de processamento de uma operao de consulta no deve exceder trs
segundos para uma quantidade inferior a 10 itens bibliogrficos.
23. O tempo de resposta para as operaes de insero, alterao e excluso no deve
exceder a trs segundos.
Portabilidade
24. O sistema deve rodar em microcomputadores da linha IBM PC que possuam
microprocessador 486 DX ou superior, memria RAM mnima de 8Mbytes e
rodam sob Windows95.
25. O sistema deve ser facilmente portvel para o UNIX.
18
Consultas Gerais e Emisso de Relatrios e Uso dos Itens Bibliogrficos
durante a redao de um texto cientfico.
Cada seo da especificao informal est numerada e cada requisito tem um
identificador nico.
Os requisitos esto separados em requisitos funcionais e no funcionais
(qualidade).
O texto no se refere a detalhes de implementao
Os requisitos que no tm sentido e so ambguos foram eliminados.
As inconsistncias foram eliminadas, apresentando as solues para resolv-
las.
Os termos do domnio so usados consistentemente. Explicaes dos termos
relevantes do domnio da aplicao esto separadas da especificao dos
requisitos e armazenadas no lxico do domnio (Apndice I).
5. Concluses
Este trabalho apresentou uma viso geral da engenharia de requisitos,
enfatizando, principalmente, sua definio e o processo de engenharia de requisitos.
De uma maneira geral, a engenharia de requisitos estabelece um processo de definio
dos requisitos com o objetivo de obter uma especificao correta e completa dos
requisitos. O produto deste processo um modelo que servir para produzir um
documento de requisitos. Este documento serve como um meio de comunicao entre
o projetista do software e o usurio a fim de estabelecer um acordo do software
pretendido.
Assim, o objetivo principal deste trabalho foi mostrar como um documento de
requisitos deve ser organizado e redigido para que seja legvel, no ambguo e siga as
diretrizes propostas por padres internacionais (por exemplo, Norma ISO/IEC 9126)
quanto especificao de requisitos. Para alcanar tal objetivo, inicialmente foi
apresentada uma verso de um documento de requisitos do Sistema de Apoio
Escrita (SAPES). Este documento foi analisado e corrigido, dando origem a um novo
documento organizado dentro dos padres propostos.
19
APNDICE I
20
Cdigo de Citao Idem ao termo Forma de Forma de
Citao. Citao
21
Forma de Citao publicao, as letras a para Cdigo de Citao
a primeira publicao, b Citao
para a segunda publicao e
assim por diante. Por
exemplo, [TUR95a],
[TUR95b]. Esta forma
usada na citao, entre
colchetes, para identificar
uma referncia dentro do
documento.
22
Item de Informao Cada informao
armazenada em um item
bibliogrfico. As
informaes mais comuns
so: ttulo, autor (es), data
(ms/ano), local da
publicao. Outras informa-
es adicionais podem ser:
resumo (pequena descrio
da publicao), assunto,
numerao fsica, editora,
congresso, peridico
(volume, nmero, pginas) e
forma de citao da
publicao.
Numerao Fsica Forma de classificao
estabelecida pelo
pesquisador para arquivar e
recuperar publicaes em
sua biblioteca particular.
um item de informao do
item bibliogrfico.
Pesquisador a pessoa que utiliza o Usurio
sistema SAPES e que est
interessada na manuteno
automatizada da Bibliogra-
fia.
Publicao Qualquer meio de
divulgao envolvendo
artigos, peridi-cos, livros
,anais, revistas e relatrios
tcnicos.
Referncia Um subconjunto de um item Referncia
bibliogrfico, pertencendo a Bibliogrfica
referncia bibliogrfica
gerada para um determinado
documento.
23
Referncia Bibliogrfica o conjunto de referncias Arquivo de Referncia
a ser concatenado no final do Referncias
documento que est sendo Bibliogrfica
redigido pelo pesquisador s
no sistema SAPES.
Sinnimo Representao abreviada do
valor de qualquer item de
informao. Por exemplo,
ao invs de registrar o nome
completo de um autor,
digamos Jos Carlos Bento
de Saraiva, o pesquisador
registra apenas JCBS.
Trabalho Idem ao termo Artigo Artigo
Usurio Idem ao termo Pesquisador Pesquisador
24
APNDICE II
Diagrama do Domnio
Numerao Fsica
arquivado segundo
Publicao
possui composta por
uma
Biblioteca
Artigo
Pesquisador
Bibliografia
descrita por
composta por
Itens de Informao
redige contm
Documento Referncia Bibliogrfica
segue
Forma de Citao
25
Referncia Bibliogrfica
[Aur86] Aurlio Buarque de Holanda Ferreira. Novo Dicionrio Aurlio da Lngua
Portuguesa. Segunda Edio - revista e ampliada). Editora Nova Fronteira, 1986.
[Boe89] Boehm, B.W. Software risk management. IEEE Computer Society Press:
Washington, 1989.
[Boo91] Booch, G. Object-Oriented Design with Applications. Benjamin Cummings,
CA, 1991.
[Cas95] Castro, J. F. B. Introduo engenharia de requisitos. In: XV Congresso da
Sociedade Brasileira de Computao, JAI'95, Canela, RS, Brasil, 1995, 43p.
[Col94] Coleman, D. et al. Object-Oriented Development: The Fusion Method.
Prentice Hall, 1994.
[Fio95] Fiorini, S.T.; Leite, J.C.S.P. & Soares, T.D.M. Integrando processos de
negcio elicitao de requisitos. In: IX Simpsio Brasileiro de Engenharia de
Software, SBES'95, Recife, 03-06 de outubro de 1995. p.379-394.
[IEE84] IEEE Std. 830. IEEE Guide to Software Requirement Specification. The
Institute of Electrical and Electronics Engineers. New York, 1984.
[IEE90] IEEE Std. 610.12 IEEE Standard Glossary of Software Engineering
Terminology. The Institute of Electrical and Electronics Engineers. New York,
1990.
[IEE91] IEEE Software: Measurement Based Process Improvement. july 1991,
v.11(4).
[ISO9126] ISO/IEC 9126. Information Technology - Software Product Evaluation -
Quality characterisitcs and guidelines for their use. 1991.
[Lei90] Leite, J.C.S.P. Validao de requisitos: o uso de pontos de vista. In: Revista
Brasileira de Computao, v.6, n.2, p.39-52, RBC, outubro/dezembro 1990.
[Lei94] Leite, J.C.S.P. Engenharia de Requisitos. In: Notas de Aula, PUC-RJ, 1994
[May90] Mayrhauser, A.V. Software Engineering: Methods and Management.
Academic Press, 1990, 864p.
[Pre94] Pressman, R.S. Software engineering: a practitioner's approach. Euopean
Edition, 1994, 801p.
26