U svetu razvoja softvera, preventivno održavanje se može shvatiti kao proces proaktivnog delovanja usmerenog ka budućnosti, čiji je cilj da se osigura dugovečnost i optimalno funkcionisanje vašeg softvera ili sistema.
Možda ste investirali u sofisticiran i skup sistem za obavljanje svakodnevnih zadataka. Takođe je moguće da ste se odlučili za interni tim programera koji će razviti sistem prilagođen vašim operativnim potrebama.
Nažalost, troškovi vezani za softver ne prestaju sa njegovom nabavkom. Ukoliko želite da vaš softver radi bez problema, neophodno je ulagati u njegovo održavanje.
Održavanje se može podeliti u četiri glavne kategorije: adaptivno, korektivno, perfektivno i preventivno. Iako svaka od ovih vrsta ima svoje prednosti, fokus ovog teksta biće na preventivnom održavanju.
U savremenom kontekstu, preventivno održavanje podrazumeva analizu operativnih podataka, primenu mašinskog učenja i prediktivno praćenje zdravlja sistema, a sve to u cilju optimizacije održavanja i smanjenja rizika po pouzdanost poslovanja ili infrastrukture.
Zašto je preventivno održavanje važno?
Osnovna svrha preventivnog održavanja softvera jeste unapređenje njegovih performansi i otklanjanje potencijalnih nedostataka. Preventivno održavanje je logičan korak u evoluciji svakog softverskog rešenja.
Kao kompanija, morate pratiti najnovije trendove u softverskoj industriji kako biste svojim klijentima pružili najbolje moguće iskustvo i unapredili efikasnost vaše platforme.
Pre nego što se sistem potpuno održi, prolazi kroz sledeće faze:
#1. Faza identifikacije problema
U ovoj fazi se identifikuju zahtevi za modifikacijom i dodeljuje im se odgovarajući broj. Svaki zahtev za modifikaciju (MR) se zatim procenjuje kako bi se odredio odgovarajući tip održavanja. Ovaj korak je ključan jer postoje različite vrste zahteva za održavanje softvera, a svaka modifikacija treba da bude pohranjena u svom repozitorijumu u skladu sa svojim tipom i prioritetom. Ukoliko se preventivno održavanje identifikuje kao rešenje, prelazi se na sledeći korak.
#2. Faza analize problema
U ovoj fazi se pripremaju obim i izvodljivost svakog validiranog zahteva za modifikaciju, a pravi se i plan za njegovo sprovođenje. Početna procena resursa, informacije o repozitorijumu i projektna dokumentacija se postavljaju tokom ove faze.
Izveštaj o izvodljivosti se priprema u fazi analize problema. Taj izveštaj će sadržati sledeće:
- Očekivani uticaj promena
- Kratkoročne i dugoročne organizacione ciljeve
- Dostupna alternativna rešenja
- Bezbednosne implikacije
#3. Faza projektovanja
Kada je odlučeno da promene treba izvršiti, sledeći korak je planiranje načina na koji će se izmene, kao što je preventivno održavanje, sprovesti. U ovoj fazi se radi sledeće:
- Identifikacija softverskih modula koji će biti zahvaćeni
- Izmena dokumentacije identifikovanog softverskog modula. Procenjuju se elementi kao što su jezik dizajna programa i dijagrami toka podataka.
- Razvoj test slučajeva za novi dizajn
- Ažuriranje dokumentacije zahteva.
#4. Faza implementacije
U ovoj fazi se vrše stvarne izmene koda. Tokom ove faze prate se sledeći koraci:
- Kodiranje i testiranje jedinica.
- Integracija. Kodirani softver se integriše sa postojećim sistemom.
- Analiza i pregled rizika. Ne treba čekati fazu testiranja da bi se analizirali rizici povezani sa održavanjem. Neki od rizika koje možete proceniti su osiguravanje rezervnih kopija i eventualni gubitak podataka.
#5. Testna faza
Ova faza ima za cilj da osigura da se u postojeći sistem neće uvesti nove greške. Ulazni atributi će uključivati ažuriranu softversku dokumentaciju, ažurirani sistem i izveštaj o pregledu pripreme testa. Modifikovani softverski paket će biti podvrgnut funkcionalnom testiranju sistema, regresionom testiranju i testiranju interfejsa.
#6. Faza testa prihvatanja
Kada je modifikovani softverski modul testiran, vreme je da se ispita da li potpuno integrisani sistem radi kako se očekuje. Uloga ove faze je da otkrije greške i proveri da li su modifikacije urađene u skladu sa prihvatljivim standardima.
Neke od stavki koje će biti proverene su potpuno integrisani sistem, procedure testova prihvatanja, planovi prijemnih testova i slučajevi testova prihvatanja. FCA izveštaj i izveštaj o testu prihvatanja se generišu na kraju ove faze.
#7. Faza isporuke
Modifikovani softver se predstavlja krajnjim korisnicima tokom ove faze. Korisnici takođe dobijaju korisne datoteke i ažuriranu dokumentaciju koja opisuje način na koji softver funkcioniše. Ovo su tipični koraci u fazi isporuke:
- Revizija fizičke konfiguracije (PCA)
- Korisnici su obavešteni o novim promenama
- Modifikovani sistem je instaliran, a korisnici obavešteni
- Obezbeđena je opcija za povratak sistema
Vrste preventivnog održavanja
#1. Na osnovu upotrebe
Preventivno održavanje zasnovano na upotrebi se sprovodi nakon određenog nivoa korišćenja sistema. Ovaj pristup uzima u obzir svakodnevno korišćenje sistema i koristi ga za određivanje datuma održavanja ili inspekcije.
#2. Vremenski zasnovano
Preventivno održavanje vremenske/kalendarske baze se sprovodi nakon određenog vremenskog intervala. Može biti nedeljno, dvonedeljno, mesečno, kvartalno, polugodišnje ili čak godišnje. Akcija održavanja se automatski pokreće kada se približi rok i kada se kreiraju svi potrebni radni nalozi.
#3. Prediktivno
Prediktivno održavanje planira korektivne akcije održavanja pre nego što dođe do problema ili kvara. Tim treba da proceni stanje sistema kako bi procenio kada treba da se obavi održavanje. Takvi zadaci održavanja su zakazani kako bi se sprečio neočekivani kvar sistema.
#4. Preskriptivno
Preskriptivno održavanje ide korak dalje i ukazuje kada će doći do kvara i koji su njegovi uzroci. Ovaj pristup preventivnog održavanja analizira različite opcije i potencijalne ishode za ublažavanje rizika.
Kada je potrebno preventivno održavanje?
Da ispravite greške i bagove
Greške i bagovi mogu biti prisutni u softverskom sistemu. Takve greške možda sada ne utiču na operacije, ali može postojati rizik da prouzrokuju probleme kada uvedete nove funkcije. Preventivno održavanje će stoga biti korisno za ispravljanje ovih grešaka kako bi se izbegli budući problemi.
Ostvarite stabilne operacije
Sistemi imaju tendenciju da zakažu kada to najmanje očekujete. Ponekad ćete možda biti primorani da zaustavite operacije dok pokušavate da rešite probleme, što će drugima doneti neprijatnosti, a vama gubitak novca. Preventivno održavanje smanjuje takve prekide i osigurava da vaša firma radi kako se očekuje.
Rešite probleme koji utiču na poslovanje pre nego što se pojave
Neke jednostavne rutine održavanja mogu smanjiti probleme vezane za vašu proizvodnu liniju. Na primer, ako predviđate nagli porast saobraćaja u određenom mesecu, možete da izvršite neophodne izmene kako biste bili sigurni da takvi slučajevi ne bi opteretili vaše servere.
Obezbeđuje usklađenost sa garancijama
Možda ste nabavili proizvod ili sistem od drugog dobavljača. Ako je taj sistem/proizvod pod garancijom i pokvari se, većina dobavljača će zahtevati da dokažete da sistem/proizvod nije pokvario usled vašeg nemara. Preventivno održavanje je korisno kada želite da otklonite slučajeve nemara sa vaše strane.
Primeri preventivnog održavanja
Rekonstrukcija koda
Preventivno održavanje softvera može uključivati transformaciju strukture koda kroz smanjenje izvornog koda. Takav pristup može učiniti kod razumljivijim ili čak kompatibilnim sa hardverskim/softverskim proizvodima koje planirate da uvedete.
Optimizacija koda
Možda imate sistem koji obavlja sve zadatke, ali još uvek nije optimizovan. Optimizacija koda omogućava vašem programu da troši manje resursa, kao što su CPU i memorija. Možete optimizovati svoj kod kao mehanizam preventivnog održavanja ako nameravate da uvedete novi hardver ili čak da smanjite troškove povezane sa sistemom.
Ažuriranje dokumentacije
Dokumentacija je važan deo sistema jer objašnjava kako program funkcioniše i promene koje su napravljene tokom vremena. Ažuriranje dokumentacije osigurava da je ona usklađena sa trenutnim stanjem sistema.
Alati za preventivno održavanje
Održavanje softvera, bez obzira na vrstu, ne vrši se nasumično. Morate se naoružati ovim alatima ako želite glatko iskustvo:
- Komparator datoteka. Ovaj alat upoređuje dva sistema/datoteke i daje izveštaj o razlikama. Komparator datoteka takođe utvrđuje da li su dva sistema ili datoteke identični.
- Kompajler i linker. Kompajleri proveravaju sintaksičke greške. U drugim slučajevima, ovi alati se takođe mogu koristiti za proveru izvora grešaka. Alat za povezivanje se koristi za povezivanje kompajliranog koda sa drugim komponentama kako bi se izvršilo izvršenje.
- Debager. Debager prati logiku programa. Neki pregledači, kao što je Google Chrome, imaju alatku za otklanjanje grešaka koju možete da koristite.
- Generator unakrsnih referenci. Promene koje unosite u svoj kod moraju biti u skladu sa postojećim sistemom. Ovaj alat će odrediti kako će različite komponente koda i dizajni biti pogođeni kada je potrebna promena zahteva.
Resursi za učenje
#1. Kompletan vodič za preventivno i prediktivno održavanje
Ovaj vodič deli najbolje prakse, ključne korake za uspeh, greške i pobede u preventivnom održavanju koje je autor stekao tokom godina iskustva.
Knjiga se fokusira na četiri aspekta preventivnog održavanja: psihološki, inženjerski, upravljački i ekonomski.
#2. Serija strategije održavanja, tom 1 – Preventivno održavanje
Ovaj materijal istražuje važnost preventivnog održavanja za celokupnu strategiju održavanja sistema kompanije.
Knjiga sadrži ilustrativan dijagram toka sa svim koracima koje treba pratiti prilikom preventivnog održavanja.
#3. Inženjerski vodič za preventivno održavanje
Ova knjiga objašnjava dokumentovanje analize režima kvarova i efekata prilikom obavljanja preventivnog održavanja.
Neke od stvari koje ćete naučiti uključuju: dokumentovanje kodova grešaka i hijerarhije sistema/sredstava, procenu rizika i analizu načina kvara.
#4. Osnove preventivnog održavanja
Ovaj vodič pruža ekonomski razumne i jednostavne korake u preventivnom održavanju.
Vodič vođen rezultatima detaljno opisuje uzroke kvara, način identifikacije i ispravljanja grešaka, kao i proces održavanja.
Zaključak
Sasvim je očigledno da je preventivno održavanje važno ako ne želite da se vaši sistemi pokvare i da obezbedite kontinuitet u radu. Troškovi povezani sa preventivnim održavanjem će varirati u zavisnosti od uvedenih promena. Dobar plan održavanja osigurava da proces bude nesmetan.
Takođe možete istražiti neke od najboljih alata za testiranje softvera.