nasle đeni sistemi

33
Nasleđeni sistemi

Upload: erica

Post on 07-Jan-2016

54 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Nasle đeni sistemi

Nasleđeni sistemi

Page 2: Nasle đeni sistemi

UVOD

• Karakteristike savremenog procesa proizvodnje softvera

• Nasleđeni sistemi

• Softversko reinženjerstvo

Page 3: Nasle đeni sistemi

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

Page 4: Nasle đeni sistemi

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]

Page 5: Nasle đeni sistemi

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

Page 6: Nasle đeni sistemi

SOFTVERSKO REINŽENJERSTVO

•Ekonomski aspekt

•Organizacioni aspekt

•Pravni aspekt

•Tehnički aspekt

Page 7: Nasle đeni sistemi

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

Page 8: Nasle đeni sistemi

EKONOMSKI ASPEKT (2)•Portfolio analiza

• trijaža aplikacija

Održavanje Poboljšavanje

Otpis Reinženjering

Poslovna vrednost

Tehnički kvalitet

Page 9: Nasle đeni sistemi

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

Page 10: Nasle đeni sistemi

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

Page 11: Nasle đeni sistemi

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

Page 12: Nasle đeni sistemi

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

Page 13: Nasle đeni sistemi

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

Page 14: Nasle đeni sistemi

TEHNIČKI ASPEKT

• Rekonstrukcija koda

• Rekonstrukcija arhitekture

• Migracija podataka

• Oblaganje nasleđenog softvera

Page 15: Nasle đeni sistemi

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)

Page 16: Nasle đeni sistemi

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

Page 17: Nasle đeni sistemi

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

Page 18: Nasle đeni sistemi

18

Rekonstrukcija koda (3)

• Razni softverski alatio Automatizovan proces rekonstrukcije o Abstrakcija kodao Konverzija iz jednog programskog jezika u drugi

Page 19: Nasle đeni sistemi

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

Page 20: Nasle đeni sistemi

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)

Page 21: Nasle đeni sistemi

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

Page 22: Nasle đeni sistemi

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)

– ...

Page 23: Nasle đeni sistemi

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

Page 24: Nasle đeni sistemi

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)

Page 25: Nasle đeni sistemi

25

Page 26: Nasle đeni sistemi

Primer: alat Dali (SEI CMU)• Poluautomatski metod• Ekstrakcija različitih arhitekturnih pogleda

– statički dinamički– popunjavanje repozitorijuma

• Spajanje pogleda u složenije poglede

Page 27: Nasle đeni sistemi

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

Page 28: Nasle đeni sistemi

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

Page 29: Nasle đeni sistemi

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

Page 30: Nasle đeni sistemi

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č

Page 31: Nasle đeni sistemi

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

Page 32: Nasle đeni sistemi

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

Page 33: Nasle đeni sistemi

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/