t-6 evolucija i odrzavanje softvera
TRANSCRIPT
![Page 2: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/2.jpg)
Sadržaj• Osnovni pojmovi• Vrste održavanja softvera• Cena održavanja softvera• Tehnike održavanja softvera
2
![Page 3: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/3.jpg)
Proces razvoja sistema
Faza Aktivnost Izlaz
Započinjanje Utvrđivanje poslovnih potreba Biznis dokumenta
Analiza Intervjuisanje stejkholdera, istraživanje sistemskog okruženja
Organizovana dokumentacija
Specifikacija Analiza inženjerskih aspekata sistema, definisanje koncepata sistema
Logički model sistema
Implementacija Programiranje, testiranje jedinica, integrisanje, dokumentovanje
Proverljiv sistem
Testiranje & Integracija
Integrisanje svih komponenti, verifikacija, validacija, instalacija, obuka
Resultati testiranja, funkcionalan sistem
Održavanje Popravljanje bagova, modifikacije, adaptacija Verzije sistema
Uvod | Klase | Relacije | Generalizacija | Uputstva 3
![Page 4: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/4.jpg)
Održavanje softvera
• Održavanje softvera je– Proces modifikovanja softverskog sistema ili
komponente nakon isporuke radi otklanjanjagrešaka, poboljšanja performansi ili drugihatributa, ili prilagođavanja promenljivomokruženju.
– Softverski proizvod se podvrgava modifikacijikoda ili dokumentacije usled problema ili potrebeza unapređenjem. Cilj je modifikovanjepostojećeg softverskog proizvoda dok seistovremeno očuvava njegov integritet
![Page 5: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/5.jpg)
Održavanje softvera
• Održavanje programa nakon što je stavljen uupotrebu
• Održavanje obično ne obuhvata značajneizmene na arhitekturi sistema– Izmene se implementiraju modifikovanjem
postojećih komponenti i dodavanjem novihkomponenti sistemu
![Page 6: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/6.jpg)
Evolucija softvera
• Evolucija softvera je– Skup aktivnosti, tehničkih i upravnih, koje obezbeđuju da
softver nastavi da ispunjava organizacione i poslovneciljeve na isplativ način
– Sve programerske aktivnosti čiji je cilj generisanje noveverzije softvera na osnovu starije operacione verzije
– Primena aktivnosti i procesa održavanja softvera kojima segeneriše nova operativna verzija softvera sa novimfunkcionalnostima ili karakteristikama u odnosu naprethodnu operativnu verziju pri čemu su obuhvaćene iaktivnosti obezbeđivanja kvaliteta
![Page 7: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/7.jpg)
Vrste održavanja softvera
• Prema ISO/IEC 14674 standardu zasoftversko inženjerstvo:– Adaptivno održavanje
• “Modifikacija softverskog proizvoda izvršena nakonisporuke da bi se očuvala upotrebljivost softverskogproizvoda u promenjenom ili promenljivom okruženju."
– Korektivno održavanje• “Ispravljaju se uočene greške. Može se raditi o
greškama u kodiranju, u oblikovanju, odnosno uspecifikaciji."
![Page 8: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/8.jpg)
Vrste održavanja softvera
• Prema ISO/IEC 14674 standardu zasoftversko inženjerstvo:– Perfekcijsko održavanje
• “Modifikacija softverskog proizvoda nakon isporuke radiunapređenja performansi ili dodavanja novihkarakteristika.«
– Preventivno održavanje• “Modifikacija softverskog proizvoda nakon isporuke radi
utvrđivanja i korigovanja latentnih grešaka usoftverskom proizvodu pre nego što one nanesu štetu."
![Page 9: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/9.jpg)
Vrste održavanja softvera
• Prema ISO/IEC 14674 standardu zasoftversko inženjerstvo
Zašto?Kada?
Korekcija Unapređenje
Proaktivno Preventivno Perfektivno
Reaktivno Korektivno Adaptivno
![Page 10: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/10.jpg)
Značaj evolucije
• Najveći deo budžeta za razvoj softvera uvelikim kompanijama je u mnogo većoj merinamenjen adaptaciji (evoluciji) postojećegsoftvera a u manjoj razvoju novog softvera.
![Page 11: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/11.jpg)
Osnovni razlozi za evoluciju softvera• Promene korisničkih zahteva
– Proširenja ili modifikacije koje je zahtevao korisnik• Otklanjanja bagova
– Planirane aktivnosti otklanjanja– Nužno otklanjanje (uglavnom skupo zbog velikog pritiska)
• Promene formata podataka– Y2K, Euro, poreske rate, poštanski kodovi,
telefonski brojevi, ...– Novi standardi: UML, XML, COM,
DCOM, CORBA, ActiveX, WAP• Hardverske promene• Povećanje efikasnosti
Promene formata
podataka (18%)
Otklanjanje bagova (21%)
Hardverske promene (6%)
Povećanje efikasnosti (4%)
Promenjeni korisnički zahtevi
(42%)
![Page 12: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/12.jpg)
Starenje softvera
• Neophodno je da naučimo kako sprečimoefekte starenja– “Programi, kao i ljudi stare. Starenje ne možemo
sprečiti, ali možemo razumeti njegove uzroke,preuzeti korake da ograničimo njegove efekte,privremeno otklonimo neke od šteta koje jeizazvalo i pripremimo se za dan kada softver višeneće biti upotrebljiv.”
![Page 13: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/13.jpg)
Starenje softvera
• Razlozi za starenje softvera– Održavanje– Nefleksibilnost od početka projekta– Nedovoljna ili nekonzistentna dokumentacija– Pritisak krajnjih rokova– Dupliranje funkcionalnosti (dupliranje koda)– Nedostatak modularnosti– ...
• Moguće rešenje: reinženjerstvo
![Page 14: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/14.jpg)
Legacy (zastareli) sistemi - definicija
• Bilo kakvi informacioni sistem koji se opirepromenama
• Postojeći kompjuterski sistem ili aplikacioniprogram koji se nastavlja koristiti jer korisnik(najčešće organizacija) ne želi da ga zameniili redizajnira. Mnogi ljudi koriste ovaj pojamda ukažu na “zastarele” sisteme.
![Page 15: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/15.jpg)
Legacy (zastareli) sistemi - definicija
• Sa tehnološkog aspekta – čak i kompletnofunkcionalan i održiv sistem se može smatratizastarelim ukoliko koristi prevaziđenutehnologiju.
• Sa ekonomskog aspekta – sistem se možesmatrati zastarelim ukoliko ne može da pratitempo promena u poslovnom domenu.
![Page 16: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/16.jpg)
Problemi sa legacy sistemima
• Često se izvršavaju na zastarelom hardveru• Teško se održava, unapređuje i proširuje• Opšti nedostatak razumevanja sistema:
– Nema osoba koje mogu objasniti kakofunkcioniše
– Dokumentacija ili uputstva su se izgubili tokomgodina
• Teška je integracija sa novim sistemima
![Page 17: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/17.jpg)
Razlozi za korišćenje legacy sistema (uprkos problemima)
• Troškovi redizajna sistema su preterano visoki jer jesistem veliki, monolitski i/ili kompleksan.
• Sistem zahteva 100% dostupnost, pa ne može bitistavljen van upotrebe.
• Način na koji sistem funkcioniše nije dobro shvaćen.• Korisnik očekuje da sistem može biti jednostavno
zamenjen kada to bude neophodno.• Sistem radi zadovoljavajuće, i vlasnik ne vidi razlog
za njegovu promenu.
![Page 18: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/18.jpg)
Legacy sistemi – moguće rešenje
• Reinženjerstvo je sistematična transformacijapostojeće sistema u novu formu da bi se– Realizovala kvalitativna unapređenja u
operativnosti, mogućnostima sistema,funkcionalnosti i performansama,
– ili evoluiralo ka manjim troškovima, uštedivremena ili smanjenju rizika korisnika.
![Page 19: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/19.jpg)
Dinamika održavanja softvera
• Lehman-ovi zakoni:– Nužnost menjanja – softver koji se zaista koristi u
stvarnom svetu nužno se mora menjati jer uprotivnom ubrzo postaje neupotrebljiv.
– Povećanje složenosti – dok se softver menja, njegovastruktura teži tome da postane sve složenija. Da bi seočuvala jednostavnost strukture, potrebno je uložitidodatni trud i resurse.
– Ograničena brzina unapređivanja – količina “novosti”koju pojedino izdanje softvera može doneti otprilike jekonstantna i karakteristična za taj softver.
20
![Page 20: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/20.jpg)
Cena održavanja softvera
• Osnovni faktori koji utiču na cenu održavanja:1. Celovitost polazne specifikacije – ukoliko odmah
uključimo sve zahteve, kasnije će biti manjeperfekcijskog održavanja.
2. Kvalitet dizajna – dobar dizajn je jeftiniji zaodržavanje. Smatra se da su sa stanovištaodržavanja najbolji objektno-orjentisani sistemi,koji se sastoje od malih modula sa jakomunutrašnjom kohezijom i labavim vezama premaspolja.
21
![Page 21: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/21.jpg)
Cena održavanja softvera1. Način implementacije – Kod u “strožem”
programskom jeziku poput Jave lakše seodržava nego kod u jeziku poput C-a.Struktirirani kod (if, while) sa smislenoimenovanim varijablama razumljiviji je odkompaktnog koda s mnogo goto naredbi.
2. Stepen verificiranosti – dobro verificirani softverima manje grešaka pa će zahtevati manjekorekcijskog održavanja.
3. Stepen dokumentovanosti – uredna, dobrostruktuirana i celovita dokumentacija olakšavarazumevanje softvera, pa na taj načinpojeftinjuje održavanje.
22
![Page 22: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/22.jpg)
Cena održavanja softvera1. Način upravljanja konfiguracijom – ukoliko se
primenjuju metode, alati i organizacijska pravilaupravljanja konfiguracijom, tada je održavanjena dugi rok jeftinije.
2. Starost softvera – što je softver stariji, to jeskuplji za održavanja, budući da mu se građadegradirala, zavistan je od zastarelih razvojnihalata, a dokumentacija mu je postala neažurna.
3. Svojstva aplikacijskog domena – ako je reš ostabilnom domenu gde se poslovna pravila retkomenjaju, tada će se retko pojavljivati potreba zaperfekcijskim održavanjem u svrhu usklađivanjas novim pravilima.
23
![Page 23: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/23.jpg)
Cena održavanja softvera
1. Stabilnost razvojnog tima – održavanje jejeftinije ako se njime bave originalni razvijačisoftvera, jer oni ne moraju trošiti vreme naupoznavanje sa softverom.
2. Stabilnost platforme – ako smo softverimplementirali na platformi koja će još dugo bitisavremena, tada neće trebati adaptacijskoodržavanje.
24
![Page 24: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/24.jpg)
Tehnike održavanja softvera
• Redokumentovanje• Restruktuiranje• Reverzni inženjering• Reinženjering
![Page 25: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/25.jpg)
Tehnike održavanja softvera
26
![Page 26: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/26.jpg)
Redokumentovanje
• Obuhvata statičku analizu izvornog koda dabi se proizvela dokumentacija sistema.
• Možemo da ispitamo upotrebu promenljivih,pozive komponenti, putanje upravljanja,veličinu komponenti, pozivajuće parametre,putanje testiranja...
• Informacije koje proizvede statička analizamogu da budu grafičke ili tekstualne.
27
![Page 27: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/27.jpg)
Reverzni inženjering
• Reverzni (obrnuti) inženjering je procesotkrivanja tehnoloških principa uređaja,objekata ili sistema kroz analizu njegovestrukture, funkcije I operacije.
• Često uključuje podršku (npr. mehaničkihuređaja, eletričnih komponenti ili programa)odvojeno i analiziranje njegovog rada udetalje kako bi se koristili u održavanju ilikako bi se pokušao napraviti novi uređaj iliprogram koji obavlja isti zadatak, bezkopiranja bilo čega od originala.
28
![Page 28: T-6 Evolucija i Odrzavanje Softvera](https://reader035.vdocuments.pub/reader035/viewer/2022081719/55721080497959fc0b8d449d/html5/thumbnails/28.jpg)
Reinženjering
• Softverski reinženjering je aktivnost koja:– Poboljšava razumevanje softvera, ili– Priprema i poboljšava sam softver, obišno za
povećanu sposobnost održavanja, ponovnokorišćenje, ili evoluciju.
29