Você está na página 1de 6

4/14/11

1
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 1
2007 by Pearson Education
Requisitos de Software
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 2
2007 by Pearson Education
Engenharia de requisitos
!Estabelece os servios que o cliente requer de um
sistema e as restries sob as quais tal sistema
operar e ser desenvolvido.
! Tais servios e restries so chamados de requisitos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 3
2007 by Pearson Education
O que um requisito?
!Pode ser uma descrio abstrata de alto nvel de
um servio, uma restrio de sistema ou at uma
especificao matemtica, entre outras coisas
!O problema cujo desenvolvimento do sistema deve
resolver
! O sistema tem que ser construdo de modo a satisfazer
todos os seus requisitos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 4
2007 by Pearson Education
Abstrao de requisitos (Davis)!
Se uma empresa deseja estabelecer um contrato para um projeto de
desenvolvimento de software de grande porte, deve definir suas
necessidades de forma suficientemente abstrata, para que uma
soluo no esteja pr-definida. Os requisitos devem ser escritos de
tal forma que vrios fornecedores possam apresentar propostas para
o contrato, oferecendo, talvez, diferentes formas de atender s
necessidades organizacionais do cliente. Uma vez que o contrato for
aprovado, o fornecedor deve escrever uma definio de sistema para
o cliente, em mais detalhes, tal que o cliente compreenda e possa
validar o que o software ir fazer. Ambos os documentos podem ser
chamados de documento de requisitos do sistema.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 5
2007 by Pearson Education
Tipos de requisitos
!Requisitos de usurio
! Declaraes de alto nvel escritas em linguagem natural
! Escritos para os clientes.
!Requisitos de sistema
! Um documento estruturado estabelecendo descries detalhadas
das funes, servios e restries operacionais do sistema.
! Define o que deve ser implementado e pode at ser parte de um
contrato entre o cliente e o desenvolvedor.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 6
2007 by Pearson Education
Definies e especificaes
4/14/11
2
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 7
2007 by Pearson Education
Requisitos funcionais e no-funcionais
!Requisitos funcionais
! Servios que o sistema deve fornecer
! Como o sistema deve reagir a entradas especficas
! Como o sistema deve se comportar em determinadas
situaes.
!Requisitos no-funcionais ou de qualidade
! Restries sobre servios ou funes oferecidos pelo
sistema tais como restries de timing, restries sobre o
processo de desenvolvimento, padres, etc.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 8
2007 by Pearson Education
O sistema LIBSYS
!Um sistema de biblioteca que fornece uma interface
nica para uma srie de banco de dados de artigos
em bibliotecas diferentes.
!Os usurios podem pesquisar, baixar e imprimir
estes artigos para estudo pessoal.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 9
2007 by Pearson Education
Exemplos de requisitos funcionais
!O usurio deve ser capaz de pesquisar em todo o
conjunto inicial de banco de dados ou selecionar um
subconjunto a partir dele.
!Para todo pedido deve ser alocado um identificador
nico (ORDER_ID) que o usurio possa copiar para a
rea de armazenamento permanente da sua conta.
!O sistema deve fornecer telas apropriadas para o
usurio ler os documentos no repositrio de
documentos.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 10
2007 by Pearson Education
Impreciso de requisitos
!Problemas surgem quando os requisitos no so
precisamente definidos.
!Requisitos ambguos podem ser interpretados de maneiras
diferentes pelos desenvolvedores e usurios.
!Considere o termo telas apropriadas
! Inteno do usurio tela de propsito especial para cada tipo
diferente de documento;
! Interpretao do desenvolvedor fornece uma tela de texto que
mostra o contedo do documento.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 11
2007 by Pearson Education
Requisitos completos e consistentes
!Em princpio, requisitos devem ser completos e
consistentes.
!Completude
! Eles devem incluir descries de todos os recursos
requeridos.
!Consistncia
! No deve haver conflitos ou contradies nas descries
dos recursos de sistema.
!Na prtica, impossvel produzir um documento de
requisitos completo e consistente.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 12
2007 by Pearson Education
Requisitos no-funcionais
!Definem propriedades e restries de sistema
!Exemplos incluem confiabilidade, tempo de resposta e requisitos de
armazenamento.
!Restries so capacidade de dispositivos de E/S, representaes de
sistema, etc.
!Requisitos de processo podem tambm ser especificados, impondo
uma linguagem de programao, IDE ou mtodo de desenvolvimento
particular
!Requisitos no-funcionais podem ser mais crticos do que os
requisitos funcionais.
4/14/11
3
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 13
2007 by Pearson Education
Tipos de requisitos no-funcionais
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 14
2007 by Pearson Education
Exemplos de requisitos no- funcionais
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 15
2007 by Pearson Education
Metas e requisitos
!Requisitos no-funcionais podem ser difceis de definir
precisamente
! Requisitos imprecisos podem ser difceis de verificar.
!Meta
! Uma inteno geral do usurio, tal como facilidade de uso.
!Requisito no-funcional verificvel
! Uma declarao usando alguma medida que pode ser
objetivamente testada.
!Metas so teis para desenvolvedores quando exprimem
as intenes dos usurios do sistema.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 16
2007 by Pearson Education
Exemplo
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 17
2007 by Pearson Education
Medidas de requisitos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 18
2007 by Pearson Education
Interao de requisitos
!Conflitos entre os diferentes requisitos no-funcionais so
comuns em sistemas complexos.
!Sistema de aeronave
! Para minimizar o peso, o nmero de chips separados no sistema
deve ser minimizado.
! Para minimizar o consumo de energia, chips de baixa potncia
devem ser usados.
! E o desempenho pode ser impactado!
! Contudo, o uso de chips de baixa potncia pode significar que mais
chips devem ser usados . Qual o requisito mais crtico?
4/14/11
4
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 19
2007 by Pearson Education
Requisitos de usurio
!Requisitos funcionais e no-funcionais descritos de modo
a ser compreensveis por usurios que no tm
conhecimento tcnico detalhado.
!So definidos usando uma linguagem simples, tabelas e
diagramas quando estes podem ser compreendidos por
todos os usurios.
!Histrias de usurios so similares a requisitos de
usurios
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 20
2007 by Pearson Education
Requisito de grade de editor
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 21
2007 by Pearson Education
Diretrizes para escrever requisitos
!Usar um formato padro para todos os requisitos.
!Usar a linguagem de uma forma consistente.
! deve para requisitos obrigatrios, e
! deveria para requisitos desejveis.
!Realar o texto para identificar as partes principais
do requisito.
!Evitar o uso de jarges de computao.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 22
2007 by Pearson Education
Requisitos de sistema
!Especificaes mais detalhadas das funes do sistema,
dos servios e das restries
!Visam forneer ser uma base para o desenvolvimento do
sistema
! Em XP: histrias de usurio + tarefas de desenv
! Nosso caso: casos de uso (estilo casual) +
especificao detalhada
!Eles podem ser incorporados no contrato de sistema.
!Requisitos de sistema podem ser definidos ou ilustrados
usando notaes grficas
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 23
2007 by Pearson Education
Requisitos e Projeto
!Requisitos devem definir o que o sistema deve fazer e o
projeto deve descrever como ele faz isto.
! Requisitos => problema
! Projeto => soluo
!Na prtica, requisitos e projeto so inseparveis
! Uma arquitetura de sistema pode ser projetada para estruturar
os requisitos;
! O sistema pode ter que interoperar com outros sistemas que
geram novos requisitos;
! O uso de uma soluo de projeto especfica pode ser um
requisito de domnio.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 24
2007 by Pearson Education
Problemas com linguagem natural
!Falta de clareza
! difcil atingir uma preciso sem tornar o documento difcil de ler
e ambguo
!Confuso de requisitos
! Requisitos funcionais e no-funcionais tendem a estar
misturados.
!Fuso de requisitos
! Vrios requisitos diferentes podem ser expressos juntos
!Dificuldade de estruturar a especificao
4/14/11
5
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 25
2007 by Pearson Education
Alternativas especificao em
linguagem natural
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 26
2007 by Pearson Education
Especificaes em linguagem estruturada
!A liberdade do elaborador de requisitos limitada por
um template pr-definido para requisitos.
!Todos os requisitos so escritos de maneira
padronizada.
!A terminologia usada na descrio pode ser limitada.
!A vantagem que a maior parte da expressividade da
linguagem natural mantida
! Mas o grau de uniformidade imposto na especificao.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 27
2007 by Pearson Education
Apresentao estruturada
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 28
2007 by Pearson Education
Especificao baseada em formulrio
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 29
2007 by Pearson Education
Especificao tabular
!Usada para suplementar a linguagem natural.
!Particularmente til quando voc tem de definir uma
srie de possveis cursos alternativos de ao.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 30
2007 by Pearson Education
Especificao tabular
4/14/11
6
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 31
2007 by Pearson Education
O documento de requisitos
!O documento de requisitos a declarao oficial do que
requisitado pelos desenvolvedores do sistema.
! Em XP um pouco diferente
!Deve incluir ambos, uma definio dos requisitos de
usurio e uma especificao dos requisitos de sistema.
!NO um documento de projeto.
! Logo que possvel, ser preciso definir como o sistema
deve fazer, ao invs de o que deve ser feito.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 6 Slide 32
2007 by Pearson Education
Usurios de um documento de
requisitos