Você está na página 1de 12

Aula 9

Especificao de Requisitos

Alessandro Garcia
LES/DI/PUC-Rio
Abril 2016

Especificao

Objetivos dessa aula


Apresentar a importncia e o que so especificaes de
requisitos, bem como conceitos relacionados
Referncia bsica:
Captulo 10
Seo 8.3
Captulo 9.4
Apndice 2

Slides adaptados de: Staa, A.v. Notas de Aula em Programao


Modular; 2008.
Referncia complementar
Silva, R.P.; UML2 em Modelagem Orientada a Objetos; Florianpolis, SC: Visual
Books; 2007

Set 2009 LES/DI/PUC-Rio 2 /36

1
Sumrio

Retrabalho intil
Por que especificar?
Especificao de requisitos
requisitos funcionais
requisitos no-funcionais
Como identificar requisitos?

Set 2009 LES/DI/PUC-Rio 3 /36

Viso do Desenvolvedor Mgico"

Requisitos
Descrio abstrata do problema

Aqui o Milagre acontece

Cdigo
Muitas membros envolvidos no esto
interessados em tais decises de baixo nvel
Set 2009 LES/DI/PUC-Rio 4 /36

2
Uma Viso Profissional
Descrio explcita de requisites para evitar retrabalho intil

Documentao das decises de


projeto
Requisitos
Boas prticas de
projeto modular

Decises relacionadas
as estratgias
organizacionais e do
implementar primeiro

Arquitetura
Cdigo

Set 2009 LES/DI/PUC-Rio 5 /36

Como eliminar causas de retrabalho intil?

O que fazer para reduzir ou evitar de vez esse risco?


produzir uma boa especificao do que se deseja que seja feito
modelar o problema a resolver especificao de requisitos
por exemplo:
saber/descobrir antes quais so as funcionalidades bsicas de um jogo de
Xadrez
tornar o projeto e implementao do jogo mais manutenvel e reutilizvel
possvel

produzir uma arquitetura organizao da soluo adequada


ao problema a resolver
modelar a soluo modelagem da arquitetura e modelagem fsica

Set 2009 LES/DI/PUC-Rio 6 /36

3
O que uma especificao?

Especificao um documento ou fragmento que:


Determina o que deve ser feito, sem dizer como faz-lo
Especificaes de um artefato so veculos de comunicao
entre as diversas pessoas interessadas (stakeholders) neste
artefato
desenvolvedores do artefato e mantenedores do artefato
desenvolvedores cliente que pretendem localizar e utilizar
artefatos servidores j existentes (reuso)
usurios que utilizaro um programa contendo o artefato
os gerentes de desenvolvimento e manuteno

Nem sempre sabemos exatamente o que desejamos


precisamos ver para saber se est bom ou no
dificuldade - exemplo: abrangncia da soluo
Set 2009 LES/DI/PUC-Rio 7 /36

Por que especificar?

Precisa-se saber, com preciso, o que o sistema deve


implementar...
Requisitos so funes, condies, atributos, propriedades
ou caractersticas a serem satisfeitas pelo artefato
Requisitos funcionais e no-funcionais
Antes de comear a escrever cdigo precisa-se saber o que
este cdigo deve fazer
requisitos funcionais
tambm bvio que, existindo condicionantes ou restries,
estas devem ser explicitadas antes
requisitos no funcionais
usualmente chamados de requisitos de qualidade
manutenibilidade
reusabilidade
confiabilidade: robustez, corretude, etc..
desempenho
segurana
...
Set 2009 LES/DI/PUC-Rio 8 /36

4
Requisitos funcionais ou no-funcionais?

Outros exemplos:
o sistema deve gerar um relatrio com a descrio dos
emprstimos dirios
?
o tempo de resposta dever ser menor do que 10 ms

o mdulo dever ser porttil


melhor enumerar os sistemas operacionais explicitamente

deve ser possvel fazer uma consulta as reclamaes dos


usurios nos ltimos 5 dias

