Nasledjeni sistemi

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