nasle đeni sistemi
DESCRIPTION
Nasle đeni sistemi. UVOD. Karakteristike savremenog procesa proizvodnje softvera Nasleđeni sistemi Softversko reinženjerstvo. NASLEĐENI SISTEMI. Perspektiva proizvođača softvera skupi, kompleksni (100K-10M) sistemi razvijani zastarelim jezicima i alatima (asembler, COBOL,…) - PowerPoint PPT PresentationTRANSCRIPT
Nasleđeni sistemi
UVOD
• Karakteristike savremenog procesa proizvodnje softvera
• Nasleđeni sistemi
• Softversko reinženjerstvo
NASLEĐENI SISTEMI• Perspektiva proizvođača softvera
–skupi, kompleksni (100K-10M) sistemi–razvijani zastarelim jezicima i alatima (asembler, COBOL,…)–u održavanju ne učestvuju ljudi koji su pravili sistem–slaba dokumentacija, “razmekšana” arhitektura =>
održavanje i izmena teški–korisniku neophodni za obavljanje posla
• Perspektiva “mode” (tehnološkog razvoja)–funkcionalan i dobro održavan sistem smatra se nasleđenim
ako je tehnološki zastareo
• Poslovna perspektiva–sistem je zastareo ako ne može da se prilagodi tempu
promena u domenu poslovanja
NASLEĐENI SISTEMI (2)• U SAD se procenjuje da ima oko 100 milijardi linija
operativnog COBOL koda
• U Evropi i SAD 3/4 informacionih sistema u javnim službama, bankarstvu itd. zasnovano na centralizovanim sistemima
• Stari COBOL, PL/I sistemi sa hijerarhijskim ili mrežnim bazama podataka
• 80% tog nasleđenog softvera biće u upotrebi i posle 2000. godine
• Izvori [Micros96], [Dedo97]
SOFTVERSKO REINŽENJERSTVO• Transformacija sistema u novu formu. Ciljevi:
– da sistem bude pogodniji za održavanje, funkcionalnu dopunu, poboljšanje performansi i prilagođavanje tehnološkim promenama
– uz sniženje troška, radnog napora ili rizika za korisnika
Zah-tevi
Projekat
Implementacija
reverznoinženjerstvo Zah-
tevi
projekat
Implementacija
reinženjerstvo
restrukturiranje
restrukturiranje
restrukturiranje
inženjerstvo
Model potkovice
SOFTVERSKO REINŽENJERSTVO
•Ekonomski aspekt
•Organizacioni aspekt
•Pravni aspekt
•Tehnički aspekt
EKONOMSKI ASPEKT
• Da li je reinženjerstvo softvera ekonomski opravdano ili treba primeniti neku alternativnu strategiju?
–Opravdavanje projekta• povratak investicije - do kog nivoa će kvalitet softvera porasti,
održavanje biti poboljšano, poslovna vrednost porasti
–Portfolio analiza• trijaža aplikacija
–Procena ukupnih troškova reinženjerstva
–Analiza troškovi - dobit• poredi se trošak reinženjerstva sa očekivanim smanjenjem
troškova održavanja i povećanjem poslovne vrednosti
EKONOMSKI ASPEKT (2)•Portfolio analiza
• trijaža aplikacija
Održavanje Poboljšavanje
Otpis Reinženjering
Poslovna vrednost
Tehnički kvalitet
ORGANIZACIONI ASPEKT• Model procesa reinženjerstva. Aktivnosti:
1. Definisanje ciljeva i pravaca
2. Formiranje reinženjerskog tima
3. Provera postojećeg procesa održavanja/razvoja softvera
4. Selekcija skupa softverskih metrika
5. Analiza nasleđenog softvera
6. Definisanje procesa sprovođenja reinženjerstva
7. Razvijanje/dopunjavanje testnih primera
8. Analiza i izbor reinženjerskih alata
9. Obuka članova tima
6. STRATEGIJE SPROVOĐENJA REINŽENJERSTVA
• Reinženjerstvo celog sistema–prednosti: ceo sistem u istom trenutku u novom operativnom stanju–mana: povećan rizik
NasleđeniSoftver
Sistem transformisanReinženjerstvom
NasleđeniSoftver
NasleđeniSoftver
STRATEGIJE SPROVOĐENJA REINŽENJERSTVA (2)
NasleđeniProgram X
Komponenta “d”Podvrgnuta reinženjerstvu
Nova komponenta “d”prevedena sa ostatkom programa
Nova verzija Programa X
ab
dc
ef
hg
ij
lk
ab
novod
ca
bc
NasleđeniProgram Y
NasleđeniProgram Z
novod
• Inkrementalno reinženjerstvo–poći od delova koji zahtevaju modifikaciju, spojiti izmene sa neizmenjenim ostatkom–prednosti: lakše lociranje eventualnih problema–mana: višestruke verzije softvera dok se ceo ne obradi
STRATEGIJE SPROVOĐENJA REINŽENJERSTVA (3)
NasleđeniProgram X
Komponenta “d”Podvrgnuta reinženjerstvu
Interfejs prema novojkomponenti “d”
Eventualno u novomoperativnom okruženju
ab
dc
ef
hg
ij
lk
ab
c
NasleđeniProgram Y
NasleđeniProgram Z
novod
• Delimično reinženjerstvo–poći od delova koji zahtevaju modifikaciju, izmenjene delove držati odvojeno u novom operativnom okruženju–prednosti: lakše lociranje eventualnih problema–mana: degradacija vremena odziva
PRAVNI ASPEKT• Mere zaštitite od potencijalne tužbe za kršenje autorskih prava kod reverznog inženjerstva:
–nabaviti legalnu kopiju softvera koji se želi podvrgnuti reverznom inženjeringu
–paziti da se ne prekrše pravila licenciranja
–proveriti da ne postoji bilo kakav drugi način da se dođe do informacija osim reverznim inženjeringom
–podvrgnuti analizi samo neophodni deo softvera da se spoznaju funkcionalnosti od interesa
• Proces razvoja: dva tima, prvi radi reverzno inženjerstvo, drugi projektuje program. Drugi nema pristup do korisničkog interfejsa originalnog programa
TEHNIČKI ASPEKT
• Rekonstrukcija koda
• Rekonstrukcija arhitekture
• Migracija podataka
• Oblaganje nasleđenog softvera
15
Rekonstrukcija koda
• Analiza kodao Čitanje kodao Statičke analize (Parsiranje koda u grafove struktura
odnosno kontrola toka)o Dinamička analiza (Ispitivanje ponašanja sistema)
Profiling( sekvence poziva, tok podataka ) Snooping (interakcija između različitih komponenata sistema)
16
Rekonstrukcija koda (2)• Najveći izazov predstavlja transformacija zastarelog
koda u struktuirani oblik• Stari programski jezici koriste goto• Kontrola toka nejasna, program težak za
transformaciju (spaghetti code)• Male spaghetti kodove programer može restruktuirati
ručno• Softverski alati generišu grafove kontrole toka
izvršavanja kada su u pitanju ogromni spaghetti kodovi
17
Rekonstrukcija koda (2)• Instrumentacija (dinamička analiza)
o Praćenje izvršavanja instrukcija red po redo Otkrivanje razloga loših performansio Pomaže u razumevanju koda
• Rezanje koda (program slicing)o Svaki izrezani deo koda predstavlja mesto gde se menja vrednost
ili se pristupa odabranoj variableo Pomaže u debug-ovanju i otklanjanju grešaka
• Standarda redokumentacija• Refaktorisanje
18
Rekonstrukcija koda (3)
• Razni softverski alatio Automatizovan proces rekonstrukcije o Abstrakcija kodao Konverzija iz jednog programskog jezika u drugi
a sve pojave podatka x
Projektni repozitorijum objedinjavanje
Interne tabele eksterno predstavitib
ce
df
a.1.3 funkcijaa.1.7 funkcijac.2 funkcijaf.3.1 funkcijaf.3.2 funkcija
kandidati za objekte
X Y
Z
W
V
podatak xfunction a.1.3 function a.1.7 function c.2 function f.3.1 function f.3.2
slicing po x
potencijalni objekat X
OBJEKTIFIKACIJA• Transformacija proceduralnog programa u
ekvivalentni objektno-orijentisani – Xinotech Object Abstractor: FORTRAN, COBOL => ADA 95
20
Rekonstrukcija koda (4)• Izmene na funkcionalnom nivou
o Zamenjivanje komponenata i/ili interfejsa sistemao Rekonstrukcija GUI-jao Rekonstrukcija interfejsa ka ostalim sistemima
• Izmene na funkcionalnom nivou obično zahtevaju modernizaciju tehnologija
• Veći vremenski interval između tehnologija povećava verovatnoću neuspeha izmeneo Modernizacija tehnologija treba biti inkrementalna (npr. COBOL –
C - Java a ne COBOL - Java)
21
Mane rekonstrukcije koda• Najniži nivo potkovice
• Velike rekonstrukcije mogu znatno izmeniti kod• Programeri koji su održavali stari sistem mogu
prestati da prepoznaju kod• Dokumentacija i komentari se moraju paralelno
menjati sa kodom• Restruktuirani kod može biti manje čitljiv od
početnog
REKONSTRUKCIJA ARHITEKTURE SOFTVERA
• Sistem: kolekcija arhitekturnih komponenata• Arhitektura definiše: globalnu strukturu, protokole
komunikacije, dodela funkcionalnosti delovima, fizička distribucija, skaliranje i performanse
• Arhitekturni pogledi:– funkcionalni– strukturni– po slojevima
• sloj sprege sa korisnikom
• sloj poslovnih pravila
• perzistentni sloj (sloj podataka)
– ...
23
Rekonstrukcija arhitekture
• Obnavljanje dizajna • Kompleksnije od rekonstrukcije koda• Teško automatizovan proces
o Za razliku od reverse engineering-a na nivou koda• Zastareli programski jezici ne podržavaju
organizaciju koda – mehanizme enkapsulacije, komponentizacijeo Postoji implicitna organizacija dobijena poznavanjem
koda
24
Rekonstrukcija arhitekture (2)
• Originalni dizajn ne mora biti loš ali može postati takav evolucijom
• Rekonstrukcija zahteva proces “potkovice” na sva tri nivoa
• Obnovljena arhitektura pomaže i boljoj komunikaciji razvojnog tima sa korisnicima/naručiocima
• Potpuno upoznavanje sa sistemom (poslovna pravila i slično)
25
Primer: alat Dali (SEI CMU)• Poluautomatski metod• Ekstrakcija različitih arhitekturnih pogleda
– statički dinamički– popunjavanje repozitorijuma
• Spajanje pogleda u složenije poglede
27
Migracija baze podataka
• Baza podataka je često „usko grlo“ u sistemuo Rizično je modernizovati celu bazu odjednom
o Moguće je koristiti dve baze odjednom Pri čemu se koristi adapter pri pristupu bazi
o Modernizacija korišćenjem dve baze odjednom Nova baza podataka čuva deo podataka koji se unose iz sistema na osnovu
adaptera ugrađenog u sam pristup baze (Data access layer) Vremenom, cela baza se modernizuje i data access layer više nije potreban
28
Migracija baze podataka (2)
• Extraction, transformation and loading (ETL)o Standalone softvero Uzimanje podataka iz zastarele bazeo Transformacije na osnovu definisanih pravila ili
kombinovanjem sa drugim podacimao Učitavanje novih podataka u modernizovanu bazu ili bazu
koja je već postojalao Pored migracije podataka, koriste se i u druge svrhe
OBLAGANJE NASLEĐENOG SOFTVERA
• Oblaganje (wrapping) softvera jeftinija i brža alternativa kompletnoj zameni, dobija se više vremena za postepenu zamenu
• Neki ili svi spoljni interfejsi aplikacije prekrivaju se slojem softvera koji prevodi ili modifikuje interfejsne informacije => drugi protokol, format podataka ili skup komandi
OBLAGANJE NASLEĐENOG SOFTVERA(2)
• aplikativni omotač: stari sistem se ne menja
• omotač podataka: neposredan pristup nasleđenim podacima
• prezentacioni omotač: samo drugačija prezentacija istih podataka
Aplika-cija 2
Aplika-cija 1
Aplika-cija 3
prezentacioniomotač
omotačpodataka
aplikativniomotač
ZAKLJUČAK• Od kvaliteta koda zavisi koju strategiju
reinženjerstva primeniti:• za kvalitetan kod, delovi mogu biti ponovo
upotrebljeni pakovanjem u komponente• u suprotnom, kod se eliminiše nakon što
se ekstrahuju poslovna pravila• visoko spregnuti sistemi => inkrementalna
zamena jako teška. Rešenje: oblaganje• oblaganje korisno i u povezivanju
izmenjenih i starih delova sistema kod inkrementalnog reinženjerstva
IZVORI INFORMACIJA: ISTRAŽIVAČKI
• Centar za reinženjering Instituta za softversko inženjerstvo, SADhttp://www.sei.cmu.edu/reengineering
• Centar za održavanje softvera, Univ. of Durham, VBhttp://www.dur.ac.uk/~dcs0www1/csm
• Grupa za reverzni inženjering, Georgia Tech http://www.cc.gatech.edu/reverse
• Microsoft Reserach Grupa za programsku analizu, http://www.research.microsoft.com/research/analysis/
• IEEE TCSE, Komitet za reverzno inženjerstvo, SADhttp://www.tcse.org/revengr/
• Bibliografija o reinženjerstvu, Univerzitet u Štutgartu, Nemačkahttp://www.informatik.uni-stuttgart.de/ifi/ps/reengineering/reengineering.html
IZVORI INFORMACIJA: KOMERCIJALNI
• Blair and Associateshttp://www.baiengineering.com/reeng.html
• CADREhttp://www.cadre.com/• Imagix http://www.imagix.com/• Innovative Software http://www.isg.de/• IntegriSoft http://www.hindsight.com/• Leverage Technologies http://stout.levtech.com/• McCabe & Associates http://www.mccabe.com/• Reasoning Systems http://www.reasoning.com/• Software Emancipation http://www.setech.com/• TakeFive Software http://www.takefive.com/• Viasoft http://www.viasoft.com/• Verilog http://www.verilogusa.com/• Xinotech http://www.xinotech.com/