o sistema deve ser robusto quanto os dados obtidos atravs


de janelas de dilogos, i.e. devem ser validados

Set 2009 LES/DI/PUC-Rio 9 /36

Jogo de Damas

Requisitos Funcionais?

Set 2009 LES/DI/PUC-Rio 10 /36

5
Jogo de Damas

Requisitos Funcionais? Exemplos


Jogo:
o programa deve possibilitar o jogo entre duas pessoas, num tabuleiro
de 8 x 8 casas alternadamente claras e escuras
cada jogador deve possuir 12 peas (pretas ou brancas) e ter como
objetivo capturar ("comer") as peas do adversrio
ganha aquele que "comer" todas ou a maior quantidade de peas do
adversrio
o programa deve permitir que cada jogador movimente apenas uma
pea por vez
Peas:
o programa deve permitir somente dois tipos de peas, a pea
comum, que so as peas que os jogadores possuem no incio do jogo
e as damas
se uma pea comum do jogador terminar uma rodada na ltima fileira
de casas do lado oposto do tabuleiro, esta substituda por uma dama
etc...
Set 2009 LES/DI/PUC-Rio 11 /36

Jogo de Damas

Requisitos No-Funcionais?

Set 2009 LES/DI/PUC-Rio 12 /36

6
Jogo de Damas

Requisitos No-Funcionais? Exemplos


Robustez:
todos os dados de entradas (ex. movimentos) sero validados pelo jogo
caso alguma entrada no seja vlida, uma mensagem ser exibida ao
jogador informando dado invlido; ele ter nova oportunidade de digitar
Corretude:
todos os mdulos devem ser testados individualmente, onde cada
funo dos mdulos estada em diferentes circunstncias
restrio: deve-se reusar o Arcabouo de teste automatizado

Reuso:
de forma a acelerar o processo de reutilizao de projeto e
implementao (e teste), deve-se maximizar a reutilizao de mdulos
restrio: em particular, deve-se reusar o mdulo LISTA do Arcabouo

Manutenibilidade:
todas funes e mdulos devero ser desenvolvidos utilizando padres
de documentao, garantindo assim que o programa seja de fcil manuteno
restrio: usar catlogos do livro "Programao Modular (Staa, Arndt von)
Set 2009 LES/DI/PUC-Rio 13 /36

Como descobrir requisitos?


Um exemplo simplrio

Desenvolver um programa que computa raiz quadrada


d para comear sem nenhuma informao a mais?

Veja algumas perguntas que podem surgir


raiz quadrada de que?
inteiros, reais, complexos?
qual a preciso requerida?
float, double, mltipla?
quantos algarismos significativos?
existe alguma exigncia de desempenho?
tempo de resposta versus preciso
deve-se verificar se o argumento fornecido vlido?
x >= 0. ?
como responder se no for vlido?
condio de retorno ou cancelamento?

Set 2009 LES/DI/PUC-Rio 14 /36

7
Como requisitos (F/NFs) so descobertos?

Diretamente em entrevistas ou discusses com o cliente do


sistema
Mas eles pouco sabe o que querem
mais tarde: elaborao de prottipos
Busca de documentao disponvel sobre sistemas semelhantes
Alguns so requeridos pelo prprio gerente de projetos ou por
membros do time
p.e. reusabilidade de certos mdulos, tais como definir mdulos que
encapsulem estruturas de dados genricas
p.e. manutenibilidade: evitar gastos com interfaces de mdulos m
projetadas, levando a instabilidades futuras no software
Produtos novos de software: anlise de mercado
identificar necessidades de uma gama de potenciais clientes
Ex.: algum tempo atrs... jogos em dispositivos mveis
identificar caractersticas e deficincias de produtos dos competidores
Ex.: incluso de sons em jogos de dispositivos mveis
trends futuros: novas tecnologias, p.e. aumento de capacidade de
memria em dispositivos mveis
Set 2009 LES/DI/PUC-Rio 15 /36

Terminologia

