Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de
So*ware
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Slides
originais
elaborados
por
Ian
Sommerville
O
autor
permite
o
uso
e
a
modicao
dos
slides
para
ns
did-cos
O
processo
de
so*ware
Um
conjunto
estruturado
de
a-vidades,
procedimentos,
artefatos
e
ferramentas
necessrios
para
o
desenvolvimento
de
um
sistema
de
soGware
Exemplos:
Processo
Unicado
(RUP),
Programao
Extrema,
UML
Components
Um
modelo
de
processo
de
soGware
apresenta
a
descrio
de
um
processo
de
uma
perspec-va
par-cular,
normalmente
focando
apenas
em
algumas
a-vidades.
2
Desenvolvimento
itera-vo
Sistema
desenvolvido
atravs
de
vrias
etapas
Modelo
cascata
Resposta
ao
modelo
code-and-x
vigente
na
dcada
de
70
Primeiro
modelo
a
organizar
as
a-vidades
de
desenv.
Uma
fase
tem
de
estar
completa
antes
de
passar
para
a
prxima.
Sadas
das
fases
so
acordadas
contratualmente!
Documentos
completamente
elaborados
so
necessrios
para
fazer
as
transies
entre
estgios
Apropriado
somente
quando
os
requisitos
so
bem
compreendidos
e
quando
as
mudanas
so
raras
Poucos
sistemas
de
negcio
tm
requisitos
estveis.
6
Desenvolvimento
evolucionrio
Implementao
inicial,
exposio
do
resultado
aos
comentrios
do
usurio
e
renamento
desse
resultado
em
verses
Especicao,
desenvolvimento
e
validao
so
intercaladas
Dois
-pos
Desenvolvimento
exploratrio:
explora
requisitos
e
entrega
um
sistema
nal
Proto-pao
throwaway:
obje-vo
compreender
os
requisitos
do
cliente
7
Desenvolvimento
evolucionrio
Vantagem:
especicao
desenvolvida
de
forma
incremental
Problemas:
Processo
no
visvel
Sistemas
podem
ser
mal
estruturados
devido
mudana
coninua
Desenvolvimento
Exploratrio
Idia
geral:
Desenvolvimento
da
primeira
verso
do
sistema
o
mais
rpido
possvel
Modicaes
sucessivas
at
que
o
sistema
seja
considerado
adequado
Aps
o
desenvolvimento
de
cada
uma
das
verses
do
sistema
ele
mostrado
aos
usurios
para
comentrios
Adequado
para
o
desenvolvimento
de
sistemas
onde
dijcil
ou
impossvel
se
fazer
uma
especicao
detalhada
do
sistema
9
ProtoEpao
Descartvel
Como
na
programao
exploratria,
a
primeira
fase
prev
o
desenvolvimento
de
um
programa
para
o
usurio
experimentar
A construo de prot-pos com os quais os usurios possam brincar uma idia bastante atra-va:
No entanto, o obje-vo aqui estabelecer os requisitos do sistema O soGware deve ser reimplementado na fase seguinte
Para
sistemas
grandes
e
complicados
Quando
no
existe
um
sistema
anterior
ou
um
sistema
manual
que
ajude
a
especicar
os
requisitos
10
ProtoEpao
Descartvel
Os
obje-vos
do
prot-po
devem
estar
bem
claros
antes
do
incio
da
codicao.
Possveis
obje-vos:
Entender
os
requisitos
dos
usurios
Denir
a
interface
com
os
usurios
Demonstrar
a
viabilidade
do
sistemas
para
os
gerentes.
Uma
deciso
importante
a
ser
tomada
escolher
o
que
ser
e
o
que
no
ser
parte
do
prot-po
No
economicamente
vivel
implementar
todo
o
sistema!
Os
obje-vos
do
prot-po
so
o
ponto
de
par-da
11
Baseado
em
reuso
sistem-co
onde
sistemas
so
integrados
a
par-r
de
componentes
existentes
ou
de
sistemas
COTS
(Commercial-of-the-shelf)
Estgios
do
processo
Anlise
de
componentes;
Modicao
de
requisitos;
Projeto
de
sistema
com
reuso;
Desenvolvimento
e
integrao.
Esta
abordagem
est
se
tornando
cada
vez
mais
usada
medida
que
padres
de
componentes
tm
surgido.
Reuso
acidental
vs.
Reuso
planejado
12
Processos
IteraEvos
Requisitos
de
sistema
SEMPRE
evoluem
no
curso
de
um
projeto
Algum
retrabalho
necessrio
A
abordagem
iteraEva
pode
ser
aplicada
a
qualquer
um
dos
modelos
genricos
de
processo
Duas
abordagens
(relacionadas)
Entrega
incremental;
Desenvolvimento
espiral.
Entrega
incremental
O
sistema
entregue
ao
cliente
em
incrementos
Cada
incremento
fornece
parte
da
funcionalidade
Os
requisitos
so
priorizados
Requisitos
de
prioridade
mais
alta
so
includos
nos
incrementos
iniciais.
Desenvolvimento incremental
15
Vantangens
do
desenvolvimento
incremental
Incrementos
podem
ser
entregues
regularmente
ao
cliente
e,
desse
modo,
a
funcionalidade
de
sistema
disponibilizada
mais
cedo.
Os
incrementos
iniciais
agem
como
protEpos
para
elicitar
os
requisitos
para
incrementos
posteriores
do
sistema.
Riscos
menores
de
falha
geral
do
projeto.
Os
servios
de
sistema
de
mais
alta
prioridade
tendem
a
receber
mais
testes.
16
Problemas do desenvolvimento incremental Incrementos pequenos exigem mapeamento entre requisitos e incremento de tamanho adequado Diculdade de iden-car os recursos comuns exigidos por todos os incrementos
17
Extreme
programming
Uma
abordagem
baseada
no
desenvolvimento
e
na
entrega
de
incrementos
de
funcionalidade
muito
pequenos.
Baseia-se
no
aprimoramento
constante
do
cdigo,
em
testes
automa-zados,
no
envolvimento
do
usurio
na
equipe
e
no
desenvolvimento
em
pares.
18
Desenvolvimento
espiral
O
processo
representado
como
uma
espiral
ao
invs
de
uma
sequncia
de
a-vidades
com
realimentao.
Cada
loop
na
espiral
representa
uma
fase
no
processo.
Sem
fases
denidas,
tais
como
especicao
ou
projeto
os
loops
na
espiral
so
escolhidos
dependendo
do
que
requisitado.
Os
riscos
so
explicitamente
avaliados
e
resolvidos
ao
longo
do
processo.
19
20
21
Transformao
Formal
Idia
geral:
Uma
especicao
formal
(denio
matem-ca,
no
ambgua)
do
soGware
desenvolvida
e
posteriormente
transformada
em
um
programa
atravs
de
regras
que
preservam
a
corretude
da
especicao
esp.
1
esp.
2
implement.
22
Transformao
Formal
A
grande
mo-vao
por
trs
da
idia
de
renamento
formal
a
possibilidade
de
gerar
programas
que
so
corretos
por
construo
O
prprio
processo
de
desenvolvimento
deve
garan-r
que
o
programa
faz
exatamente
o
que
foi
especicado
Este
modelo
tem
sido
aplicado
ao
desenvolvimento
de
sistemas
cr-cos,
especialmente
naqueles
onde
a
segurana
um
fator
cr-co
(ex:
sistema
de
controle
de
ferrovias)
23
24
Especicao
de
so*ware
O
processo
para
denir
quais
servios
so
necessrios
e
iden-car
as
restries
de
operao
e
de
desenvolvimento
do
sistema.
Processo
de
engenharia
de
requisitos
Estudo
de
viabilidade;
Realizado
antes
do
projeto
ser
iniciado
Validao
de
requisitos.
25
26
Implementao
Transformar
essa
estrutura
em
um
programa
executvel.
Especicao
abstrata
Especicao
abstrata
de
servios
e
restries
de
subsistemas
Projeto
de
interfaces
entre
componentes
Projeto
de
componente
Projeto
de
estrutura
de
dados
Projeto
de
algoritmo
28
Mtodos
estruturados
Abordagens
sistemEcas
para
projetar
sistemas
de
soGware
O
projeto
,
em
geral,
documentado
como
um
conjunto
de
modelos
grcos
Modelos
possveis
Modelo
de
objeto;
Modelo
de
sequncia;
Modelo
de
transio
de
estado;
Modelo
estruturado;
Modelo
de
uxo
de
dados.
Project
(gerenciamento)
vs.
Design
(desenvolvimento)
29
Programao
e
depurao
a
transformao
de
um
projeto
em
um
programa
e
a
remoo
de
defeitos
desse
programa.
Programao
uma
a-vidade
pessoal
no
h
processo
genrico
de
programao.
H
algumas
pr-cas,
porm,
que
so
universalmente
consideradas
boas
Programadores
realizam
alguns
testes
para
descobrir
defeitos
no
programa
e
removem
esses
defeitos
no
processo
de
depurao
30
Validao
de
so*ware
Vericao
e
validao
(V
&
V)
tm
a
inteno
de
mostrar
que
um
sistema
est
em
conformidade
com
a
sua
especicao
e
que
atende
aos
requisitos
do
cliente
Vericao:
construmos
o
sistema
corretamente?
Exs:
inspeo
de
cdigo,
anlise
est-ca
Testes envolvem a execuo do sistema com casos de teste que so derivados da especicao do sistema e de dados reais a ser processados por ele.
31
Estgios
de
teste
Teste
de
componente
ou
unidade
Os
componentes
individuais
so
testados
independentemente;
Esses
componentes
podem
ser
funes
ou
classes
de
objetos,
ou
grupos
coerentes
dessas
en-dades.
Teste
de
sistema
como
um
todo.
O
teste
das
propriedades
emergentes
par-cularmente
importante.
Busca
erros
que
resultam
de
interaes
no
previstas
entre
componentes
Teste
com
dados
do
cliente
para
vericar
se
o
sistema
atende
s
suas
necessidades,
ou
seja,
pode
revelar
problemas
de
requisitos
32
Teste de sistema
Teste de aceitao
Fases de teste
33
Evoluo
de
so*ware
O
soGware
inerentemente
exvel
e
pode
mudar
Requisitos
mudam
devido
a
diversos
fatores
e
o
soGware
deve
acompanhar
essas
mudanas
Processos
an-gos
separavam
explicitamente
desenvolvimento
de
evoluo
Evoluo
pode
se
dever
a
diversas
razes:
Correes
(patches)
Mudanas
de
requisitos
Melhoria
de
funcionalidades
pr-existentes
Processos
e
mtodos
itera-vos
(XP,
RUP,
Espiral)
normalmente
no
fazem
uma
sepao
explcita
34
Evoluo de so*ware
35
36
37
Fases
do
RUP
Concepo
Estabelecer
o
business
case
para
o
sistema.
Elaborao
Desenvolver
um
entendimento
do
domnio
do
problema,
arquitetura
do
sistema
e
iden-car
riscos
Construo
Projeto,
programao,
teste
de
sistema
e
documentao
Transio
Implantar
o
sistema
no
seu
ambiente
operacional.
38
Workows estEcos
40
Leituras
recomendadas
SOMMERVILLE,
I.
Engenharia
de
SoGware.
9.
Ed.
So
Paulo:
Pearson
Educa-on,
2011
Captulo
4
Referncia
adicional
Barry
W.
Boehm.
A
Spiral
Model
of
So*ware
Development
and
Enhancement.
IEEE
Computer,
vol.
21,
nmero
5,
Maio
de
1988.
h|p://dx.doi.org/10.1109/2.59
41
AEvidades
Projeto
Denio
de
equipes
e
projetos,
montagem
da
infraestrutura
da
fbrica
(site)
-
at
20/03
42