Pojam i vrste softverskog održavanja

Jedinica: 1 od 10 U ovoj lekciji upoznaćemo se sa osnovnim pojmovima održavanja softvera kroz:
   

Različito tumačenje održavanja softvera u odnosu na druge oblasti Vrste održavanja softvera Aktivnosti održavanja Troškove održavanja i važnosti njihovog predviđavanja

Uvod
Pod pojmom održavanje, kada se govori o softveru, podrazumeva se drugačije značenje u odnosu na bilo koju drugu inženjersku oblast. Naime, mnoge inženjerske oblasti podrazumevaju održavanje kao proces pomoću kojeg se nešto održava u ispravnom radu, putem tekućih popravki. Ključni koncept je pogoršavanje inženjerskih artifakata tokom korišćenja i prolaskom vremena, pa je stoga cilj održavanja, očuvanje funkcionalnosti objekta u skladu sa definisanom i registrovanom funkcionalnošću u vremenu puštanja u rad. Naravno, ovakav opis održavanja se ne može primeniti na softver zbog toga što se softver ne može "pokvariti" tokom vremena. Ipak, potreba za modifikacijom dela softvera nakon isporuke istog uvek postoji, a takva potreba postoji još od pojave prvih programa. Stav koji je iznet u okviru Lemanovog zakona evolucije [1,2] govori da su uspešni softverski sistemi "osuđeni" na promene tokom vremena. Preovlađujući udeo promena se odnosi na zadovoljavanje promenjivih korisničkih potreba. Ovo je obuhvaćeno prvim Lemanovim zakonom [1,2]: "Program koji se koristi u realnom okruženju se mora promeniti ili postaje manje koristan u tom okruženju". Značajne promene takođe proizilaze iz potrebe za prilagođavanjem softvera da deluje sa spoljnim entitetima, uključujući ljude, organizaciju i veštačke sisteme. Zapravo, softver je "beskrajno savitljiv", i zato se često posmatra kao deo sistema koji je najlakše promeniti [3].

Održavanje softvera
Najprostije rečeno, održavanje obuhvata modifikaciju i dopune programa nakon što je pušten u upotrebu. Održavanje ne bi trebalo da uključuje velike promene na arhitekturi sistema. Promene se implementiraju modifikovanjem postojećih komponenti i dodavanjem novih komponenti u sistem.

Vrste održavanja
Postoji više vrsta aktivnosti koje nazivamo održavanjem, ali su tri osnovne:

  

Održavanje u smislu ispravke softverskih grešaka Održavanje u smislu prilagođavanja softvera različitim operativnim okruženjima Održavanje u smislu dodavanja i modifikacija sistemskih funkcionalnosti.

Slika 1. Vrste održavanja Sa slike se vidi da najveći deo održavanja, gotovo dve trećine otpada na dodavanje funkcionalnosti i modifikacije, dok manji uzimaju ispravke i prilagođavanja.

Troškovi održavanja
Troškovi održavanja su veći od troškova razvoja. Povećavaju se trajanjem softverskog održavanja, odnosno održavanje utiče na softversku strukturu otežavajući dalje održavanje. Timska saradnja i podrška igraju značajnu ulogu u ovom procesu, a sami troškovi održavanja su manji, ako je angažovano isto osoblje kao i na razvoju. Međutim, najčešće su situacije kada je angažovan poseban tim na održavanju, koji uglavnom nema iskustvo, veštinu i znanje razvojnog tima.

Predviđanje troškova održavanja
Shodno velikom udelu u troškovima poželjno je na vreme uraditi planiranje i predvideti:
     

koji delovi sistema će najverovatnije biti podložni zahtevima za promene koliki broj zahteva za promenama se može očekivati koji delovi sistema će biti najskuplji za održavanje kako će izgledati troškovi održavanja prema vremenu korišćenja sistema koliki će biti troškovi održavanja sistema u narednom vremenskom periodu (npr. na godišnjem nivou) analizom obuhvatiti i sredstva i vreme utrošeno za održavanje (izlazak na teren, vreme zadržavanja i sl.)

migracija na druge platforme. Aktivnosti održavanja Aktivnosti u održavanju softvera. uklanjanje skrivenih aplikacija. Ostale aktivnosti tokom procesa održavanja su:    kontakti sa klijentima pisana korespondencija izlasci na teren i dr. . značajna stavka je i provedeno vreme i broj izlazaka na teren radi održavanja. Takođe.Detaljnije predviđanje troškova Detaljnije analize pokazuju da se najviše vremena i sredstava troši na održavanju i prepravkama relativno malog broja sistemskih komponenti. kao i procenu utrošenog vremena na jednoj prosečnoj promeni na osnovu zahteva. a koji služe i kao pokazatelji kvaliteta softverskog proizvoda su:        prerada softverskog koda. konverzija u nove arhitekture. povlačenje softvera iz upotrebe. optimizacija performansi softvera. troškovi zavise od kompleksnosti tih komponenti. U tim slučajevima. uklanjanje neaktivnog koda. Kompleksnost komponente zavisi od:    kompleksnosti kontrolnih struktura kompleksnosti struktura podataka veličine procedura i modula Poželjno je uraditi procenu broja zahteva za promenama pri održavanju.