Requisitos: so funes, condies, atributos, propriedades e


caractersticas a serem disponibilizadas ou satisfeitas pelo artefato
Hipteses: so funes, condies, atributos, propriedades ou
caractersticas assumidas como satisfeitas externamente equipe
de desenvolvimento
o usurio logado tem direitos de ativar esta funo
pressupe que os direitos j foram controlados antes de efetuar a chamada
o volume de memria disponvel ser sempre suficiente para executar
o programa
mesmo assim sempre verifique se malloc( ) retornou NULL

Restries: so condies que restringem a liberdade de escolha


de alternativas de construo do artefato sendo especificado
o programa dever ser redigido em C
o mdulo dever utilizar a biblioteca xpto.lib

Ago 2008 Arndt von Staa LES/DI/PUC-Rio 16 /36

8
Descobrir novos requisitos

Forma de se descobrir novos requisitos


identifique as abstraes principais
quais so as propriedades ou regras associadas com tais
abstraes
elabore e responda perguntas do tipo: Qual(is)? Onde?
Quando?
existem restries e hipteses?

Abr 2010 Alessandro Garcia LES/DI/PUC-Rio 17 /35

Jogo de Damas
Requisitos Funcionais? Exemplos
Jogo: (quais so as regras?)
como e onde praticado o jogo?
praticado ente duas pessoas, num tabuleiro de 8 x 8 casas alternadamente
claras e escuras
qual a dinmica do jogo?
cada jogador possui 12 peas (pretas ou brancas) e tem como objetivo capturar
("comer") as peas do adversrio
quem ganha?
ganha aquele que "comer" todas ou a maior quantidade de peas do adversrio
quando pode ser feito o movimento de peas?
cada jogador movimenta uma pea por vez

Peas: (quais so as regras?)


existem dois tipos de peas, a pea comum, que so as peas que os
jogadores possuem no incio do jogo e as damas
se uma pea comum do jogador terminar uma rodada na ltima fileira de
casas do lado oposto do tabuleiro, esta substituda por uma dama
etc...
18 /36

9
Exerccio

Faa a especificao de requisitos com base no que foi


apresentado hoje:
no somente requisitos funcionais
mas tambm: no-funcionais, hipteses e restries

A especificao deve ser feita com seu grupo do trabalho

Lembrete
Regras bsicas do jogo incluem:
mo de onze, mo de ferro, esconder carta, situaes de
empate

Abr 2010 Alessandro Garcia LES/DI/PUC-Rio 19 /35

Dvidas - Trabalho

Passos
1) Elicite os requisitos
Quais as funcionalidades do programa do jogo de Truco?

Os requisitos sero importantes para que


vocs descubram:
Mdulos, interfaces e dependncias
Quais outras caractersticas (estrutura/funes) dos mdulos Lista?

Set 2009 LES/DI/PUC-Rio 20 /28

10
No esquecer...

Preencher tabela de atividades ao longo do processo.

NO DEIXE PARA LTIMA HORA, POIS VOC NO SE


LEMBRAR DO QUE FEZ TAL DIA, TAL HORA.

Com relatrios similares a esse voc aprende a planejar o


seu trabalho.

O relatrio INDIVIDUAL

Ferramentas como gmake e batches de apoio deve ser


utilizados

21 / 30 LES/DI/PU
C-Rio

Dicas para o Trabalho

No esquea de rever cuidadosamente:


critrios de avaliao
procedimentos para entrega do trabalho

Certifique-se que seu trabalho atende os seguintes pontos:


estruturao: contm tanto o fonte dos mdulos de
implementao quanto mdulos definio (interface)
siga princpios de modularidade: interfaces simples e documentadas,
...
obedincia a padres de programao
no esqueam de produzir arquivos LEIAME.TXT e RELATOR.TXT

22 / 30 LES/DI/PU
C-Rio

11
Aula 9
Especificao de Requisitos

Alessandro Garcia
LES/DI/PUC-Rio
Abril 2016

12