vida - ufscarlapes/ead/es-sandra/material/material final - para... · unidade v evolução de...

11
Unidade V Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri Evolução de Sofware - Engenharia Reversa - Fases Genéricas do Fases Genéricas do Ciclo de Ciclo de Vida Vida Engenharia Sistemas Análise Projeto Codificação Manutenção Sistema Requisitos Desenvolvimento Teste Software operacional Sistema Requisitos Desenvolvimento Sistema porque Requisitos o que Desenvolvimento como

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

Page 2: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

Page 3: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

Page 4: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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.

Page 5: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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.

Page 6: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

aform

amais

críticade

engenharia

reversa

porqu

eten

taimitar

oraciocín

iohumano

na

busca

do

entendimento.

Page 7: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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.

Page 8: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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.

Page 9: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

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

Page 10: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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

Page 11: Vida - UFSCarlapes/ead/ES-Sandra/Material/Material final - para... · Unidade V Evolução de Sofware Profa. Dra. Sandra Fabbri - Engenharia Reversa - Fases Genéricas do Fases Genéricas

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