U ovoj lekciji ćemo obrađivati:

  • Pojam održavanja softvera
  • Vrste održavanja
  • Troškovi održavanja
  • Predviđanje troškova održavanja
  • Detaljnije predviđanje troškova
  • Aktivnosti održavanja


Pojam održavanja softvera

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 govori da su uspešni softverski sistemi “osuđeni” na promene tokom vremena. Preovlađujući udeo promena se odnosi na zadovoljavanje promenljivih korisničkih potreba. Ovo je obuhvaćeno prvim Lemanovim zakonom: “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.

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.)


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. U tim slučajevima, troškovi zavise od kompleksnosti tih komponenti. 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, kao i procenu utrošenog vremena na jednoj prosečnoj promeni na osnovu zahteva. Takođe, značajna stavka je i provedeno vreme i broj izlazaka na teren radi održavanja.


Aktivnosti održavanja

Aktivnosti u održavanju softvera, a koji služe i kao pokazatelji kvaliteta softverskog proizvoda su:

  • prerada softverskog koda,
  • optimizacija performansi softvera,
  • migracija na druge platforme,
  • konverzija u nove arhitekture,
  • uklanjanje neaktivnog koda,
  • uklanjanje skrivenih aplikacija,
  • povlačenje softvera iz upotrebe.


Ostale aktivnosti tokom procesa održavanja su:

  • kontakti sa klijentima
  • pisana korespondencija
  • izlasci na teren i dr.

 

 

Slika 2. Troškovi razvoja softvera


Na slici su prikazani troškovi životnog ciklusa razvoja softvera. Relativno mali deo troškova softverskog razvoja, oko 5%, se troši na kodiranje. Najveći deo troškova otpada na održavanje. (Izvor: Schach 2002 [S. Schach, Object-Oriented and Classical Software Engineering, 5th ed., McGraw-Hill, 2002]).

Zaključak

Održavanje isporučenog softverskog sistema obično zahteva više vremena i sredstava od same realizacije i implementacije sistema. Moguće je angažovanje razvojnog ili posebno formiranog tima na održavanju. 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, postavlja se pitanje opravdanosti i dalje upotrebljivosti čitavog sistema.

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Održavanje softvera 1
  • Održavanje softvera 2
  • Održavanje softvera 3