1 / 33

Nasle đeni sistemi

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,…)

erica
Download Presentation

Nasle đeni sistemi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nasleđeni sistemi

  2. UVOD • Karakteristike savremenog procesa proizvodnje softvera • Nasleđeni sistemi • Softversko reinženjerstvo

  3. 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

  4. 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]

  5. 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 reinženjerstvo reverzno inženjerstvo restrukturiranje inženjerstvo Zah- Zah- tevi tevi restrukturiranje projekat Projekat restrukturiranje Implementacija Implementacija Model potkovice

  6. SOFTVERSKO REINŽENJERSTVO • Ekonomski aspekt • Organizacioni aspekt • Pravni aspekt • Tehnički aspekt

  7. 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

  8. EKONOMSKI ASPEKT (2) • Portfolio analiza • trijaža aplikacija Tehnički kvalitet Održavanje Poboljšavanje Otpis Reinženjering Poslovna vrednost

  9. 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

  10. 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đeni Nasleđeni Nasleđeni Softver Softver Softver Sistem transformisan Reinženjerstvom

  11. STRATEGIJE SPROVOĐENJA REINŽENJERSTVA (2) • 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 Nasleđeni Nasleđeni Nasleđeni Program X Program Y Program Z a e i b f j c g k d h l Komponenta “d” Podvrgnuta reinženjerstvu Nova verzija Programa X a a b b c c novo novo Nova komponenta “d” d d prevedena sa ostatkom programa

  12. STRATEGIJE SPROVOĐENJA REINŽENJERSTVA (3) • 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 Nasleđeni Nasleđeni Nasleđeni Program X Program Y Program Z a e i b f j c g k d h l Komponenta “d” Podvrgnuta reinženjerstvu Eventualno u novomoperativnom okruženju a b c novo d Interfejs prema novojkomponenti “d”

  13. 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

  14. TEHNIČKI ASPEKT • Rekonstrukcija koda • Rekonstrukcija arhitekture • Migracija podataka • Oblaganje nasleđenog softvera

  15. Analiza koda Čitanje koda Statičke analize (Parsiranje koda u grafove struktura odnosno kontrola toka) Dinamička analiza (Ispitivanje ponašanja sistema) Profiling( sekvence poziva, tok podataka ) Snooping (interakcija između različitih komponenata sistema) Rekonstrukcija koda

  16. 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 Rekonstrukcija koda (2)

  17. Instrumentacija (dinamička analiza) Praćenje izvršavanja instrukcija red po red Otkrivanje razloga loših performansi Pomaže u razumevanju koda Rezanje koda (program slicing) Svaki izrezani deo koda predstavlja mesto gde se menja vrednost ili se pristupa odabranoj variable Pomaže u debug-ovanju i otklanjanju grešaka Standarda redokumentacija Refaktorisanje Rekonstrukcija koda (2)

  18. Razni softverski alati Automatizovan proces rekonstrukcije Abstrakcija koda Konverzija iz jednog programskog jezika u drugi Rekonstrukcija koda (3)

  19. OBJEKTIFIKACIJA • Transformacija proceduralnog programa u ekvivalentni objektno-orijentisani • Xinotech Object Abstractor: FORTRAN, COBOL => ADA 95 b Interne tabele eksterno predstaviti a sve pojave podatka x a.1.3 funkcija c a.1.7 funkcija e c.2 funkcija f.3.1 funkcija slicing po x f.3.2 funkcija f d Projektni repozitorijum objedinjavanje potencijalni objekat X X Y podatak x function a.1.3 Z function a.1.7 V function c.2 function f.3.1 W function f.3.2 kandidati za objekte

  20. Izmene na funkcionalnom nivou Zamenjivanje komponenata i/ili interfejsa sistema Rekonstrukcija GUI-ja 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 izmene Modernizacija tehnologija treba biti inkrementalna (npr. COBOL – C - Java a ne COBOL - Java) Rekonstrukcija koda (4)

  21. 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 Mane rekonstrukcije koda

  22. 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. Obnavljanje dizajna Kompleksnije od rekonstrukcije koda Teško automatizovan proces Za razliku od reverse engineering-a na nivou koda Zastareli programski jezici ne podržavaju organizaciju koda – mehanizme enkapsulacije, komponentizacije Postoji implicitna organizacija dobijena poznavanjem koda Rekonstrukcija arhitekture

  24. 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) Rekonstrukcija arhitekture (2)

  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

  26. Baza podataka je često „usko grlo“ u sistemu Rizično je modernizovati celu bazu odjednom Moguće je koristiti dve baze odjednom Pri čemu se koristi adapter pri pristupu bazi 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 Migracija baze podataka

  27. Extraction, transformation and loading (ETL) Standalone softver Uzimanje podataka iz zastarele baze Transformacije na osnovu definisanih pravila ili kombinovanjem sa drugim podacima Učitavanje novih podataka u modernizovanu bazu ili bazu koja je već postojala Pored migracije podataka, koriste se i u druge svrhe Migracija baze podataka (2)

  28. 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

  29. 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

  30. 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

  31. IZVORI INFORMACIJA: ISTRAŽIVAČKI • Centar za reinženjering Instituta za softversko inženjerstvo, SAD http://www.sei.cmu.edu/reengineering • Centar za održavanje softvera, Univ. of Durham, VB http://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, SAD http://www.tcse.org/revengr/ • Bibliografija o reinženjerstvu, Univerzitet u Štutgartu, Nemačka http://www.informatik.uni-stuttgart.de/ifi/ps/reengineering/reengineering.html

  32. IZVORI INFORMACIJA: KOMERCIJALNI • Blair and Associates http://www.baiengineering.com/reeng.html • CADRE http://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/

More Related