Procena troskova

Embed Size (px)

Citation preview

  • 7/25/2019 Procena troskova

    1/31

    Evolucija softveraEvolucija softveraProcena trokovaProcena trokova

    Predikcija izmenaPredikcija izmenaAnaliza uticajaAnaliza uticaja

  • 7/25/2019 Procena troskova

    2/31

    SadrajSadraj

    UvodUvod

    Procena trokovaProcena trokova

    Predikcija izmenaPredikcija izmena

    Analiza uticajaAnaliza uticaja

  • 7/25/2019 Procena troskova

    3/31

    Odravanje softveraOdravanje softvera

    Odravanje softvera se denie kao:Odravanje softvera se denie kao:Promene koje trebaPromene koje trebaizvriti na raunarskomizvriti na raunarskomproramu nakon to je on isporuenproramu nakon to je on isporuen

    korisniku!korisniku!"" Odravanje softvera obu#vataOdravanje softvera obu#vata::$ Odravanje ispravnosti %Odravanje ispravnosti %engl.engl. CorrectiveCorrective

    maintenancemaintenance&&$ Adaptivno odravanje %Adaptivno odravanje %engl.engl.Adaptive maintenanceAdaptive maintenance&&$ Odravanje savrenosti %Odravanje savrenosti %engl.engl. PerfectivePerfective

    maintenancemaintenance&&$ Pove'anja %Pove'anja %engl.engl.EnhancementsEnhancements&&

    (vaka nova promena utie na ukupne trokove(vaka nova promena utie na ukupne trokoveprojektaprojekta

  • 7/25/2019 Procena troskova

    4/31

    SadrajSadraj

    UvodUvod

    Procena trokovaProcena trokova

    Predikcija izmenaPredikcija izmena

    Analiza uticajaAnaliza uticaja

  • 7/25/2019 Procena troskova

    5/31

    Procena trokovaProcena trokova(1)(1)

    Procene trokova se bazirana na jednostavnojProcene trokova se bazirana na jednostavnojpretpostavci da to vie posla mora da se uradi) ve'i 'epretpostavci da to vie posla mora da se uradi) ve'i 'ebiti trokovibiti trokovi

    *rokovi odravanja predstavljaju znaajan deo ukupni#*rokovi odravanja predstavljaju znaajan deo ukupni#trokova tokom celokupno ivotno veka projektatrokova tokom celokupno ivotno veka projekta

    Obino su ve'i od trokova razvoja projekta:Obino su ve'i od trokova razvoja projekta:$ (a faktorom(a faktorom++ dodo,--,--zavisno od aplikacijezavisno od aplikacije

    Uve'avaju se tokom odUve'avaju se tokom odrravanja softvera:avanja softvera:$ Odravanje kvari strukturu softvera ine'i dalje odravanjeOdravanje kvari strukturu softvera ine'i dalje odravanje

    jo teimjo teim$ Ovo se potvr.uje /emanovim zakonima evolucije softvera:Ovo se potvr.uje /emanovim zakonima evolucije softvera:

    Uve'anje kompleksnostiUve'anje kompleksnosti 0astavak rasta0astavak rasta (manjenje kvaliteta(manjenje kvaliteta

  • 7/25/2019 Procena troskova

    6/31

    Procena trokovaProcena trokova (2)(2)

    (poljni faktori koji utiu na trokove odravanja:(poljni faktori koji utiu na trokove odravanja:$ (tabilnost tima(tabilnost tima

    *rokovi odravanja su smanjeni ako isti tim proramera*rokovi odravanja su smanjeni ako isti tim prorameraodrava softver due vremeodrava softver due vreme

    $ Uovorena odovornostUovorena odovornost Ako prorameri koji razvijaju softver nemaju uovorenuAko prorameri koji razvijaju softver nemaju uovorenu

    odovornost za odravanjodovornost za odravanjee) tada ne postoji podsticaj za) tada ne postoji podsticaj zadizajniranje koje se odnosi na budu'e promene! Ovo rezultiradizajniranje koje se odnosi na budu'e promene! Ovo rezultiraloe struktuiranim softveromloe struktuiranim softverom

    $ 1skustvo tima1skustvo tima

    *im za odravanje obino ine neiskusni prorameri koji*im za odravanje obino ine neiskusni prorameri kojiimaju oranien domen znanja) uopteno i u vezi sa samimimaju oranien domen znanja) uopteno i u vezi sa samimsoftverom koji se odravasoftverom koji se odrava

    $ (tarost i struktura prorama(tarost i struktura prorama 2ako prorami stare) nji#ova struktura deradira i postaje2ako prorami stare) nji#ova struktura deradira i postaje

    sve tea za razumevanje i modikacijusve tea za razumevanje i modikaciju

  • 7/25/2019 Procena troskova

    7/31

    Procena trokovaProcena trokova(3)(3)

    UU +--,+--,! !! !)) vie od 3- posto softverskevie od 3- posto softverskepopulacije bilo je zadueno upopulacije bilo je zadueno u

    modikovanju postoje'i# aplikacija) neomodikovanju postoje'i# aplikacija) neona pisanju novi#na pisanju novi# Procene trokova odravanja i uloenoProcene trokova odravanja i uloeno

    napora pomau da se adekvatno isplaniranapora pomau da se adekvatno isplanira

    i tim za odravanje softverai tim za odravanje softvera

  • 7/25/2019 Procena troskova

    8/31

    Trokovi razvoja i odravanjaTrokovi razvoja i odravanjasoftvera u velikimsoftvera u velikim

    oranizacijamaoranizacijama

  • 7/25/2019 Procena troskova

    9/31

    !istri"ucija uloeno na#ora!istri"ucija uloeno na#oraza odravanjza odravanjeesoftverasoftvera

  • 7/25/2019 Procena troskova

    10/31

    $odeli #rocene trokova$odeli #rocene trokova

    odravanjaodravanja

    (1)(1)

    4O4O5O4O4O5O model odravanja %model odravanja %procena uloenogprocena uloenognaporanapora&&

    $ %55&%55&%$%$6 %A4*&%55&6 %A4*&%55&!E&!E&

    %55&%55&%$%$:: odinji napor odravanjaodinji napor odravanja

    %55&%55&!E&!E&:: napor razvojanapor razvoja

    A4* :A4* : %%engl.engl. annual change tracannual change trac&&deo softvera koji jedeo softvera koji jepodloan promenama tokom jedne odinapodloan promenama tokom jedne odina

    2oecijent trok2oecijent trokovaovaodravanjaodravanja77razvojarazvoja

    $ %55&%55&$$6 %578&%55&6 %578&%55&!E&!E&%55&%55&$$:: napor odravanja tokom celo ivotno vekanapor odravanja tokom celo ivotno veka

    %55&%55&!E&!E&:: napor razvojanapor razvoja

    578 :578 : koecijent trokkoecijent trokovaovaodravanjodravanja7a7razvojrazvojaa

  • 7/25/2019 Procena troskova

    11/31

    $odeli #rocene trokova$odeli #rocene trokova

    odravanjaodravanja

    (2)(2)

    2oecijen produktivnosti odravanja2oecijen produktivnosti odravanja$ %8(1&%8(1&$O!'$O!'6 %A4*&%8(1&6 %A4*&%8(1&!E&!E&

    %8(1&%8(1&$O!'$O!'$ %55&%55&%$%$6 9999999999999999996 999999999999999999 %8(1755&%8(1755&$O!$O!

    %8(1&%8(1&$O!'$O!':: broj izvorni# instrukcija modikovani# tokombroj izvorni# instrukcija modikovani# tokomjedne odinejedne odine

    %8(1&%8(1&!E&!E&::veliina softvera u izvornim instrukcijamaveliina softvera u izvornim instrukcijama%55&%55&%$%$:: odinji napor odravanjaodinji napor odravanjaA4* : annual c#ane tracA4* : annual c#ane trac%8(1755&%8(1755&$O!$O!:: koecijen produktivnosti odravanjakoecijen produktivnosti odravanja %%brojbroj

    izvorni# instrukcija modikovani# po uloenom naporu jednoizvorni# instrukcija modikovani# po uloenom naporu jednoproramera za jedan mesec&proramera za jedan mesec&

  • 7/25/2019 Procena troskova

    12/31

    SadrajSadraj

    UvodUvod

    Procena trokovaProcena trokova

    Predikcija izmenaPredikcija izmena

    Analiza uticajaAnaliza uticaja

  • 7/25/2019 Procena troskova

    13/31

    Predikcija izmenaPredikcija izmena(1)(1)

    ;adaci predikcije izmena su da;adaci predikcije izmena su dapredvidi:predvidi:

    $ 2oje sistemske izmene 'e se sa2oje sistemske izmene 'e se sanajve'om verovatno'om ostvaritinajve'om verovatno'om ostvariti

    $ 2oji delovi sistema 'e najpre da2oji delovi sistema 'e najpre daizazovu najve'e poteko'e za tim kojiizazovu najve'e poteko'e za tim koji

    odrava softverodrava softver$ Ukupne trokove odravanja sistemaUkupne trokove odravanja sistema

    u datom vremenskom perioduu datom vremenskom periodu

  • 7/25/2019 Procena troskova

    14/31

    Predikcija izmenaPredikcija izmena (2)(2)

    Ove razliite predikcije su usko povezane sa:Ove razliite predikcije su usko povezane sa:

    ,!,! 8a li da bude ili ne pri#va'ena izmena u8a li da bude ili ne pri#va'ena izmena usistemu zavisi) do odre.ene mere) od stepenasistemu zavisi) do odre.ene mere) od stepena

    odravanja komponenti sistema koje suodravanja komponenti sistema koje supoo.ene tom izmenompoo.ene tom izmenom

    +!+! 1mplementacija izmena sistema esto1mplementacija izmena sistema estoderadira strukturu sistema i time smanjujederadira strukturu sistema i time smanjuje

    njeov stepene odravanjanjeov stepene odravanja

    a cene implementacija izmena zavise oda cene implementacija izmena zavise odstepena odravanja komponenti sistemastepena odravanja komponenti sistema

  • 7/25/2019 Procena troskova

    15/31

    Sistem i njeovaSistem i njeova

    okolinaokolina Predikcija izmena za#teva razumevanjePredikcija izmena za#teva razumevanje

    odnosa izme.u sistema i njeoveodnosa izme.u sistema i njeoveokolineokoline

    Usko povezani sistemi imaju potrebe zaUsko povezani sistemi imaju potrebe zapromenama svaki put kada se i okolinapromenama svaki put kada se i okolinamenjamenja

    =aktori koji utiu na ovaj odnos su:=aktori koji utiu na ovaj odnos su:

    $ >roj i kompleksnost interfejsa sistema>roj i kompleksnost interfejsa sistema$ >roj nerazdvojivo>roj nerazdvojivo #alapljivi##alapljivi#""sistemski# za#tevasistemski# za#teva

    $ >iznis procesi u kojima se sistem koristi>iznis procesi u kojima se sistem koristi

  • 7/25/2019 Procena troskova

    16/31

    TeTe**nike #redikcijenike #redikcije

    izmenaizmena Predikcija izmena za#teva te#nPredikcija izmena za#teva te#niike:ke:

    $ Analiza uticajaAnaliza uticaja 8a bi predvidela koje 'e sve komponente8a bi predvidela koje 'e sve komponente

    sistema biti poo.ene izmenomsistema biti poo.ene izmenom

    $ Procena uloeno naporaProcena uloeno napora 8a bi predvidela napor koji je potreban za8a bi predvidela napor koji je potreban za

    modikaciju ovi# komponentimodikaciju ovi# komponenti

    ;avisi od kvaliteta ovi# komponenti;avisi od kvaliteta ovi# komponenti$ Procena trokovaProcena trokova

    8a bi predvidela ukupne trokove8a bi predvidela ukupne trokoveimplementacije izmenaimplementacije izmena

  • 7/25/2019 Procena troskova

    17/31

    Predikcija ste#enaPredikcija ste#ena

    odravanjaodravanja 1straivanja pokazuju da se najve'i deo uloeno1straivanja pokazuju da se najve'i deo uloeno

    napora za odravanje odnosi na mali brojnapora za odravanje odnosi na mali brojkomponenti sistema) koje imaju veliki stepenkomponenti sistema) koje imaju veliki stepenkompleksnostikompleksnosti

    Predikcija stepena odravanja se moe bazirati naPredikcija stepena odravanja se moe bazirati naodre.ivanju kompeksnostiodre.ivanju kompeksnosti

    5etrike kompleksnosti:5etrike kompleksnosti:$ 2ompleksnost kontrolni# struktura2ompleksnost kontrolni# struktura

    $ 2ompleksnost struktura podataka2ompleksnost struktura podataka$ ?eliina procedura i modula?eliina procedura i modula >ilo bi korisno zameniti kompleksne komponete>ilo bi korisno zameniti kompleksne komponete

    jednostavnijimjednostavnijim

  • 7/25/2019 Procena troskova

    18/31

    Predikcija ste#enaPredikcija ste#enaodravanja #omo+uodravanja #omo+u#rocesne metrike#rocesne metrike 5erenje procesa moe se koristiti za procenu5erenje procesa moe se koristiti za procenu

    stepena odravanjastepena odravanja

    $ >roj za#teva vezani# za odravanje ispravnosti>roj za#teva vezani# za odravanje ispravnosti

    $ Proseno vreme neop#odno za analizu uticajaProseno vreme neop#odno za analizu uticaja

    $ Proseno vreme potrebno za implementacijuProseno vreme potrebno za implementacijuza#teva za promenomza#teva za promenom

    $ >roj nereeni# za#teva za promenom>roj nereeni# za#teva za promenom

    Ako bilo koji ili svi od ovi# parametara ponuAko bilo koji ili svi od ovi# parametara ponuda se uve'avaju) to moe znaiti da dolazi doda se uve'avaju) to moe znaiti da dolazi dosmanjenja stepena odravanjasmanjenja stepena odravanja

  • 7/25/2019 Procena troskova

    19/31

    Predikcija ste#ena odravanjaPredikcija ste#ena odravanjaodre,ivanjem nivoa ko*ezije iodre,ivanjem nivoa ko*ezije i

    s#arivanjas#arivanja 8obar dizajn treba da obezbedi lako8obar dizajn treba da obezbedi lako::

    $ @azumevanje) promene) ponovnu upotrebu)@azumevanje) promene) ponovnu upotrebu)testiranje) interaciju i kodiranjetestiranje) interaciju i kodiranje

    8a bi se sve ovo postilo neop#odno je8a bi se sve ovo postilo neop#odno jerazmotritirazmotriti::$ KohezijuKohezijujedinice) modula ili komponente kojajedinice) modula ili komponente koja

    se denie kaose denie kao stepen povezanostistepen povezanostiunutarunutar

    date jedinicedate jedinice))modulamodulaili komponenteili komponente$ SparivanjeSparivanjekoje se denie kaokoje se denie kao stepenstepenme.uzavisnostime.uzavisnosti izme.u softverski# jedinica)izme.u softverski# jedinica)modula ili komponentimodula ili komponenti

  • 7/25/2019 Procena troskova

    20/31

    0ivo0ivoko#ezijeko#ezije

    ObjanjenjeObjanjenje

    ,!,! =unkcionalni=unkcionalniedinica %modul& obavljaedinica %modul& obavljajednujednulavnulavnu

    aktivnost ili ostvaruje jedan cilj!aktivnost ili ostvaruje jedan cilj!

    +!+! (ekvencijalni(ekvencijalniedinica %modul& obavlja jednu lavnuedinica %modul& obavlja jednu lavnuaktivnost ili ostvaruje jedan cilj! 5oe daaktivnost ili ostvaruje jedan cilj! 5oe dasadri elemente koji nisu sasvim orijentisanisadri elemente koji nisu sasvim orijentisanika ostvarivanju jedno cilja!ka ostvarivanju jedno cilja!

    usmerene ka istom podatku ili podacima!usmerene ka istom podatku ili podacima!

    B!B! ProceduralniProceduralniedinica %modul& sadri akcije koje pripadajuedinica %modul& sadri akcije koje pripadajunekoj kontrolnoj sekvenci!nekoj kontrolnoj sekvenci!

    3!3! *emporalni*emporalniedinica %modul& sadri niz elemenata koji suedinica %modul& sadri niz elemenata koji suvremenski povezani!vremenski povezani!

    C!C!/oiki/oiki edinica %modul& obavlja niz slini# zadataka!edinica %modul& obavlja niz slini# zadataka!

    Ali su elementi jedinice poprilino nezavisni!Ali su elementi jedinice poprilino nezavisni!

    edinica %modul& obavljaedinica %modul& obavlja vievienepovezani#nepovezani#

    to viito

    bolji nivo

    -o*ezija-o*ezija

  • 7/25/2019 Procena troskova

    21/31

    0ivo0ivosparivanjasparivanja

    ObjanjenjeObjanjenje

    ,!,! (adrajni(adrajni8ve jedinice %modula& imaj pristup8ve jedinice %modula& imaj pristup

    internim %unutranjim& ili proceduralniminternim %unutranjim& ili proceduralnimpodacima drue jedinice!podacima drue jedinice!

    +!+! ;ajedniki;ajedniki8ve jedinice dele zajednike lobalne8ve jedinice dele zajednike lobalnepromenljive!promenljive!

    B!B! 5arkirani5arkiraniedna jedinica prosle.uje rupu %celeedna jedinica prosle.uje rupu %celestrukture ili zapise& podataka druojstrukture ili zapise& podataka druojjedinici!jedinici!

    3!3! 0a nivou0a nivoupodatakapodataka

    edna jedinica prosle.uje samo neop#odneedna jedinica prosle.uje samo neop#odnepodataka druoj jedinici!podataka druoj jedinici!

    C!C! 0ema sparivanja0ema sparivanja 1dealan sluaj) ali ne i real1dealan sluaj) ali ne i realaan u praksi!n u praksi!

    to niito

    bolji nivo

    S#arivanjeS#arivanje

  • 7/25/2019 Procena troskova

    22/31

    Kohe

    zija

    Sparivan

    je

    Visok nivo

    Nizak nivo

    Jaka

    Slaba Labavo

    Tesno

    $etrike ko*ezije i$etrike ko*ezije i

    s#arivanjas#arivanjaE.*idam"er and -emerer (./-) OOmetrike0

    Eei*ted $et*ods #er class ($.)

    E!e#t* of n*eritance Tree (!T)Eum"er of .*ildren (O.)E.ou#lin 4et5een O"ject .lasses(.4O)Ees#onse for a .lass (6.)E7ack of .o*esion in $et*ods

    (7.O$)

    E4ieman and Ott metrika0E8sin Proram and !ata Slices

  • 7/25/2019 Procena troskova

    23/31

    SadrajSadraj

    UvodUvod

    Procena trokovaProcena trokova

    Predikcija izmenaPredikcija izmena

    Analiza uticajaAnaliza uticaja

  • 7/25/2019 Procena troskova

    24/31

    %naliza uticaja (1)%naliza uticaja (1)

    Analiza uticajaAnaliza uticajajejepostupak koji predvi.a i odre.ujepostupak koji predvi.a i odre.ujedelove softversko sistema koji mou biti poo.enidelove softversko sistema koji mou biti poo.enipromenama to sistemapromenama to sistema

    (kup promena:(kup promena: 8elovi softversko sistema koji 'e biti8elovi softversko sistema koji 'e bitipromenjenipromenjeni

    (kup uticaja(kup uticaja::8elovi softversko sitema koji 'e biti8elovi softversko sitema koji 'e bitipoo.eni tim novim promenamapoo.eni tim novim promenama

    8va tipa analize:8va tipa analize:$ (tatika(tatika

    $ 8inamika8inamika

  • 7/25/2019 Procena troskova

    25/31

    %naliza uticaja (2)%naliza uticaja (2)

    Analiza uticaja je sistematski pristupAnaliza uticaja je sistematski pristups#vatanja uticaja izmena u softveru is#vatanja uticaja izmena u softveru ibitan je za:bitan je za:$ 1dentikaciju delova nad kojima je1dentikaciju delova nad kojima je

    neop#odno ponovo pokrenuti testoveneop#odno ponovo pokrenuti testove

    $ Poboljanje procenjeno vremena) rada iPoboljanje procenjeno vremena) rada inovca za odravanje softveranovca za odravanje softvera

    $ (manjenje broja potencijalni# reaka(manjenje broja potencijalni# reakanastali# usled neodkriveni# uticaja izmenanastali# usled neodkriveni# uticaja izmena

    $ Poboljanje ukupne ekasnosti odravanjaPoboljanje ukupne ekasnosti odravanjasoftverasoftvera

  • 7/25/2019 Procena troskova

    26/31

    Stati9ka analiza uticajaStati9ka analiza uticaja

    ;asniva se na analizi izvorno koda;asniva se na analizi izvorno koda >azirana na predpostavci o svim mou'im ponaanjima>azirana na predpostavci o svim mou'im ponaanjima

    softvera u vreme izvravanjasoftvera u vreme izvravanjaMoe se desiti da rezultati neeasno ul!u"e velii deoMoe se desiti da rezultati neeasno ul!u"e velii deo

    softversog sistema u sup utica!asoftversog sistema u sup utica!a

    Zahtevi za

    promenama

    Ispitivanje

    izvornog

    koda

    Zapisivanje

    moguih

    ponaanja

    sistema

    Skup

    uticaja

    Analiziranje

    zavisnostimeu

    programaskim

    entitetima

  • 7/25/2019 Procena troskova

    27/31

    !inami9ka analiza!inami9ka analiza

    uticajauticaja >azirana na podacima iz vremena izvravanja softvera i>azirana na podacima iz vremena izvravanja softvera i

    dinamikim interaktivnim ponaanjima softverskodinamikim interaktivnim ponaanjima softverskosistemasistema

    ;avisi od skupa izvravanja dato sistema;avisi od skupa izvravanja dato sistema

    #ei da proizvede precizni!e rezultate nego stati"a analiza#ei da proizvede precizni!e rezultate nego stati"a analiza

    Izvravanje

    softverskog

    sistema

    Skupljanje

    podataka iz

    vremena

    izvravanja

    sistema

    Zahtevi za

    promenamaSkup

    uticaja

    Analiziranje

    zavisnosti meu

    programaskimentitetima iz

    vremenu

    izvravanja

  • 7/25/2019 Procena troskova

    28/31

    Efekat talasaEfekat talasa

    Ffekat talasa %Ffekat talasa %engl.engl. $ipple e%ect$ipple e%ect&&$ Pojava de promena u jednom delu softverskoPojava de promena u jednom delu softversko

    sistema utie na jo bar jednu oblast istosistema utie na jo bar jednu oblast isto

    softversko sistema %direktno ili indirektno&softversko sistema %direktno ili indirektno&

    Promenakomponente

    Propagacija

    izmena

  • 7/25/2019 Procena troskova

    29/31

    Pro#aacija izmenePro#aacija izmene

    Propaacija izmenePropaacija izmene$ avlja se kada pravljenje izmene jedno delaavlja se kada pravljenje izmene jedno dela

    softversko sistema za#teva da ostali delovisoftversko sistema za#teva da ostali delovi

    sistema koji zavise od njea tako.e budusistema koji zavise od njea tako.e buduizmenjeniizmenjeni

    $ Ovi zavisni delovi sistema) posle izmene)Ovi zavisni delovi sistema) posle izmene)tako.e mou za#tevati promene u druimtako.e mou za#tevati promene u druim

    delovima softveradelovima softvera$ 0a taj nain) jedna izmena u jednom delu0a taj nain) jedna izmena u jednom delu

    sistema moe dovesti do propaacije promenasistema moe dovesti do propaacije promenakroz itav softverski sistemkroz itav softverski sistem

  • 7/25/2019 Procena troskova

    30/31

    %naliza uticaja i%naliza uticaja i

    #ro#aacija izmena#ro#aacija izmena Obi'i komponentu po komponentu sistemaObi'i komponentu po komponentu sistema

    Ako je pose'ena komponenta promenjena) mou'eAko je pose'ena komponenta promenjena) mou'e

    je da vie ne odovara kao takva u sistemu:je da vie ne odovara kao takva u sistemu:

    $ (ekundarne izmene moraju biti nainjene u susednim(ekundarne izmene moraju biti nainjene u susednimkomponentama) tj! komponentama sa kojima postojikomponentama) tj! komponentama sa kojima postojiinterakcijainterakcija

    $ (ekundarne izmene mou pokrenuti nove dodatne izmene:(ekundarne izmene mou pokrenuti nove dodatne izmene: efekat talasaefekat talasa""

    (oftver nije konzistentan tokom propaacije(oftver nije konzistentan tokom propaacije (krivena propaacija(krivena propaacija

    $ (ama klasa se ne menja) ali propaira promenu(ama klasa se ne menja) ali propaira promenu

  • 7/25/2019 Procena troskova

    31/31

    eferenceeference

    (eminar on (oftGare 4ost Fstimation) H(-+7-