Identificando requisitos


Requisito: é uma característica do sistema
ou a descrição de algo que o sistema é
capaz de realizar para atingir seus objetivos
Três categorias de requisitos:



requisitos que devem ser totalmente satisfeitos
requisitos que são altamente desejáveis, mas não
necessários
requisitos que são possíveis, mas poderiam ser
eliminados
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Documentos de requisitos



Definição dos requisitos: listagem completa
de tudo que o cliente espera que o sistema
proposto faça
Especificação dos requisitos: redefine os
requisitos em termos técnicos apropriados
para o desenvolvimento do projeto do
sistema
Gerência de configuração: correspondência
direta entre os dois requisitos
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Gerência de configuração

Conjunto de procedimentos que controlam





os requisitos que definem o que o sistema deverá
fazer
os módulos de projeto gerados a partir dos
requisitos
o código do programa que implementa o projeto
os testes que verificam a funcionalidade do
sistema
os documentos que descrevem o sistema
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Requisitos funcionais versus nãofuncionais


Funcional: descreve uma
interação entre o sistema e
seu ambiente
Exemplos:
 o sistema dever ter
comunicação com um
sistema ‘x’ externo
 Quais estados devem ser
encontrados para uma
mensagem ser enviada
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger


Capítulo 4
Não-funcional: descreve
uma restrição do sistema
que limita nossas opções
para criar uma solução para
o problema
Exemplos:
 Contracheques
distribuídos em não mais
que quatro horas depois
de os dados iniciais terem
sido lidos
 Sistema limita o acesso a
gerentes seniores
Prentice Hall
Tipos de requisitos









Ambiente físico
Interfaces
Usuários e fatores humanos
Funcionalidade
Documentação
Dados
Recursos
Segurança
Garantia de qualidade
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Características dos requerimentos







Estão corretos?
São consistentes?
Estão completos?
São realistas?
Cada requisito descreve algo necessário
ao cliente?
Podem ser verificados?
Podem ser rastreados?
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Descrições estáticas dos
requerimentos

Referência indireta


Relações de recorrência



Exemplo: k equações em n variáveis
Exemplo: F(0) = 1; F(1) = 1; F(n + 1) = F(n) + F(n
– 1)
Definição axiomática
Expressão como uma linguagem

Exemplo: BNF
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
<bool - t er m> | <bool - t er m> or <condi t i on>
::=
<condi t i on>
<bool - f act or > | <bool - f act or > and <bool ::=
<bool - t er m>
t er m>
<expr > <r el op> <expr > | ( <condi t i on>)
::=
<bool - f act or >
< | < | = | > | > | < >
::=
<r el op>
<t er m> | <expr > <addop> <t er m> | <addop>
::=
<expr >
<expr >
<f act or > | <t er m> <mpyop> <f act or >
::=
<t er m>
<scal ed- expr > | <pr i mar y>
::=
<f act or >
( <expr >) <scal e> | <number > <scal e>
::=
<scal ed- expr >
( <expr >) <r egname> | <number > | <f unc>
::=
<pr i mar y>
( <expr >)
<i nt eger > | <i nt eger >. | . <i nt eger > |
::=
<number >
<i nt eger >. <i nt eger >
$ <r egchar > | <r egname> <r egchar >
::=
<r egname>
<di gi t > | <di gi t > <i nt eger >
::=
<i nt eger >
<di gi t > | <l et t er > | <under scor e>
::=
<r egchar >
+ | ::=
<addop>
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
::=
<di gi t >
abs | t r unc
::=
<f unc>
A | a | B | b | C | c | D | d | E | e |
::=
<l et t er >
. . . | Y | y | Z | z
* | / | mod
::=
<myop>
c | d | h | i | l | P | p | q | t | v
::=
<scal e>
_ ( ASCI I char act er 95)
::=
<under scor e>
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Abstração de dados
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Descrições dinâmicas

Tabelas de decisão
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Descrições dinâmicas (2)

Descrição funcional e tabelas de transição
f(Si, Cj) = Sk
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Descrições dinâmicas (3)

Tabelas de eventos
• Redes de Petri
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Abordagem orientada a objetos





Cada entidade no sistema é um objeto.
Um método ou uma operação é uma ação que
pode ser realizada pelo objeto ou pode acontecer
com o objeto
Encapsulamento: maneira pela qual os métodos
formam um limite de proteção em torno do objeto
Hierarquias de classe de objetos estimulam a
herança
Polimorfismo: mesmo método para diferentes
objetos, cada qual com diferentes comportamentos
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Notações de requisitos adicionais

Técnicas hierárquicas





