Upload
atomic123
View
224
Download
0
Embed Size (px)
Citation preview
7/25/2019 Nasledjeni sistemi
1/33
Nasleeni sistemi
7/25/2019 Nasledjeni sistemi
2/33
UVOD
Karakteristike savremenog procesa
proizvodnje softvera Nasleeni sistemi
Softversko reinenjerstvo
7/25/2019 Nasledjeni sistemi
3/33
NASLEENI SISTEMI Perspektiva proizvoaa softvera
skupi, kompleksni !""K#!"$% sistemirazvijani zastarelim jezicima i alatima asem&ler, '()(*,+%u odravanju ne uestvuju ljudi koji su pravili sistemsla&a dokumentacija, razmek-ana. ar/itektura 01 odravanje
i izmena te-ki
korisniku neop/odni za o&avljanje posla
Perspektiva mode. te/nolo-kog razvoja%funkcionalan i do&ro odravan sistem smatra se nasleenim
ako je te/nolo-ki zastareo
Poslovna perspektivasistem je zastareo ako ne moe da se prilagodi tempu
promena u domenu poslovanja
7/25/2019 Nasledjeni sistemi
4/33
NASLEENI SISTEMI (2) 2 S34 se procenjuje da ima oko !"" milijardi linija
operativnog '()(* koda
2 5vropi i S34 678 informacioni/ sistema u javnim slu&ama,&ankarstvu itd9 zasnovano na centralizovanim sistemima
Stari '()(*, P*7: sistemi sa /ijerar/ijskim ili mrenim&azama podataka
;"< tog nasleenog softvera &i=e u upotre&i i posle >"""9godine
:zvori ?$icros@AB, ?4edo@CB
7/25/2019 Nasledjeni sistemi
5/33
SOFTVERSKO REINENJERSTVO Dransformacija sistema u novu formu9 'iljeviE
da sistem &ude pogodniji za odravanje, funkcionalnu dopunu,
po&olj-anje performansi i prilagoavanje te/nolo-kim promenama uz snienje tro-ka, radnog napora ili rizika za korisnika
a!"te#i
$%&'eat
Imlementa*i'a
%e#e%+n&in,en'e%st#& a!"
te#i
%&'eat
Imlementa*i'a
%ein,en'e%st#&
%est%-t-%i%an'e
%est%-t-%i%an'e
%est%-t-%i%an'e
in,en'e%st#&
Model potkovice
7/25/2019 Nasledjeni sistemi
6/33
SOFTVERSKOREINENJERSTVO
5konomski aspekt
(rganizacioni aspektPravni aspekt
De/niki aspekt
7/25/2019 Nasledjeni sistemi
7/33
EKONOMSKI AS$EKT
4a li je reinenjerstvo softvera ekonomski opravdanoili tre&a primeniti neku alternativnu strategijuF(pravdavanje projekta
povratak investicije # do kog nivoa =e kvalitet softvera porasti,
odravanje &iti po&olj-ano, poslovna vrednost porasti
Portfolio analiza trijaa aplikacija
Procena ukupni/ tro-kova reinenjerstva
3naliza tro-kovi # do&it poredi se tro-ak reinenjerstva sa oekivanim smanjenjem
tro-kova odravanja i pove=anjem poslovne vrednosti
7/25/2019 Nasledjeni sistemi
8/33
EKONOMSKI AS$EKT (2)
Portfolio analiza trijaa aplikacija
O.%,a#an'e $&/&l'0a#an'e
Otis Rein,en'e%in1
$&slna #%e.n&st
Te!nii #alitet
7/25/2019 Nasledjeni sistemi
9/33
OR3ANIA4IONI AS$EKT $odel procesa reinenjerstva9 3ktivnostiE
!9 4efinisanje ciljeva i pravaca>9 Gormiranje reinenjerskog tima
69 Provera postoje=eg procesa odravanja7razvoja
softvera89 Selekcija skupa softverski/ metrika
H9 3naliza nasleenog softvera
A9 4efinisanje procesa sprovoenja reinenjerstva
C9 Iazvijanje7dopunjavanje testni/ primera
;9 3naliza i iz&or reinenjerski/ alata
@9 (&uka lanova tima
7/25/2019 Nasledjeni sistemi
10/33
56 STRATE3IJE S$ROVOENJAREINENJERSTVA
Ieinenjerstvo celog sistemaprednostiE ceo sistem u istom trenutku u novomoperativnom stanjumanaE pove=an rizik
NasleeniS&7t#e%
Sistem t%ans7&%misanRein,en'e%st#&m
NasleeniS&7t#e%
NasleeniS&7t#e%
7/25/2019 Nasledjeni sistemi
11/33
STRATE3IJE S$ROVOENJAREINENJERSTVA (2)
Nasleeni$%&1%am 8
K&m&nenta 9.:$&.#%1n-ta %ein,en'e%st#-
Na &m&nenta 9.:%e#e.ena sa &stat&m %&1%ama
Na #e%+i'a $%&1%ama 8
a /.
*e 7
!1
i 'l
a/
n&.
*a
/*
Nasleeni$%&1%am ;
Nasleeni$%&1%am
n&.
:nkrementalno reinenjerstvo
po=i od delova koji za/tevaju modifikaciju, spojiti izmene saneizmenjenim ostatkomprednostiE lak-e lociranje eventualni/ pro&lemamanaE vi-estruke verzije softvera dok se ceo ne o&radi
7/25/2019 Nasledjeni sistemi
12/33
STRATE3IJE S$ROVOENJAREINENJERSTVA (
7/25/2019 Nasledjeni sistemi
13/33
$RAVNI AS$EKT $ere za-titite od potencijalne tu&e za kr-enje autorski/
prava kod reverznog inenjerstvaEna&aviti legalnu kopiju softvera koji se eli podvrgnuti reverznominenjeringu
paziti da se ne prekr-e pravila licenciranja
proveriti da ne postoji &ilo kakav drugi nain da se doe doinformacija osim reverznim inenjeringom
podvrgnuti analizi samo neop/odni deo softvera da se spoznajufunkcionalnosti od interesa
Proces razvojaE dva tima, prvi radi reverzno inenjerstvo,drugi projektuje program9 4rugi nema pristup dokorisnikog interfejsa originalnog programa
7/25/2019 Nasledjeni sistemi
14/33
TE=NI>KI AS$EKT
Iekonstrukcija koda
Iekonstrukcija ar/itekture
$igracija podataka
(&laganje nasleenog softvera
7/25/2019 Nasledjeni sistemi
15/33
!H
Re&nst%-*i'a &.a
3naliza kodao Jitanje kodao Statike analize Parsiranje koda u grafove struktura
odnosno kontrola toka%o 4inamika analiza :spitivanje pona-anja sistema%
Profiling sekvence poziva, tok podataka % Snooping interakcija izmeu razliiti/ komponenata sistema%
7/25/2019 Nasledjeni sistemi
16/33
!A
Re&nst%-*i'a &.a (2) Najve=i izazov predstavlja transformacija zastarelog
koda u struktuirani o&lik Stari programski jezici koriste goto Kontrola toka nejasna, program teak za
transformaciju spaghetti code% $ale spag/etti kodove programer moe restruktuirati
runo Softverski alati generi-u grafove kontrole toka
izvr-avanja kada su u pitanju ogromni spag/ettikodovi
7/25/2019 Nasledjeni sistemi
17/33
!C
Re&nst%-*i'a &.a (2) :nstrumentacija dinamika analiza%
o Pra=enje izvr-avanja instrukcija red po redo (tkrivanje razloga lo-i/ performansio Pomae u razumevanju koda
Iezanje koda program slicing%o Svaki izrezani deo koda predstavlja mesto gde se menja vrednost
ili se pristupa oda&ranoj varia&leo Pomae u de&ug#ovanju i otklanjanju gre-aka
Standarda redokumentacija
Iefaktorisanje
7/25/2019 Nasledjeni sistemi
18/33
!;
Re&nst%-*i'a &.a (
7/25/2019 Nasledjeni sistemi
19/33
a sve pojave podatka
Projektni repozitorijumobjedinjavanje
Inte%ne ta/ele este%n& %e.sta#iti/
*e
.7
a6?6< 7-n*i'a
a6?6@ 7-n*i'a*62 7-n*i'a76
7/25/2019 Nasledjeni sistemi
20/33
>"
Re&nst%-*i'a &.a () :zmene na funkcionalnom nivou
o Mamenjivanje komponenata i7ili interfejsa sistemao Iekonstrukcija 2:#jao Iekonstrukcija interfejsa ka ostalim sistemima
:zmene na funkcionalnom nivou o&ino za/tevajumodernizaciju te/nologija
Oe=i vremenski interval izmeu te/nologija pove=avaverovatno=u neuspe/a izmeneo $odernizacija te/nologija tre&a &iti inkrementalna npr9 '()(*
' # ava a ne '()(* # ava%
7/25/2019 Nasledjeni sistemi
21/33
>!
Mane %e&nst%-*i'e&.a Najnii nivo potkovice
Oelike rekonstrukcije mogu znatno izmeniti kod Programeri koji su odravali stari sistem mogu
prestati da prepoznaju kod 4okumentacija i komentari se moraju paralelnomenjati sa kodom
Iestruktuirani kod moe &iti manje itljiv odpoetnog
7/25/2019 Nasledjeni sistemi
22/33
REKONSTRUK4IJAAR=ITEKTURE SOFTVERA
SistemE kolekcija ar/itekturni/ komponenata
3r/itektura defini-eE glo&alnu strukturu, protokolekomunikacije, dodela funkcionalnosti delovima, fizikadistri&ucija, skaliranje i performanse
3r/itekturni poglediE funkcionalni
strukturni
po slojevima
sloj sprege sa korisnikom sloj poslovni/ pravila
perzistentni sloj sloj podataka%
999
7/25/2019 Nasledjeni sistemi
23/33
>6
Re&nst%-*i'a a%!itet-%e
(&navljanje dizajna Kompleksnije od rekonstrukcije koda De-ko automatizovan proces
o Ma razliku od reverse engineering#a na nivou koda Mastareli programski jezici ne podravaju
organizaciju koda me/anizme enkapsulacije,komponentizacijeo Postoji implicitna organizacija do&ijena poznavanjem
koda
7/25/2019 Nasledjeni sistemi
24/33
>8
Re&nst%-*i'a a%!itet-%e (2)
(riginalni dizajn ne mora &iti lo- ali moepostati takav evolucijom
Iekonstrukcija za/teva proces potkovice. nasva tri nivoa
(&novljena ar/itektura pomae i &oljojkomunikaciji razvojnog tima sakorisnicima7naruiocima
Potpuno upoznavanje sa sistemom poslovnapravila i slino%
7/25/2019 Nasledjeni sistemi
25/33
>H
7/25/2019 Nasledjeni sistemi
26/33
$%ime% alat Dali (SEI 4MU) Poluautomatski metod 5kstrakcija razliiti/ ar/itekturni/ pogleda
statiki dinamiki popunjavanje repozitorijuma Spajanje pogleda u sloenije poglede
7/25/2019 Nasledjeni sistemi
27/33
>C
Mi1%a*i'a /a+e &.ataa
)aza podataka je esto usko grlou sistemuo Iizino je modernizovati celu &azu odjednom
o $ogu=e je koristiti dve &aze odjednom
Pri emu se koristi adapter pri pristupu &azio $odernizacija kori-=enjem dve &aze odjednom
Nova &aza podataka uva deo podataka koji se unose iz sistema na osnovuadaptera ugraenog u sam pristup &aze 4ata access laQer%
Oremenom, cela &aza se modernizuje i data access laQer vi-e nije potre&an
7/25/2019 Nasledjeni sistemi
28/33
>;
Mi1%a*i'a /a+e &.ataa (2)
5traction, transformation and loading 5D*%o Standalone softvero 2zimanje podataka iz zastarele &azeo Dransformacije na osnovu definisani/ pravila ili
kom&inovanjem sa drugim podacimao 2itavanje novi/ podataka u modernizovanu &azu ili &azukoja je ve= postojala
o Pored migracije podataka, koriste se i u druge svr/e
7/25/2019 Nasledjeni sistemi
29/33
OCLA3ANJE NASLEENO3SOFTVERA
(&laganje Rrapping% softvera jeftinija i &raalternativa kompletnoj zameni, do&ija se vi-e
vremena za postepenu zamenu
Neki ili svi spoljni interfejsi aplikacije prekrivaju
se slojem softvera koji prevodi ili modifikujeinterfejsne informacije 01 drugi protokol, formatpodataka ili skup komandi
7/25/2019 Nasledjeni sistemi
30/33
OCLA3ANJE NASLEENO3SOFTVERA(2)
aplikativni omotaEstari sistem se nemenja
omota podatakaEneposredan pristupnasleenimpodacima
prezentacioniomotaE samodrugaijaprezentacija isti/podataka
Aplika-cija 2
Aplika-cija 1
Aplika-cija 3
prezentacioniomota
omotaodataka
aplikativniomota
7/25/2019 Nasledjeni sistemi
31/33
AKLJU>AK (d kvaliteta koda zavisi koju strategiju
reinenjerstva primenitiE za kvalitetan kod, delovi mogu &iti ponovoupotre&ljeni pakovanjem u komponente
u suprotnom, kod se elimini-e nakon -tose ekstra/uju poslovna pravila
visoko spregnuti sistemi 01 inkrementalnazamena jako te-ka9 Ie-enjeE o&laganje
o&laganje korisno i u povezivanjuizmenjeni/ i stari/ delova sistema kodinkrementalnog reinenjerstva
IVORI INFORMA4IJA
7/25/2019 Nasledjeni sistemi
32/33
IVORI INFORMA4IJAISTRAIVA>KI
Centar za reinenjering Instituta za softversko inenjerstvo !A"!ttGGG6sei6*m-6e.-%een1inee%in1
Centar za odravanje softvera #niv$ of "ur%am &'!ttGGG6.-%6a*6-H.*sGGG?*sm
(rupa za reverzni inenjering 3e&%1ia Te*!!ttGGG6**61ate*!6e.-%e#e%se
Mi*%&s&7t Rese%a*! 3%-a +a %&1%ams- anali+-!ttGGG6%esea%*!6mi*%&s&7t6*&m%esea%*!analsis
I))) *C!) +omitet za reverzno inenjerstvo !A"
!ttGGG6t*se6&%1%e#en1% 'i,liografija o reinenjerstvu #niverzitet u tutgartu .emaka
!ttGGG6in7&%mati6-ni"st-tt1a%t6.ei7is%een1inee%in1%een1inee%in16!tml
IVORI INFORMA4IJA
7/25/2019 Nasledjeni sistemi
33/33
IVORI INFORMA4IJAKOMER4IJALNI
Clai% an. Ass&*iates
!ttGGG6/aien1inee%in16*&m%een16!tml 4ADRE !ttGGG6*a.%e6*&m Ima1iB !ttGGG6ima1iB6*&m Innati#e S&7tGa%e !ttGGG6is16.e Inte1%iS&7t !ttGGG6!in.si1!t6*&m Le#e%a1e Te*!n&l&1ies !ttst&-t6le#te*!6*&m M*4a/e Ass&*iates !ttGGG6m**a/e6*&m Reas&nin1 Sstems !ttGGG6%eas&nin16*&m S&7tGa%e Eman*iati&n !ttGGG6sete*!6*&m
TaeFi#e S&7tGa%e !ttGGG6tae7i#e6*&m Vias&7t !ttGGG6#ias&7t6*&m Ve%il&1 !ttGGG6#e%il&1-sa6*&m 8in&te*! !ttGGG6Bin&te*!6*&m