Objetivos
Objetivos
Apresentar os conceitos de requisitos de usu´
ario e de sistema
Descrever requisitos funcionais e n˜
ao funcionais
Compreender as principais atividades da engenharia de requisitos
Conhecer algumas t´
ecnicas para elicita¸
c˜
ao e especifica¸
c˜
ao de requisitos
Compreender a necessidade e importˆ
ancia da valida¸
c˜
ao e gerenciamento de requisitos
Explicar como os requisitos de software podem ser organizados em um documento
de requisitos
Aquilo que vocˆe desejava
“ontem” ´e o mesmo que vocˆe
Introdu¸c˜
ao
A compreeens˜
ao e a especifica¸
c˜
ao de requisitos ´
e um dos
principais problemas da ES
Os requisitos s˜
ao influenciados:
por preferˆ
encias, recusas e preconceitos dos usu´
arios;
por quest˜
oes pol´ıticas e organizacionais.
Engenharia de requisitos. Processo de estabelecer os servi¸
cos que
o cliente requer a partir de um sistema e as restri¸
c˜
oes sob as
quais ele opera e ´
e desenvolvido
O que ´
e um requisito?
Pode variar entre:
uma declara¸
c˜
ao abstrata de alto n´ıvel de um servi¸
co ou de uma
restri¸
c˜
ao de sistema
uma especifica¸
c˜
ao matem´
atica funcional
De maneira simples...
Os requisitos correspondem a descri¸
c˜
ao daquilo que o cliente
espera para o software
Requisitos de usu´
ario
Declara¸
c˜
oes em linguagem natural, diagramas dos servi¸
cos que o
sistema fornece e suas restri¸
c˜
oes operacionais
S˜
ao escritos para os clientes
Requisitos de sistema
descri¸
c˜
oes detalhadas das fun¸
c˜
oes, servi¸
cos e restri¸
c˜
oes
operacionais do sistema
define o que ser´
a implementado
Requisitos funcionais e n˜
ao funcionais
Requisitos funcionais
servi¸
cos que o sistema deve fornecer
como o sistema deve reagir a entradas espec´ıficas
como o sistema deve se comportar em determinadas situa¸
c˜
oes
Requisitos n˜
ao funcionais
restri¸
c˜
oes sobre servi¸
cos ou fun¸
c˜
oes oferecidos pelo sistema
Requisitos de dom´ınio
relacionados ao dom´ınio de aplica¸
c˜
ao do sistema e que refletem as
caracter´ısticas desse dom´ınio
Exerc´ıcio
Forne¸
ca um exemplo para cada um dos tipos de requisito identificando o sistema ao
qual este requisito pertence.
Requisitos funcionais
Requisitos n˜
ao
funcio-nais
Exerc´ıcio
Forne¸
ca um exemplo para cada um dos tipos de requisito identificando o sistema ao
qual este requisito pertence.
Requisitos funcionais
Requisitos n˜
ao
funcio-nais
Requisitos de dom´ınio
Realizar matricula
Linguagem C++
M´
edia = (AB1+AB2)/2
Inserir nota
Respostas r´
apidas
Descrevem as funcionalidades ou servi¸cos de sistema
Dependem de alguns elementos:
tipo de software;
usu´
arios esperados;
ambiente onde o software ´
e usado.
Requisitos funcionais do usu´
ario podem ser declara¸
c˜
oes de alto
n´ıvel
Requisitos funcionais do sistema devem descrever os servi¸
cos do
Requisitos funcionais: Imprecis˜
ao
Problemas surgem quando os requisitos n˜
ao s˜
ao precisamente
definidos
Requisitos amb´ıguos podem ser interpretados de maneiras
diferentes pelos desenvolvedores e usu´
arios
Exemplo: O sistema deve fornecer
telas apropriadas
para o
usu´
ario ler os documentos no reposit´
orio de documentos
Usu´
ario: tela de especial para cada tipo de documento
Desenvolvedor: tela de texto que exiba todo o conte´
udo do
documento
Requisitos imprecisos geram mudan¸
cas, as quais levam a atrasos
Especifica¸c˜
ao de requisitos deve ser completa e consistente
completa: todos os servi¸
cos desejados devem ser definidos
consistente: requisitos n˜
ao devem ser contradit´
orios
Requisitos funcionais
Requisitos completos e consistentes s˜
ao uma utopia no mundo
real
Quanto maior e mais complexo o sistema mais dif´ıcil ´
e obter
completude
Clientes (usu´
arios) diferentes podem ter necessidades diferentes,
o que favorece descri¸
c˜
oes contradit´
orias
Definem propriedades e restri¸
c˜
oes de sistema (ex. confiabilidade,
tempo de resposta, requisitos de armazenamento, ...)
Requisitos de processo podem tamb´
em ser especificados (ex.
restri¸c˜
oes quanto ao uso de ferramentas ou linguagens)
Requisitos n˜
ao funcionais est˜
ao relacionados:
`
as necessidades do usu´
ario;
`
as restri¸
c˜
oes de or¸
camento;
`
as pol´ıticas organizacionais;
outros
Requisitos n˜
ao funcionais
Problemas relacionados com os requisitos n˜
ao funcionais podem
ser mais cr´ıticos do que aqueles relacionados aos requisitos
funcionais
O que ´
e pior?
O sistema n˜
ao responder em um per´ıodo adequado
N˜
ao realizar uma atividade da maneira como se imaginava
Requisitos n˜
ao funcionais
Requisitos de produto
especificam que o produto entregue deve se comportar de uma
maneira particular (ex. velocidade de execu¸
c˜
ao, confiabilidade, ...)
Requisitos de organizacionais
s˜
ao conseq¨
uˆ
encia de pol´ıticas e procedimentos da organiza¸
c˜
ao (ex.
padr˜
oes de processo usados, requisitos de implementa¸
c˜
ao, ...)
Requisitos de externos
surgem a partir de fatores externos ao sistema e seu processo de
desenvolvimento (ex. requisitos de interoperabilidade, requisitos
legais, ...)
S˜
ao muito dif´ıceis de definir precisamente e requisitos imprecisos
podem ser dif´ıceis de verificar
Clientes definem estes requisitos utilizando metas gerais
Desenvolvedores podem interpretar de maneira inadequada
Meta
Inten¸
c˜
ao geral do usu´
ario (ex. facilidade de uso)
Requisito n˜
ao funcional verific´
avel
Declara¸
c˜
ao usando alguma medida que pode ser objetivamente
testada
Sempre que poss´ıvel deve-se expressar requisitos n˜
ao funcionais
quantitativamente
Exerc´ıcio
Expresse os requisitos n˜
ao funcionais descritos no exerc´ıcio anterior de forma
quantitativa
Meta
Requisito verific´
avel
Linguagem C++
Respostas r´
apidas
Exerc´ıcio
Expresse os requisitos n˜
ao funcionais descritos no exerc´ıcio anterior de forma
quantitativa
Meta
Requisito verific´
avel
Linguagem C++
n˜
ao ´
e poss´ıvel/necess´
ario
Respostas r´
apidas
Ao solicitar algum processamento a
resposta a esta solicita¸
c˜
ao deve ser
fornecida no m´
aximo em cinco
se-gundos
Requisitos n˜
ao funcionais: Conflitos
Conflitos entre os diferentes requisitos n˜
ao funcionais s˜
ao comuns
em sistemas complexos
Exemplo: Sistema para uma aeronave
RNF 1: Minimizar o peso.
Implica¸
c˜
ao: n´
umero de chips separados no sistema deve ser
minimizado
RNF 2: Minimizar consumo de energia
Implica¸
c˜
ao: chips de baixa potˆ
encia devem ser usados
Conflito: Uso de chips de baixa potˆ
encia pode significar que mais
chips devem ser usados
Descrevem caracter´ısticas de sistema que refletem o dom´ınio de
aplica¸c˜
ao
Podem restringir os requisitos funcionais existentes ou
estabelecer como c´
alculos espec´ıficos devem ser realizados
Se os requisitos de dom´ınio n˜
ao forem satisfeitos, o sistema
Os requisitos de usu´
ario devem descrever os requisitos funcionais
e n˜
ao funcionais de modo compreens´ıvel para aqueles que n˜
ao
possuem conhecimento t´
ecnico
Estes requisitos devem:
especificar somente comportamento externo;
evitar caracter´ısticas de projeto do sistema;
evitar uso de termos t´
ecnicos.
´
E aconselh´
avel utilizar linguagem simples, tabelas e diagramas
Requisitos de usu´
ario
Problemas com linguagem natural
Falta de clareza. ´
E dif´ıcil atingir uma precis˜
ao sem tornar o
documento dif´ıcil de ler
Confus˜
ao de requisitos. Requisitos funcionais e n˜
ao funcionais
tendem a estar misturados
Fus˜
ao de requisitos. V´
arios requisitos diferentes podem ser
expressos juntos
´
E adequado separar os requisitos de usu´
ario dos requisitos de
sistema
Os usu´
arios podem ser sobrecarregados com informa¸
c˜
oes t´
ecnicas
incompreens´ıveis para eles
O requisito de grade mistura trˆ
es tipos diferentes de requisitos:
Requisito funcional conceitual (a necessidade de uma grade);
Requisito n˜
ao funcional (unidades de grade);
Diretrizes para escrever requisitos:
Inventar um formato padr˜
ao e us´
a-lo para todos os requisitos
Usar a linguagem de uma forma consistente
Use ‘deve’ para requisitos obrigat´
orios, e ‘deveria’ para requisitos
desej´
aveis
Real¸
ce o texto para identificar as partes principais do requisito
Evitar o uso de jarg˜
oes de computa¸
c˜
ao
Requisitos de sistema
S˜
ao vers˜
oes mais detalhadas dos requisitos de usu´
ario
S˜
ao utilizados pelos desenvolvedores como ponto de partida para
o projeto do sistema
Eles podem ser incorporados no contrato de sistema
Requisitos de sistema podem ser definidos ou ilustrados usando
modelos de sistema
Em princ´ıpio, requisitos devem definir o que o sistema deve fazer
e o projeto deve descrever como ele faz isto
Exerc´ıcio
1