diagramas de Warnier
Diagramas de fluxo de dados
Software Requirements Engineering
Methodology — SREM
Structured Analysis and Design Technique —
SADT
Z
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
R_NET: PROCESS_TRANSACTI ON
STRUCTURE:
I NPUT_I NTERFACE_ACCOUNT_REQUEST_RECORD
EXTRACT_DATES
DO ( REQUEST=TRANSACTI ON)
RECORD_TRANSACTI ON
TERMI NATE
OTHERWI SE
FI ND_ACCOUNT- RECORDS
COMPUTE_SAVI NGS_BALANCE
AND COMPUTE_CHECKI NG_BALANCE
AND COMPUTE_MONEY- MARKET_BALANCE
PRI NT_BALANCES
TERMI NATE
END
END
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Etapas da SREM
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Exemplo Z
ST = Key  VAL
I NI T 
 st ’ : ST

 st ’ = { }

I NSERT 
 st , st ’ : ST
 k : KEY
 v : VAL

 k  dom( st ) 
 st ’ = st  { k  v}

LOOKUP 
 st , st ’ : ST
 k : KEY
 v : VAL

 k  dom( st ) 
 v’ = st ( k) 
 st ’ = st

DELETE 
 st , st ’ : ST
 k : KEY

 k  dom( st ) 
 st ’ = { k}  st

Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Prototipação de requisitos



Protótipo descartável
Protótipo evolutivo
Protótipo rápido
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Documentação de requisitos

Documento de definição de requisitos: o
que o cliente gostaria de ver:






propósito geral
fundamentos e objetivos de desenvolvimento
do sistema
descrição da abordagem
características detalhadas
ambiente operacional
Documento de especificação de
requisitos: o que o desenvolvedor precisa
saber
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Exemplo
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Participantes no processo de requisitos





Monitores do contrato
Clientes e usuários
Gerentes de negócios
Projetistas
Testadores
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Revisão dos requisitos







Rever metas e objetivos estabelecidos para o sistema
Comparar requisitos metas o objetivos
Descrever o ambiente operacional
Examinar
 interfaces
 fluxo de informações
 funções
Verificar omissões, imperfeições e inconsistências
Documentar riscos
Discutir sobre como o sistema será testado
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Escolhendo uma técnica de especificação de requisitos








Aplicabilidade
Possibilidade de implementação
Testabilidade/simulação
Avaliabilidade
Manutenibilidade
Modularidade
Nível de abstração/expressividade
Solidez
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
•
•
•
•
•
•
•
•
Capítulo 4
Verificabilidade
Segurança durante a execução
Maturidade da ferramenta
Imprecisão
Curva de aprendizado
Maturidade técnica
Modelagem de dados
Disciplina
Prentice Hall
Exemplo de sistema de informação
Adver t i si ng Campai gn = * Ent i t y.
Recor ds t he condi t i ons and ai ms
f or a campai gn t o adver t i se a pr oduct . *
Campai gn Number + Campai gn St ar t Dat e + Campai gn End Dat e
+ Tar get Audi ence + Tar get Rat i ng Per cent age
+ Campai gn Pr edi ct ed Rat i ng + Campai gn Budget Tot al
+ Pi ccadi l l y Budget Amount + Campai gn Dur at i on
+ { Requi r ed Spot Dur at i on}
* Wor k necessar y t o r emove or j ust i f y t he r epeat i ng gr oup. *
Tar get Audi ence = * Dat a el ement .
The audi ence at whi ch a campai gn
i s ai med.
See Audi ence Type f or val ues. *
Audi ence Type = * Dat a el ement . Used t o cl assi f y r at i ngs f i gur es. *
[Homes | Homemakers | Adults | Men | Women | Children]
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Exemplo em tempo real
STATE SEL_WORKI NG;
I NPUT Cl ear ( l i ne) ;
DECI SI ON ( ( cond[ l i ne] == OOS)
| | ( cond[ WORK] == OOS) ) ;
( TRUE) :
TASK ‘ badi nput = 1’ ;
NEXTSTATE- ’
ENDDECI SI ON;
TASK ‘ cond[ l i ne] = NORMAL’ ;
DECI SI ON ( ( l i ne == PROT) &&
( cond[ WORK] > cond[ PROT] ) ) ;
( TRUE) :
NEXTSTATE SEL_PROTECTI ON;
ENDDECI SI ON;
NEXTSTATE- ;
ENDSTATE SEL_WORKI NG;
CLAI M;
( ( APSENV FI RSTMSG Done)
&& ( env ms g == CONDSWI TCH)
&& ( s el ! = ps el ) )
I MPLI ES ( c ond[ s el ] <= pc ond[ ps el ] )
UNTI L ( s el == ps el ) ;
ENDCLAI M;
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 4
Prentice Hall
Download

cap04