5th ed. M. S. Lehman.. 1987. Održavanje obuhvata:    ispravljanje grešaka prilagođavanje novom operativnom okruženju dodavanje novih funkcionalnosti Ako održavanje sistema ne može da se sprovede u skladu sa gore navedenim zahtevima. Lehman. oko 5%. M. troši se na kodiranje. . "Lifecycles and the Laws of Software Evolution". Proceedings of the IEEE. 20(4):10-19.. Brooks. 4. 1980. 3. Moguće je angažovanje razvojnog ili posebno formiranog tima na održavanju. Object-Oriented and Classical Software Engineering.. 5th ed. M. Relativno mali deo troškova softverskog razvoja. Najveći deo troškova otpada na održavanje. Journal of Information Processing Management. Special Issue on Software Engineering. "No Silver Bullet". IEEE Computer. Object-Oriented and Classical Software Engineering.Slika 2. 2. "Program Evolution".. 1984. F. Schach. Reference: 1. Zaključak Održavanje isporučenog softverskog sistema obično zahteva više vremena i sredstava od same realizacije i implementacije sistema. M. 2002]). 2002. Troškovi razvoja softvera Na slici su prikazani troškovi životnog ciklusa razvoja softvera. McGraw-Hill. McGraw-Hill. (Izvor: Schach 2002 [S. P. 19(1):19-36. 19:1060-1076.. postavlja se pitanje opravdanosti i dalje upotrebljivosti čitavog sistema. Schach. Jr.

Međutim. Istorijski gledano softversko održavanje nije uvek dobijalo toliku pažnju kao ostale faze izgradnje softvera. sa druge strane savremeni način poslovanja i brze promene tehnologije uslovljavaju sve kraći životni vek softverskog rešenja i prelazak na nove proizvode i okruženja. .Oblasti softverskog održavanja Jedinica: 2 od 10 U ovoj lekciji upoznaćemo se sa pojmovima održavanja softvera prema standardu IEEE-a:    Oblasti sofverskog održavanja Osnovne definicije i terminologija Važnost razumevanja potrebe za održavanjem i predviđanje troškova Održavanje kao deo procesa razvoja Softversko održavanje je integralni deo procesa životnog ciklusa razvoja softvera. Faza posle isporuke uključuje softverske modifikacije. trening i korisničku podršku. U većini organizacija softverski razvoj imao je značajniju ulogu od samog održavanja. Ovo se danas promenilo kako organizacije teže da izvuku najviše iz investicije procesa razvoja softvera održavajući softver u upotrebi što je više moguće. Generalno posmatrano. aktivnosti održavanja se izvode tokom dve faze:   Faza pre isporuke Faza posle isporuke Faza pre isporuke uključuje planiranje za održavanje i operacije posle isporuke (lakoća održavanja i logistička podrška tranzicionim aktivnostima). Na slici je prikazana šema softverskog održavanja prema "The Guide to the Software Engineering Body of Knowledge (SWEBOK)".

Održavanje je proces modifikacije koda i prateće dokumentacije softverskog proizvoda usled postojanja problema ili potreba za unapređenjem. IEEE 1219". Definicije i terminologija Softversko održavanje je definisano u "IEEE Standard for Software Maintenance. . Obrađuju se osnovni principi i definicije i prepoznavanje važnosti potrebe za održavanjem. ISO/IEC 14764 internacionalni standard za softversko održavanje. kao modifikacije softverskog proizvoda posle isporuke. kao što je npr. Cilj je modifikacija softverskog proizvoda uz očuvanje njegovog integriteta. radi ispravljanja grešaka. planiranje.Oblast softverskog održavanja tesno je vezana sa svim ostalim oblastima softverskog inženjerstva. radi poboljšanja performansi ili drugih atributa ili radi prilagođavanja proizvoda promenama okruženja. Osnove softverskog održavanja Kao i kod svih drugih oblasti softverskg inženjerstva i ovde prva sekcija standarda uvodi osnovne koncepte i terminologiju koje formiraju osnovu za razumevanje uloge i opsega softverskog održavanja. definiše softversko održavanje na sličan način. ističući fazu pre isporuke i njene aktivnosti.

softver i telekomunikacioni uređaji mogu koristiti Povlačenje softvera Karakteristike održavanja Aktivnosti održavanja obuhvataju četiri ključne karakteristike: . što stvara dodatne izazove za održavaoca. sprovodi se testiranje i izdaje se nova verzija softverskog proizvoda. modifikuje se kod i ostali softverski artifakti. Održavanje mora prihvatiti proizvode razvoja. Održavanje je primenjivo na softver razvijen korišćenjem bilo kog modela životnog ciklusa razvoja. određuje se uticaj predloženih promena. Tokom ovog procesa korisnicima mora da se obezbedi obuka i dnevna podrška. Održavanje mora da se sprovodi radi:       Ispravke grešaka Unapređenja dizajna Implementacije unapređenja Interface-a sa ostalim sistemima Prilagođavanje programa tako da se različiti hardver. Developer) Osobe koje rade održavanje mogu dosta da nauče od programera o softveru. Potreba za održavanjem Održavanje je neophodno radi osiguranja da softver kontinualno zadovoljava korisničke zahteve.Priroda održavanja Zahtevi za promenama se snimaju i prate. U nekim slučajevima programeri nisu na raspolaganju do kraja ili su prebačeni na druge poslove. Termin se nekada koristi i za pojedince koji izvode ove aktivnosti. dati im podršku neposredno i razvijati ih i evoluirati tokom životnog ciklusa. Maintainer se definiše standardom IEEE/EIA 12207 kao organizacija koja izvodi aktivnosti održavanja. Saradnja sa developerima i rano uključivanje održavaoca pomaže u smanjenju napora u održavanju. IEEE/EIA 12207 identifikuje sledeće primarne aktivnosti softverskog održavanja:       Implementacija procesa Analiza problema i modifikacija Implementacija modifikacija Pregled održavanja Migracije Povlačenje Održavalac nasuprot programera (Maintainer vs. kod i dokumentaciju.

Uobičajena pretpostavka softverskog održavanja je ta da služi ispravkama grešaka. Međutim. konstrukcije. Prevencija softverskih performansi od degradiranja do neprihvatljivih nivoa Većinski udeo održavanja Održavanje troši najveći deo finansijskih sredstava životnog ciklusa softvera.postojeći veliki softverski sistemi nikada nisu završeni i nastavljaju da evoluiraju. Reference: . Tokom perioda od dvadeset godina. Održavanja kontrole nad modifikacijama softvera 3. Pfleeger [1] predstavlja neke od tehničkih i netehničkih faktora koji utiču na troškove softverskog održavanja:      Tip aplikacije Noviteti u softveru Raspoloživost osoblja za održavanje Hardverske karakteristike Kvalitet dizajna. Dorađivanje postojećih funkcija 4. dokumentacije i testiranja Evolucija softvera Prvi put je obrađivano softversko održavanje i evolucija sistema 1969. Održavanja kontrole nad svakodnevnim funkcijama softvera 2.1. Tokom svoje evolucije. Takođe. održavanje dobija na svojoj kompleksnosti osim ako se ne preduzmu neke akcije na smanjenu kompleksnosti. studije i istraživanja pokazuju da najveći deo (preko 80%) napora se koristi na akcije koje nisu korektivnog karaktera. godine. osim jednog dodatnog ograničenja . Ključna otkrića uključuju činjenice da je održavanje evolucioni razvoj i da su odluke potpomognute razumevanjem šta se dešava sa sistemom tokom vremena. došlo se do formulacije osam "Zakona o evoluciji". Troškovi softverskog održavanja Razumevanje kategorija softverskog održavanja pomaže u razumevanju strukture troškova softverskog održavanja. Druga tumačenja su da je održavanje nastavak razvoja. razumevanje faktora koji utiču na lakoću održavanja sistema može pomoći u sagledavanju troškova.

Prentice Hall. S. L.. Software Engineering: Theory and Practice. second ed. 2001. 2. Pfleeger.1. IEEE . The Guide to the Software Engineering Body of Knowledge (SWEBOK).

ISO/IEC 14764 i uključuju 4 kategorije:     Korektivno održavanje Adaptivno održavanje Perfektivno održavanje Preventivno održavanje Perfektivno održavanje predstavlja modifikacije softverskog proizvoda nakon isporuke radi unapređenja performansi. Preventivno održavanje je najnovija kategorija i najčešće se izvodi na softverskim proizvodima gde je ključno pitanje sigurnosti.Kategorije održavanja softvera Jedinica: 3 od 10 U ovoj lekciji upoznaćemo se sa:    Kategorijama održavanja Tehničkim i menadžerskim aspektima održavanja Organizacionim aspektima održavanja Kategorije održavanja Generalno posmatrano. Takođe. . Preventivno održavanje predstavlja modifikacije softverskog proizvoda nakon isporuke radi detektovanja ili korekcije skrivenih grešaka u softverskom proizvodu pre nego što se aktiviraju. ISO/IEC 14764 klasifikuje adaptivno i perfektivno održavanje kao unapređenja. kao što je prikazano u sledećoj tabeli. grupiše zajedno i korektivno i preventivno održavanje u kategoriju korekcije. postoje tri kategorije održavanja:    Korektivno održavanje Adaptivno održavanje Perfektivno održavanje Ove definicije su kasnije ažurirane u standardu za softversko održavanje.

Tabela 1. dok se kodiraju sledeće verzije i šalju dopune i zakrpe za tekuće verzije. Jedan od primera je pokušaj pronalaženja greške u softveru sa 500 hiljada linija koje softver inženjer nije razvijao. U nastavku su date neke tehničke i menadžment teme vezane sa softversko održavanje. Važno je razumeti da softversko održavanje pruža jedinstvene tehničke i menadžerske izazove softverskim inženjerima. takođe predstavlja izazov. Klasifikacija održavanja Ključni aspekti softverskog održavanja Veći broj ključnih tema mora se razmotriti radi osiguranja efikasnog održavanja softvera. Planiranje za buduće verzije. Impact analysis) o Lakoća održavanja Menadžment aspekti su: o Usaglašavanje sa organizacionim ciljevima o Osoblje o Procesi o Organizacioni aspekti održavanja o Outsourcing Procenu troškova vrši se na osnovu: o Parametarskih modela o Iskustva Merenja su: o Specifična merenja . koje su grupisane u sledeće kategorije:     Tehnički aspekti Menadžment aspekti Procena troškova Merenja Tehnički aspekti su: o Ograničeno Razumevanje o Testiranje o Analiza uticaja (eng. Takmičenje za neophodne resurse u poređenju sa sredstvima za razvoj je stalna borba.

tehnika i alata pomaže unapređenju lakoće održavanja sistema. Prema tome. ako promene nisu dokumentovane i kada programeri nisu na raspolaganju za objašnjenje. Istraživanja pokazuju da je 40% do 60% napora održavanja posvećeno razumevanju softvera koji se modifikuje.12-90] definiše maintainability kao lakoću sa kojom se softver može održavati. određuje se i rizik pravljenja tih promena. Analiza uticaja Analiza uticaja opisuje kako sprovesti kompletnu analizu uticaja promena u postojećem softveru. Može se reći da prisustvo sistemskih i razvijenih procesa. Razumevanje je teže u text-oriented reprezentacijama. što je najčešće i slučaj u praksi. na primer. Kao dodatak. a često se i dešava. lakoća održavanja softvera će se unaprediti. adaptirati i ispravljati radi zadovoljenja specificiranih zahteva. Oni koriste to znanje radi izvođenja analize uticaja. Održavaoci moraju posedovati suštinsko znanje strukture i sadržaja softvera. Ako se to uradi uspešno. unapređivati.Ograničeno razumevanje Ograničeno razumevanje odnosi se na to kako brzo softver inženjer može razumeti gde da napravi promene ili korekcije u softveru koji nije razvijao. Developeri su zaokupljeni sa mnogo drugih stvari i često ne obraćaju pažnju na zahteve održavaoca. rezultirati u nedostatku sistemske dokumentacije. pregledane. Podkarakteristike lakoće održavanja mogu biti specificirane. Ovo može. Neki autori navode da su ciljevi analize uticaja:     Određivanje opsega promena u cilju planiranja i implementacije rada Određivanje tačnih procena resursa potrebnih radi izvođenja rada Cost/benefit analiza zahtevanih promena Komunikacija sa ostalima učesnicima o kompleksnosti datih promena Lakoća održavanja IEEE [IEEE610. ISO/IEC definiše lakoću održavanja kao jednu od karakteristika kvaliteta. u izvornom kodu. . mora prvo biti analiziran i preveden u softverske termine. Ovo je često teško postići zato što ove podkarakteristike nisu važne tokom procesa razvoja softvera. koji je vodeći razlog za probleme u razumevanju programa i analizi uticaja. gde je često teško praćenje i evolucija softvera tokom brojnih verzija. kontrolisane tokom aktivnosti softverskog razvoja u cilju smanjena troškova održavanja. koja identifikuje sve sistemske i softverske proizvode pogođene zahtevima za softverskim promenama i razvija procenu resursa potrebnih za ispunjenje tih promena. Zahtev za promenama. tema sveobuhvatnog razumevanja softvera je od velikog interesa softver inženjerima. nekada se naziva i modification request (MR).

Problem je međutim. Outsourcing Outsourcing održavanja je danas veoma masovna pojava. Pošto postoji mnogo za i protiv za svaku od ovih opcija. McCracken [1] navodi da 50% outsource-era obezbeđuju servise bez . U oba slučaja. shodno organizacionoj strukturi. povraćaj investicija je mnogo manje jasan. Osnovni značaj je isporuka na vreme i unutar budžeta za ispunjenje korisničkih potreba. Mnogi autori daju čitavu listu „staffing-related" problema zasnovanih na istraživanju. pošto kompanije nisu spremne da izgube kontrolu nad softverom koji se koristi u osnovnom biznisu. Najčešće. uključujući softversko održavanje. ili ići na odvojeni tim (održavaoci). Jedan od najvećih izazova za outsourcing je određivanje zahtevanog opsega održavanih servisa i detalji ugovora. Nasuprot tome. Inicijalni softverski razvoj je obično project-based. na primer. Osoblje Ova sekcija se odnosi na to kako zainteresovati i zadržati osoblje za softversko održavanje. odluka treba da se donese od slučaja do slučaja. Suočavanje i rešavanje problema koji su prouzrokovani radom drugih nije posebno primamljivo. Važna je delegacija ili dodeljivanje odgovornosti održavanja jednoj grupi ili osobi. Kao dodatak.Usaglašavanje sa organizacionim ciljevima Organizacioni ciljevi opisuju kako demonstrirati povraćaj investicija od aktivnosti softverskog održavanja. čime se sa moralnog stanovišta otvaraju mnoga pitanja. U odlučivanju gde se locira funkcija softverskog održavanja. Održavanje se ne posmatra kao privlačan posao. Organizacioni aspekti održavanja Organizacioni aspekt opisuje kako identifikovati koja organizacija i/ili funkcija će biti odgovorna za održavanje softvera. Osoblje za održavanje se najčešće vidi kao "second-class citizens". što je teško pronaći kontrolne mere u tom slučaju. softversko održavanje često ima za cilj produžavanje životnog ciklusa softvera koliko god je moguće. Tim koji razvija softver nije obavezno i dodeljen na održavanje softvera kada postane operativan. outsourcing opcija se bira za manje "mission-critical" softvere. Mnoge firme će outsource-ovati samo ako pronađu način zadržavanja strateške kontrole. Velike korporacije outsource-uju kompletan portfolio softverskog sistema. sa definisanim vremenskim opsegom i budžetom. može biti vođen potrebama korisnika radi ispunjenja korisničkih zahteva za ažuriranja i unapređenja softvera. organizacija može. pa je pogled na menadžment nivou često trošenje značajnih sredstava sa nejasnim merljivim (kvantitativnim) benefitom za organizaciju. ostati sa originalnim developerima.

Još jedan izazov je i tranzicija softvera outsource-eru. Reference: 1. . McCracken. Taking Control of IT Performance.jasnog nivoa servisiranja prema ugovoru. 2002. B. presented at InfoServer LLC. Outsourcing kompanije tipično potroše nekoliko meseci procenjujući softver pre bilo kakvog ulaska u ugovorni sporazum.

Aktivnosti održavanja softvera Jedinica: 4 od 10 U ovoj lekciji obrađivaćemo:     Lakoću održavanja Karakteristike i specifična merenja održavanja Aktivnosti procesa održavanja Tehnike održavanja Procena troškova održavanja Softver inženjeri moraju razumeti različite kategorije softverskog održavanja u cilju adresiranja pitanja procene troškova softverskog održavanja.Merenja neočekivanih ponašanja softvera. Najčešće se koristi kombinacija ovih pristupa. Standardi [IEEE1219-98. diskutuju uspostavljanje programa za merenje širokih primena u kompanijama. ISO9126-01] predlažu merenja koja su više specifična za softversko održavanje. Praktična softverska i sistemska merenja (Practical Software and Systems Measurement (PSM)) opisuju tematski vođen proces merenja koji se koristi od strane mnogih organizacija. ukljućujući i ona koja se pojave prilikom testiranja Mogućnost testiranja . Ovo uključuje brojna merenja za svake od 4 podkarakteristike lakoće održavanja:     Mogućnost analize .Merenja napora održavanja pridruženih implementaciji specificiranih modifikacija Stabilnost . procena troškova je važan aspekt softverskog održavanja. Za svrhe planiranja. ISO/IEC14764 navodi da su dva najpopularnija pristupa u procenjivanju resursa za softversko održavanje .Merenja napora održavanja ili resursa potrošenih u pokušaju dijagosticiranja uzroka padova ili identifikovanju delova koji treba da se modifikuju Promenjivost .Merenja napora održavanja i korisničkih napora u pokušaju testiranja modifikovanog softvera . Specifična merenja Održavalac mora da odredi koja merenja su odgovarajuća za datu organizaciju.korišćenje parametarskih modela i iskustava. Merenja softverskog održavanja Grady and Caswell [1] u svojim radovima.

Održavaoci takođe rade analize. ISO/IEC 14764-00 Software Maintenance Process izvor: Guide to the SWEBOK Aktivnosti održavanja Mnoge aktivnosti održavanja su slične onima iz softverskog razvoja. Standard ISO/IEC14764 preporučuje da. testiranje i dokumentaciju. Tema aktivnosti održavanja razlikuje održavanje od razvoja i prikazuje njegovu povezanost sa ostalim aktivnostima softverskog inženjerstva.Proces održavanja Podoblast „proces održavanja" prema SWEBOK-u pruža reference i standarde korišćene za implementaciju procesa softverskog održavanja. kodiranje. dizajn. kada održavalac referiše neki sličan razvojni proces. mora da ga prilagodi radi ispunjena . Slika 1. Moraju pratiti zahteve na isti način kao što se radi u razvoju i ažuriranje dokumentacije.

Pokreće se od strane krajnjeg korisnik.Zahtevi za promenama rade preko određenih veličina/napora/kompleksnosti i mogu biti odbijeni od strane održavaoca i preusmereni na programera Zahtev za promenama i izveštavanje o greškama . dodelu prioriteta i koštanje zahteva za promenama Analiza uticaja Pomoć i savet korisnicima što se tiče zahteva za informacijama . Medjutim.svojih specifičnih potreba. Aktivnosti procesa održavanja izvor: Guide to the SWEBOK Jedinstvene aktivnosti Postoji nekoliko procesa. aktivnosti i praksi koje su jedinstvene samo za softversko održavanje. Slika 2. kao na primer:      Tranzicija .Kontrolisana i koordinirana sekvenca aktivnosti tokom kojih je softver transferisan progresivno od programera ka održavaocima Prihvatanje/Odbijanje zahteva za promenama . za softversko održavanje. što pokreće za sobom i procenjivanje iznosa. neke aktivnosti uključuju procese jedinstvene samo za softversko održavanje.

Obuka održavaoca. Pravljenje procena resursa je ključni element planiranja održavanja.Aktivnosti podrške Održavaoci mogu da izvode i aktivnosti podrške kao što su:        Planiranje softverskog održavanja Software Configuration Management (SCM) Verifikacija i validacija. Korisnički trening. Planiranje održavanja treba da počne sa odlukom da se razvija novi sistem i treba da razmotri ciljeve kvaliteta. Koncept dokument za održavanje treba da obuhvati:     Opseg softverskog održavanja Adaptaciju procesa softverskog održavanja Identifikaciju organizacije softverskog održavanja Procenu troškova softverskog održavanja Planiranje izdavanja verzije Planiranje izdavanja verzije zahteva da održavalac:     Prikupi datume raspoloživosti individualnih zahteva Saglasnost sa korisnicima na sadržaju sledećih verzija Identifikuje potencijalne konflikte i razvija alternative Proceni rizik datog izdanja i razvije „plan povratka izdanja" u slučaju porasta problema . Pregledi i provere. Potrebno je razviti koncept dokument. Aktivnosti planiranja održavanja Važna aktivnost za softversko održavanje je planiranje i održavaoci moraju razmotriti i teme vezane za brojne aktivnosti planiranja:     Poslovno planiranje (na organizacionom nivou) Planiranje održavanja (na tranzicionom nivou) Planiranje puštanja verzija (na softverskom nivou) Planiranje individualnih zahteva za promenama (na nivou zahteva) Ako razvoj softvera tipično traje nekoliko meseci ili nekoliko godina. faza održavanja obično traje mnogo godina. Obezbeđenje kvaliteta softvera. Ovi resursi treba da budu uključeni u planiranje budžeta razvoja projekta. za kojim se radi i plan održavanja.

20 bugs are found. but introduce 456 new ones. Reverse engineering je pasivan i ne menja softver. 5. Product is tested. Refaktorisanje je transformacija programa koja reorganizuje program bez promena njegovog ponašanja. Jasna i koncizna dokumentacija doprinosi razumevanju programa. 13. Users find 137 new bugs. 6. 7. See 6. Programmer produces code he believes is bug-free. Testing department finds that five of the fixes didn't work and discovers 15 new bugs. Newly-assembled programming team fixes almost all of the 137 bugs. 12.Reverse engineering je proces analiziranja softvera radi identifikovanja softverskih komponenata i njihovih interrelacija i kreiranja reprezentacije softvera u drugoj formi. 3. 10. . 11. Original programmer. See 4. 2.eos-india. Reverse engineering proizvodi grafove poziva i kontrole toka iz izvornog koda.    Razumevanje programa . is nowhere to be found. Za kraj. 8. See 8. 15. Reengineering je najradikalniji i najskuplji oblik preinačenja.Reengineering se definiše kao ispitivanje i preinačenje softvera radi uspostavljanja u novoj formi i uključuje naknadnu implementaciju u novoj formi. 9.Programeri troše značajno vreme u čitanju i razumevanju programa u cilju implementacije promena. 4. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren't really bugs. Reverse engineering . Reengineering . i forma je reverse engineering-a koji nastoji da poboljša strukturu programa. Due to marketing pressure and an extremely pre-mature product announcement based on overly-optimistic programming schedule. having cashed his royalty check. the product is released. Original programmer sends underpaid testing department a postcard from Fiji. Jedan tip reverse engineering-a je redokumentacija.net) 1. Informiše sve zainteresovane učesnike Tehnike održavanja Ova podoblast predstavlja neke od generalno prihvaćenih tehnika korišćenih u softverskom održavanju. pogledajmo kako izgleda proces razvoja softvera opisan na interesantan način: Software Development Life izvor: The Eye On Security Research Group India (www. 14. See 7. Entire testing department quits. See 5. drugi tip je redizajn. See 3.

Reference: 1. New CEO is brought in by board of directors. Company is bought in a hostile takeover by competitor using profits from their latest release. 17.. which had 783 bugs. Grady and D.L. Programmer produces code he believes is bug-free.B. Prentice Hall. He hires programmer to redo program from scratch. R. Caswell. 1987 .16.. Software Metrics: Establishing a Company-Wide Program. 18..

'0047547.304507.24.7..078488902.:4/4.070 54 94425...434897:9:7   :984:7...07.3038:8570230 /.473.354791448419. 0-9 4/4.0 .473.80-0 .2..3..0 :: 42509./..1:3.34/7 .3./09.3.04:984:7...3.8419.7.  3.345...3.3:/0804..57207 489..5749.897.... :: :: 8419..3 :984:7.3.9.4/7 .. 4/:.4:984:7.4.34/3.. %247.3..54....3028843 . 4/7 .0/347:5484- 84/3447.84.80/430804/8: .304/4.79.034/4/0033..8419.:-043974:3.308419.. !4 94548942344.45..24 0 3.4//. 970-..0/..45743.07424804789:4834.4.80-7./.8.98.1:3. 3...30 .3 807.0/00.40392 4/7 ./4/0.. :3. 3..:4.07304-./7 .0 07...4/7 ./8419.304/70 ..8419..90 0439740  !74-02020 :92  94090 45743. 47./48: .90.98.30.8.308419. '..4-0-0 ::807..344580. .342-38:  3401720 04:984:7..0784 4/7 .5489.07. 0 0  4:984:7...03(3....3.:  0/..3 &4/: .07844/7 ....473489 4/7 . 4/.0 4.2.47.042.045072. 43974302070:9428: ... 4:984:7..8.32/0.

87.9314$07.574.07570-4.7.34397441%!071472.07.4:.3.4.4.0 57080390/.5702.0   .0 97.3.0 07:    #010703.:4.4738547.03 %.3.807.8343.47:  :984:7.8...3095 3454974 03044 2080..3425.07      .3.4:984:7.8419.::4.03:: 8419.:2 4 0/..

3.3.34894/7 . .03.1 3.. $419.574.20703..3.85098419.59..3. 90.3.03.3.7..3.974 4. $ ./7087.. 0/3...3489574.07844/7 .. .3.0.3.07844/7 .37.:7.4/  &4..08.705.3..07844/7 . 9.8419.073 0307247..4/7 .3.904708419.907890850.4/7 ... 574. 974 4..8419......40. . . 024 O O O O ..:2097.3.07.  !74.:.4 :4/7 .8.9....4/7 .3.: .4-7.030974 4. %0304/7 ..

7.4970-.547.8024/1:: O !74203.5.:74.5789:5.8:702039 !$ 458::902. 0703.9 3..4:: :0-743..1 3.07.: /..3:/04.3 24/1..4/70/4..545:..489..3.850.20703.3.04/54/.8419.209.8:/. :20703..8054.304 0...207030 7457203..:574...3.8419. 0850.8:89.1 3.: ./4.. 4: 3489.3..30  .4 03574.889028.3.80(:8.078.24/14.   $50.4//.03..-3489 0703. O $9.2... !7.0820703..708:78.4/7 ./.4/7 .3.547.8419.. O 4: 348990897.3./.98...20703.4/7 .5789:5.07844/7 .3...70 .30 47 030 5.547.4.9:47.:425.8.3.3.3.4.: $9.7/  $  (570/.   0703.2.7.. /7 .907890.....0 574290897./4.0 0703.3/$890280. ..3/.3.2.3..3.. . :: :: 43.547..348419.8419.54974 03:54: . 7./03914..7824/0.4783 3.3/.8419..4 04/7 ..: 90897.3..1.7..7..427.73. /8:9:::85489.. 0 080478942-3.0784 4/7 .3543.3..3. !7.4.20703.././..8:4/4..48047894/ 897.305747.3023447.. 3.57/7: 032502039.489 0703.$419.3:708:78.247.7...07844/7 .20703.3.8:.9..:54: .07. O .

 $ .3.07844/7 ..34894/7 ..    $. !4/4-.8419.57..2..9.0.089.34892.34898.:0304.:54...9.0784 3 030789.7010703.304/7.3.5702..08.:574..3/. %02.89 574.3.7/047 030..084/7 .084/7 . 2502039.3.:0 4/7 .489.7.4.$  :57: ....8419... !74.

30 90897.3.4..8:8 30432. :77.34894/7 .4..4:.4 94807.70.03.. $419.3.9.30/4:2039.9.088 .07847.  /7 .. 340.3/.3..34894/7 .0 /.30/4:2039.7/$ .0 $9.:57. 3.99.3.893..90./:7..0!74.8419.4 07..47:/09490$   9...3903.: 47./0 .3 4/7.

70107 0308 .57./...4/7../85:303.  ..08 247./.37. ..570547: :0/..43574.4/7 .

07844/7 .07 97..24.8419.0784 4/7 .30 .381078.030.4/7 . 0/:92 .3489:: :: 574.8.0308..30.3574708.03....0308.24.8408:0/389.9. 439748. 9.9.9.08..4850. .08.8419.3489574...30 300.9.1 354970-.344/5747.34899442408419.207.47:/09490$   0/389.348957.57207 O O O O O %7.0800/389..4/7 .3489 !48943044574.2.4.9.43.447/37.3.80.. !7...8419.07844/7 .30     $.3...3.. .3.

2...574203./05704 4/70 03.90.0 3. /-. .90.574203.2.7.30..

547.3.

.2.2.207.42508348924:-94/-034/897.2..2.094783.90... 3. 570:8207033.0 9... /4/0:5747909.31472..90.:9..30470 ..  .304/7 ....4 9..30 .84-42574. 94809 0.2.. !470 0804/897. .4.90.574203..30348.574203.03.307.... !424 8.5747.30 4783  945470 0.

070 !...909.9.4.37.2.34895.95 3497.4.03.07844/7 .059/4:2039..7..3.02039 $  '071.4893/.43423...0: 30020395./5...37.023444/3.4.34.3.348954/7 0.3.  .3...07844/7 .:574. /0391:054903. 3.037/.90..8419.43423..3.4/0.4/7 .348954/7 0 /7 .7..3.8419.34/7 .30970-.834898.3...3..30..37...305: 9. 3.48419.909.03:974 4..30/....0 5..  !700/574.807.9.07844/7 ./7 .4/:42/.9.0.8419..90.. $419.24:/.3.07844/7 .08.47.70431:7.37.3..2497..-7430.3..9../.3..37.. /0391.943.57409.8544 .07844/7 . $.34895.4783.4:.3..4.070..88902970-.3...4-:.:7.3./:..3.070  4783 97033   9..94/.  -:.354.8.4/7 .08419.304/7 .30 3.3.9. !74.345.30-:/ 09.3..37./:.30444/3......4 948: O O O O O O O !.7.07844/7 .574203.. 3. ..9 O O O O 5808419.07..030442080.3.4:  !.  -0-0 030../.37. !.0 !74. 970-./.:8: . /.9:207.3. !7.30/.37.078423....  !.4:  !...07.37. O O O O !484.4:  !.   47./..  43.97./.4/7 .37.9.3..3489.37.90..304/7 .4/7 .-:/::: 03:5.:80/0 ...304/7 .030574...2..:547..4- 34 97.37. 574-02. 1.3.3..3..4/7 ...37...59./.247..90.303/.07..:47.0. '.. O O O O !7:5/.07..3...8419./.4/7 .89.308419. 3.3..3005...7.249799020 ..0.8419.  !4970-3407.943.54 308.708:78. 708:78970-.9073.3.059/4:2039 .30431907.42807.

792039.3.7. 03903.709357088:70..7920399..7014:3/    !747.070/4:2039.43.3/05.3:  O #.8.4.7/1742  397090893/05.2.5489.078003300730574.0784254303.700./.07800330073 #0.8419.7920396:98  .3  #01.2207803/8:3/075.0/:0 90574/:.070.574.8419.0574203.2-0574203.08.47 03:8419.3.47%00 3$0.54-4 ..3.087.4859.3.3:05747.:20.80/   &807813/30-:8    73.:20.894/.4/7..0 304308    73.07.40/.9.9904907  ..   .08.:/7:41472 #0./90893/05.07 459289.83.3:5747.O 31472 08.0.2.8419..4734 4/.7./4:2039....34. 8419. 70570039.9478.707.:.334:3.2489..33...  O #0.:20..703 970.80/874.41472  #0033007303.07830-:8    $00    $00    $00    $00    $00   $00   :0942.3:7.79203913/89. 309    !747.5747. .  O #00330073 #0033007380/013 0..5747.. 3 $419..458.4543.-:8    %0893/05.91.045203910 .:34..7.7.39.7020: 9.24.  048 3/.. !747.22390.80/434.3457.07800330073 ./457348 7.38949090893/05. 540/. 03.9890890/  -:8.3004/0307.07..98700. 83407094-014:3/   0 .02039 -../ :85489.2207108 4190-:8.9:70574/:.3.08419.3.5747.:2502039.054.3//8.89570/89.3/.9..34./3:2502039.43974094.2238.33.2. .2207574/:.39570.9.7047.07 #0.:79#080.. 0308419.8:54-5703.330203..4190-:8 -:93974/:.3097020570 2.07.207974 03..0.33.07800330073 .8802-0/5747. 1472.2108.74:53/..0780033007305.54/4-.04190108//3 947.381472.4/00-00.4.3...2. 0/.7.3.14.41472:: :03.390770.3..897:9:7: 5747..3: 5747.7.30097.4. .07800330073574.3907084.30: 0830  %0304/7 ..390708. .::34. /7:95070/.305703.2.43..2207 ./ /03914.3.088-: 1700    !74/:.07.07842 4/7 .. 304.305747.5747...

3/  .80 .9.70097.04.425./-:8   0 8-74:93--4.9089700.088-: 1700     #010703.42509947:835741981742907 ..0.4/00-00.2207574/:.-83.22079470/45747.2 17428.7/41/70.48909.08.3 /0 !747.9478 07085747.   ./.889.07-.80 $419.38-4:93.2 !7039.   !747.0   #  7.7. 425.

Sign up to vote on this title
UsefulNot useful