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. Istorijski gledano softversko održavanje nije uvek dobijalo toliku pažnju kao ostale faze izgradnje softvera. 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. Međutim, 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.

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). Faza posle isporuke uključuje softverske modifikacije, trening i korisničku podršku.

Na slici je prikazana šema softverskog održavanja prema "The Guide to the Software Engineering Body of Knowledge (SWEBOK)".

Oblast softverskog održavanja tesno je vezana sa svim ostalim oblastima softverskog inženjerstva.

 

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. Obrađuju se osnovni principi i definicije i prepoznavanje važnosti potrebe za održavanjem.

 

Definicije i terminologija

Softversko održavanje je definisano u "IEEE Standard for Software Maintenance, IEEE 1219", kao modifikacije softverskog proizvoda posle isporuke, radi ispravljanja grešaka, radi poboljšanja performansi ili drugih atributa ili radi prilagođavanja proizvoda promenama okruženja. Održavanje je proces modifikacije koda i prateće dokumentacije softverskog proizvoda usled postojanja problema ili potreba za unapređenjem. Cilj je modifikacija softverskog proizvoda uz očuvanje njegovog integriteta. ISO/IEC 14764 internacionalni standard za softversko održavanje, definiše softversko održavanje na sličan način, ističući fazu pre isporuke i njene aktivnosti, kao što je npr. planiranje.

 

Priroda održavanja

Zahtevi za promenama se snimaju i prate, određuje se uticaj predloženih promena, modifikuje se kod i ostali softverski artifakti, sprovodi se testiranje i izdaje se nova verzija softverskog proizvoda. Tokom ovog procesa korisnicima mora da se obezbedi obuka i dnevna podrška. Maintainer se definiše standardom IEEE/EIA 12207 kao organizacija koja izvodi aktivnosti održavanja. Termin se nekada koristi i za pojedince koji izvode ove aktivnosti.

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

Osobe koje rade održavanje mogu dosta da nauče od programera o softveru. Saradnja sa developerima i rano uključivanje održavaoca pomaže u smanjenju napora u održavanju. U nekim slučajevima programeri nisu na raspolaganju do kraja ili su prebačeni na druge poslove, što stvara dodatne izazove za održavaoca. Održavanje mora prihvatiti proizvode razvoja, kod i dokumentaciju, dati im podršku neposredno i razvijati ih i evoluirati tokom životnog ciklusa.

 

Potreba za održavanjem

Održavanje je neophodno radi osiguranja da softver kontinualno zadovoljava korisničke zahteve. Održavanje je primenjivo na softver razvijen korišćenjem bilo kog modela životnog ciklusa razvoja. 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, softver i telekomunikacioni uređaji mogu koristiti
  • Povlačenje softvera

 

Karakteristike održavanja

Aktivnosti održavanja obuhvataju četiri ključne karakteristike:

1. Održavanja kontrole nad svakodnevnim funkcijama softvera
2. Održavanja kontrole nad modifikacijama softvera
3. Dorađivanje postojećih funkcija
4. 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. Uobičajena pretpostavka softverskog održavanja je ta da služi ispravkama grešaka. Međutim, studije i istraživanja pokazuju da najveći deo (preko 80%) napora se koristi na akcije koje nisu korektivnog karaktera.

 

Troškovi softverskog održavanja

Razumevanje kategorija softverskog održavanja pomaže u razumevanju strukture troškova softverskog održavanja. Takođe, razumevanje faktora koji utiču na lakoću održavanja sistema može pomoći u sagledavanju troškova. 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, konstrukcije, dokumentacije i testiranja

 

Evolucija softvera

Prvi put je obrađivano softversko održavanje i evolucija sistema 1969. godine. Tokom perioda od dvadeset godina, došlo se do formulacije osam "Zakona o evoluciji". 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. Druga tumačenja su da je održavanje nastavak razvoja, osim jednog dodatnog ograničenja - postojeći veliki softverski sistemi nikada nisu završeni i nastavljaju da evoluiraju. Tokom svoje evolucije, održavanje dobija na svojoj kompleksnosti osim ako se ne preduzmu neke akcije na smanjenu kompleksnosti.

 


Reference:

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

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

  • Oblasti softverskog održavanja 1
  • Oblasti softverskog održavanja 2
  • Oblasti softverskog održavanja 3