Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Unid
ade V
Unid
ade V
Evo
luçã
o d
e Sofw
are
Profa. Dra. Sandra Fabbri
Evo
luçã
o d
e Sofw
are
-E
ngen
haria
Reversa
-
Fases G
enérica
s do
Fases G
enérica
s do C
iclo d
e C
iclo d
e
Vid
aV
ida
Engenharia
Sistemas
Análise
Projeto
Codificação
Manutenção
Sistema
Requisitos
Desenvolvimento
Teste
Software
operacional
Sistema
Requisitos
Desenvolvimento
•Sistema porque
•Requisito
so que
•Desenvolvim
entocomo
Abstra
ção
•Defin
ição
de
Abstra
ção:habilid
ade
de
seignoraros
aspecto
sde
assu
ntos
não
relevantespara
opropósito
em
questã
o
•Níve
ldeAbstra
ção:Cadapasso
noprocesso
dedesenvolvim
ento
desoftw
are
éum
refinamento
doníve
ldeabstra
çãodosoftw
are.Nosestá
giosiniciais
dociclo
devid
aas
inform
ações
possu
em
alto
níve
lde
abstra
ção
enos
está
gios
finais
baixo
níve
lde
abstra
ção
•GraudeAbstra
ção:Está
relacio
nadoaumamesm
aativida
denociclo
devid
ado
•GraudeAbstra
ção:Está
relacio
nadoaumamesm
aativida
denociclo
devid
ado
softw
are.Inform
açõesnumaform
amais
global
possu
em
alto
graudeabstra
ção,numa
form
amaisdetalhadapossu
em
baixo
graudeabstra
ção
Sistema
Requisitos
Desenvolvimento
alto
alto
baixo
baixo
Grau de
Abstra
ção
Níve
l de Abstra
ção
En
gen
haria
Pro
gressiva
x
En
gen
haria
Reversa
•Engenharia
Progressiva:
Processo
tradicio
nalde
engenharia
de
softw
are,cara
cterizadopela
sativid
adesprog
ressiva
sdociclo
devid
a,que
parte
mdeumalto
níve
ldeabstra
ção,para
umbaixo
níve
ldeabstra
ção.
•Engenharia
Reversa:O
processo
inverso
aEngenharia
Progre
ssiva,
caracterizadopelasativid
adesretroa
tivasdociclo
devid
a,queparte
mde
umbaixo
níve
ldeabstra
çãopara
umalto
níve
ldeabstra
ção.
umbaixo
níve
ldeabstra
çãopara
umalto
níve
ldeabstra
ção.
Eng.
Progressiva
Eng.
Progressiva
Eng. Reversa
Eng. Reversa
alto
baixo
Nível de Abstra
ção
altobaixo
Grau de
Abstra
ção
Sistema
Requisitos
Desenvolvimento
Engen
haria
Reversa
•O
termo“Engenharia
Reversa”
temsua
orig
emnaanálise
dehardware,
pois
écomum
aprá
ticade
decifra
rproje
tosdeprodutosfinaliza
doscom
intuito
deduplica
-los.
•O
conce
itode
Engenharia
Reversa
de
Softw
areé
similar.
Porém
,trad
icionalmente
oobjetivo
dadessa
engenharia
reversa
éobter
apenas
umentendimentodosiste
ma
umentendimentodosiste
ma
•Definiçã
odeEngenharia
Reversa
:Processo
deexameecompreensão
dosoftw
areexiste
nte,
para
recapturar
ourecria
roprojeto
edecifrar
osrequisito
satua
lmente
implementa
dos
pelo
sistema,apresentan
do-os
emumníve
lougraumaisalto
deabstra
ção
•Pormeio
daengenharia
reversa
umsoftw
arepodeser
visualizad
oem
diferen
tesníve
isde
abstraçã
o.Cada
VISUALIZAÇÃO
abstra
icaracterísticas
própria
sda
fasedo
ciclode
vidacorre
spondente
àabstra
ção.
Baseado nos n
íveis d
e abstra
ção, as visõ
es sã
o cla
ssificadas e
m 4 tip
os:
•Visã
o em níve
l implementacio
nal
•Visã
o em níve
l estru
tural
•Visã
o em níve
l funcio
nal
•Visã
o em níve
l de domínio
Visu
aliza
ção d
o S
oftw
are
Caracterís
ticas
do Sistema
Caracterís
ticas
dos Requisito
s
Caracterís
ticas do
Desenvolvim
ento
Visão em Nível
de Domínio
Visão em Nível
Funcional
Visão em Nível
Estru
tural
Visão em Nível
Implementacional
ENGENHARIA PROGRESSIVA
ENGENHARIA REVERSA
Visão em Nível Im
plementacional
•Abstra
icaracterísticas
dalinguagem
depro
gramaçã
oecaracte
rísticas
específica
sdaimplementação
•Exemplos
devisõ
es
emníve
limplementa
cionalsão
inform
açõe
sa
respeito
da
sintaxe
eda
semântica
da
linguagem
einform
ações
da
Visu
aliza
ção d
o S
oftw
are
respeito
da
sintaxe
eda
semântica
da
linguagem
einform
ações
daimplementação
Visão em Nível E
stru
tural
•Abstra
idetalhesdalinguagemdepro
gramaçã
opara
revelar
suaestru
turaa
partir
de
diferen
tespersp
ectivas.
Oresultado
éuma
representação
explícita
dasdependência
sentre
oscomponentesdosiste
ma
•Exemplosde
visõesem
níve
lestru
turalsãografos
defluxo
dedados,
grafos
defluxo
decontro
le,opro
jeto
proced
imentalexpresso
pormeio
deumalinguagem
deprojeto
depro
gramaçã
o,opro
jeto
arqu
itetura
l(gráficos
deestru
turas).
Visão em Nível Funcional
•Abstra
ia
função
de
umcom
ponente,isto
é,o
qu
eo
componente
faz.
Essa
visãorelacio
napartes
dopro
gramaàs
suas
funçõe
sprocura
ndorevelar
asrelaçõe
slógicas
entre
elas
(diferentementedasrelaçõessin
tática
soudaestru
tura)
Visu
aliza
ção d
o S
oftw
are
•Exemplos:descriçõ
esdosistem
aexpre
ssosde
maneira
formal
usan
do,por
exemplo,VDM,ZeZ
++;diagram
asdefluxo
de
dados
(que
apresentam
osprocessos
eos
fluxosde
dados
entre
eles),
diagram
asdefluxo
decontro
le(apresentam
processoseo
fluxo
decontro
leentre
eles),
diagram
asque
mostram
osdados
eseusrelacio
namentos.
Visão em Nível de Domínio
•Abstra
i o co
ntexto
em que o siste
ma esta
operando, ou se
ja, o
po
rqu
e do siste
ma a se
r desenvolvid
o.
1-VISUALIZAÇÃO
DECÓDIGO
-[Redocumentação]:éacria
çãoourevisã
ode
representaçõessemantica
mente
equiva
lentesnum
mesm
oníve
ldeabstra
ção.
2-
ENTENDIMENTO
DE
PROGRAMA
-[Recuperação
de
Projeto]:
recria
abstra
çõesdosoftw
are
apartir
deumacombinaçãodecódigo,documentação
existe
nte,experiência
spesso
ais
econhecim
entosgerais
sobre
oproblemaeo
Categ
oria
s de E
ngen
haria
Reversa
domíniodeaplica
ção.
Entendimento
do programa
alto
baixo
Nível de Abstra
ção
alto
baixo
Grau de
Abstra
ção
Sistema
Requisitos
Desenvolvimento
Entendimento
do programa
Visão em Nível
de Domínio
Visão em Nível
Funcional
Visão em Nível Estrutural
Implementacional
visualização
de código
1 -Visualiza
ção de Código
•É a cria
ção ou re
visão de re
presentações se
mantica
mente e
quiva
lentes
num mesm
o níve
l de abstra
ção
•Oprocesso
deVisu
aliza
çãodeCódigocria
asreprese
ntaçõesapartir
deinform
ações
obtidas
apenas
da
análise
do
código
fonte
,embora
aapresentaçãodessa
sinform
açõespossa
sedive
rsificar.
Categ
oria
s de E
ngen
haria
Reversa
apresentaçãodessa
sinform
açõespossa
sedive
rsificar.
•Visu
aliza
çãode
Código
éa
forma
mais
simples
emais
antiga
de
engenharia
reversa
.A
intenção
érecuperar
adocu
mentação
sobre
osistem
a.Aênfase
éacria
çãode
visõesadicio
nais,
especia
lmente
visões
gráficas
quenãoforam
criadas
dura
nteoprocesso
originaldeengenharia
progressiva
.
•Asferra
mentasmaiscomunsusadas
para
dese
mpenhar
aVisu
aliza
çãodeCódigousa
mocódigo
fonte
dosoftw
arecom
oentrad
a,analisa
me
extrae
maarquitetura
doprog
rama,aestru
tura
decontro
le,ofluxo
lógico
,aestru
tura
dedados,o
fluxo
dedadoseofluxo
decontro
le.
Categ
oria
s de E
ngen
haria
Reversa
Técnicas de Visualiza
ção de Código
a)
PROGRAM
SLICING:Nessa
técnica
,especifica
-seos
tipos
deestru
turas
depro
grama
(declarações
dedados,
laços)
que
são
deinteresse
ea
ferramenta
de
engen
haria
reversa
remove
ocód
igo
estran
ho,
possib
ilitando
que
somente
ocódigo
de
interesse
seja
representa
do.
representa
do.
b)ANÁLISE
DE
DEPENDÊNCIA:Nessa
técnica
constro
em-se
mapas
gráficos
dedependência
squemostra
masligações
entre
asestru
turasde
dadoseoscomponentesdoprograma.
•O
objetivo
dessas
técnica
sde
Visu
alizaçã
odeCódigoéforn
ecermeios
fáceis
para
visualizar
orelacio
namento
entre
os
compon
entes
do
programa,fa
cilitandoacompreensib
ilidadedosiste
ma.
•Essas
técnica
ssim
plesm
ente
auxilia
mo
entendimento
do
sistema.
Atra
vésdelas
não
seobtê
minform
açõesdas
funçõesoupropo
stasdo
sistema.
Categ
oria
s de E
ngen
haria
Reversa
Categ
oria
s de E
ngen
haria
Reversa
2-Entendimento de Programa
•Nesta
categoria
deengenharia
reversa
,ocon
hecim
ento
dodom
ínio
das
inform
ações
externa
se
asdeduçõ
essão
adicio
nada
sàs
observaçõe
sfeitassobre
osistem
a,atra
vésdoexam
edomesm
o,de
modoaobterinform
açõescomníve
lmaisalto
deabstra
ção.
•EntendimentodeProgramarecria
abstrações
dopro
jeto
apartir
de
•EntendimentodeProgramarecria
abstrações
dopro
jeto
apartir
de
umacom
bina
çãodecódigo,docum
enta
çãoexistente
dopro
jeto
(sedisp
oníve
l),experiê
nciaspesso
ais
econ
hecim
ento
sgera
issobre
oproblemaedomíniodeaplica
ção
•Entendimento
de
Program
adeve
produzir
todas
asinform
ações
necessária
spara
seenten
der
completamente
oqueosiste
mafaz,
co
mo
,ep
or
qu
eofaz.
•Entendimento
de
program
aé
aform
amais
críticade
engenharia
reversa
porqu
eten
taimitar
oraciocín
iohumano
na
busca
do
entendimento.
Pro
pósito
s da E
ngen
haria
Reversa
1.ENGENHARIA
REVERSAXMANUTENÇÃO
•As
atividades
demanutenção
fornece
ma
motiva
çãopara
muitas
ferram
entas
deengenharia
reversa
.Essa
motivação
éprovenien
teda
elevadapro
porçã
odetem
poecustos
despe
ndidanoente
ndimento
eexamedosoftw
are
asermantido.
examedosoftw
are
asermantido.
•Éestim
ado
quemanten
edoresgastam
entre
42a67%
deseu
tempo
tentandoentenderosoftw
are.
•Nasmanuten
ções
ad
ap
tativ
as(ad
equar
osoftw
are
anovo
ambiente
)e
evo
lutiv
as(ad
icionar
novasfun
cionalidades
aosoftw
are),as
técnica
sde
engenharia
reversa
sãousa
dasindiretamente
,atravé
sdofornecim
ento
de
visões
dosoftw
are,para
localizar
oscom
ponentes
onde
serão
realizad
asas
mudanças
eadiçõe
snecessária
s,e
para
auxilia
rno
contro
leda
estrutura
globald
osiste
mamodifica
do,atra
vésdaprod
ução
dedocumentação.
Pro
pósito
s da E
ngen
haria
Reversa
1.ENGENHARIA
REVERSAXMANUTENÇÃO(cont.)
•Nas
manuten
ções
corre
tivas
(correçãode
erros),
as
técnicas
de
engenharia
reversa
nãoservem
para
detectar,
remove
rou
corrigirerros,
porém
auxilia
mindiretam
ente
oprogramador
na
localiza
ção
docomponente
defeituoso
,atra
vésdemelhorias
dacom
preensib
ilidadedo
componente
defeituoso
,atra
vésdemelhorias
dacom
preensib
ilidadedo
softw
are.
•Para
mudanças
pre
ve
ntiv
as
(reduçã
ode
esforços
emfutu
ras
mudanças),
ferram
entasde
engenharia
reversa
podem
fornece
rum
discern
imento
deonde
ecomorealizar
mudanças
aprop
riadas,
através
daproduçãodevisõ
esdosoftw
are.
•Os
maiores
benefícios
de
engenharia
reversa
serão
mais
reconhecid
os
quando
manuten
ções
futuras
tiverem
como
apoio
adocumentaçãoproduzid
anumamanutençãoanterio
r.
Pro
pósito
s da E
ngen
haria
Reversa
1. Engenharia
Reversa X Manutenção
Alta
Manutenibilidade
Baixa
Baixo
Alto
Valor Empresarial
Descarta
rEngenharia Reversa
Manutenção
Pro
pósito
s da E
ngen
haria
Reversa
2. Engenharia
Reversa X Reuso
•Reuso
éum
aativid
adeque
sedestina
aidentificar
softw
arereutilizá
vel.
Envolve
também
acorreta
importação
,recon
figura
çãoe
adaptação
deste
softw
are
para
umanova
aplica
çãoemumsiste
madecomputação.
•Oprocesso
de
reuso
édescrito
por
meio
das
ativid
ades:
Recon
hecim
ento,
Decom
posiçã
o,
Classifica
ção
(para
povoa
ras
Recon
hecim
ento,
Decom
posiçã
o,
Classifica
ção
(para
povoa
ras
bibliotecasdereuso);S
eleção,A
daptaçãoeComposiçã
o
•Técnica
sdeengenharia
reversa
disp
utam
opapelprin
cipalnoapoio
aesse
spasso
s,contudo,o
foco
prin
cipalé
nostrê
sprim
eiro
spasso
s.
•Componentes
candidatos
areuso
podem
sermais
facilmente
reconhecid
os,
seforem
convertido
spara
uma
notação
ouform
a“padrão”.
Mesm
oqueastécnicas
deengenharia
reversa
não
sejam
focalizad
asna
identifica
çãoecom
posiçã
ode
componentesapartir
departes
reutilizá
veis,
ela
pode
serproveitosa
em
completar
adocumentaçãodosnovossiste
mascomposto
s.
Pro
pósito
s da E
ngen
haria
Reversa
3. Engenharia Reversa X Garantia de Qualidade de Softw
are
•QualidadedeSoftw
are
édefinidacom
oaconform
idadeareq
uisito
sfuncion
ais
ededese
mpenhoexplicitam
ente
decla
rados,
apadrõ
esde
desenvolvim
ento
claramente
docum
entados
ea
características
implícita
squesãoesperadasdetodosoftw
are.
implícita
squesãoesperadasdetodosoftw
are.
•Garantia
deQualidadedeSoftw
are
constitu
ideativid
adesdeapoio
aplica
das
por
todooprocesso
deengenharia
desoftw
are,para
garan
tiraqualidadedosoftw
are.
•Ativid
adePrin
cipais
paraum
bem
sucedidopro
gramadegara
ntiade
qualidadedesoftw
are:
Revis
ões
Técn
icas
Fo
rma
is,
Co
leçã
oe
An
ális
e
de
Mé
trica
se
Te
ste
s.
•Aengenharia
reversa
pode
seraplicada
desdeoinício
dociclo
devid
acomoumabase
para
fornecer
ga
ran
tiad
eq
ua
lida
de
de
so
ftwa
re.
Pro
pósito
s da E
ngen
haria
Reversa
3. Engenharia Reversa X Garantia de Qualidade de Softw
are (cont.)
AtividadesdeGarantiadeQualidadedeSoftware
•Revisã
oTécnica
Form
alé
aativid
adecentra
lquerea
lizaaavaliaçãode
qualidade.É
umareunião
conduzid
aporum
aequip
etécn
icacom
opropósito
exclu
sivodedesco
brir
problemasdequalidade
propósito
exclu
sivodedesco
brir
problemasdequalidade
�Técnica
sdeengenharia
reversa
apoiam
essaativid
adeatra
vésda
prod
uçãode
visõesalterna
tivasdenota
çõesem
pregadas
em
cada
fase,quepodemauxilia
raidentifica
rproblemasdequalidade
•Métrica
deQualidadeéum
número
querepresen
taumacaracte
rísticadosfatore
sde
qualidade.
Asmétricas
podem
tornar-se
uma
parte
integraldos
softw
aressob
revisão
eforn
ecem
discern
imentos
valiosos
para
ostomadoresdedecisã
o
�Técnica
sdeengenharia
reversa
apoiam
essa
ativid
adenacoleta
de
inform
açõesnecessá
riasàsmedidasdascaracte
rísticas
Pro
pósito
s da E
ngen
haria
Reversa
3. Engenharia Reversa X Garantia de Qualidade de Softw
are (cont.)
Atividades de Garantia de Qualidade de Software
•Ativid
adesdeTeste
deSoftw
are
combinam
umaestra
tégia
demúltip
lospasso
scom
umasérie
demétodosdeprojetos
demúltip
lospasso
scom
umasérie
demétodosdeprojetos
de
casos
de
testes
que
auxilia
ma
garantir
aefetiva
detecçã
odeerro
s
�Técnica
sdeengenharia
reversa
auxilia
maativid
adede
teste
atravésdaproduçãodevisõ
esdosoftw
are
para
apoiaroscrité
riosdeverifica
çãoevalidação
Qu
estões E
con
ôm
icas d
a
En
gen
haria
Reversa
•O
benefício
fundam
ental
da
tecno
logia
de
engen
haria
reversa
éo
aumento
doentendimento
deum
sistemaoquefacilita
aativid
adede
manutençãoeconsequentementecausa
oaumentodaprodutivid
ade
•Oaum
ento
daprod
utivid
adequeaenge
nharia
reversa
proporcio
napode
Questões Econômicas:
•Oaum
ento
daprod
utivid
adequeaenge
nharia
reversa
proporcio
napode
sertra
duzid
oemvantagenscompetitiva
sefinanceira
s
•Aengenharia
reversa
pode
proporcio
naroaum
ento
depro
dutivid
adena
etapadedesenvolvim
ento
dosoftw
are,atra
vésdo
reuso
egara
ntiade
qualidade
•Aengenharia
reversa
pode
facilita
rnovosdesen
volvim
entospeloexame
decomosiste
mas
similaresforam
constru
ídos
eassim
asequipesde
projetistas
podem
obter
mais
inform
ações
para
asdecisõ
esaserem
tomadasnosnovosprojetos
obtendo-se
as in
form
ações
necessá
rias p
ara o co
mpleto
entendimento do siste
ma
Como começa a engenharia
reversa?
En
gen
haria
Reversa
entendimento do siste
ma
O que fazer c
om essas inform
ações?
•só para m
anutenção
•mesm
o paradigma e mudança de lin
guagem
•mudança de paradigma
•mudança de paradigma e de lin
guagem
Reengenharia