Upload
atomic123
View
255
Download
0
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-