RAZVOJ POSLOVNIH APLIKACIJA ISPORUKA I ODRAVANJE SOFTVERA Branko
RAZVOJ POSLOVNIH APLIKACIJA ISPORUKA I ODRŽAVANJE SOFTVERA Branko Latinović
ISPORUKA SOFTVERA Cilj isporuke softvera je, osim instaliranja softvera, da se korisnicima pomogne da u potpunosti razumeju kako softverski proizvod funkcioniše da bi se osećali udobno pri radu u novom okruženju. ako se isporuci ne posveti dovoljna pažnja, može se desiti da korisnici ne primenjuju softver na najbolji način, što može da umanji njihovu produktivnost i efikasnost Sredstva koja najviše mogu da doprinesu boljem i lakšem radu korisnika su: obuka za korišćenje softvera sistemska dokumentacija
OBUKA KORISNIKA Dve vrste korisnika: krajnji korisnici - izvršavaju osnovne funkcije sistema u cilju rešavanja problema opisanih u projektnim zahtevima operateri (administratori) - izvršavaju pomoćne funkcije sistema koje služe za podršku osnovnim funkcijama Primer: vrste poslova krajnji korisnici: aktivnosti predviđene rešenjem nekog problema, unos i analiza podataka, generisanje izveštaja, dijagrama i sl. operateri: odobravanje prava pristupa pojedinim delovima sistema, periodično pravljenje kopija datoteka bitnih za sistem, instaliranje novih uređaja i softvera, izvršavanje aktivnosti za oporavak sistema nakon nekih neregularnih stanja
OBUKA KRAJNJEG KORISNIKA podrazumeva upoznavanje krajnjeg korisnika sa načinom pokretanja i izvođenja osnovnih funkcija sistema korisnik se upoznaje sa korisničkim interfejsom, rasporedom opcija, izgledima ekrana i značenjem pojedinih oznaka na ekranu (na primer, boja, simbola i sl. ) važno da korisnik razume funkcije sistema i da nauči kako da ih koristi, a ne mora da poznaje unutrašnji rad sistema (na pr. korišćene algoritme, funkcije podrške) zamena starog sistema novim može da dođe do problema u vezi sa prihvatanjem novog sistema mora se korisnicima dati dovoljno vremena da postupno prihvate novi način rada, uz davanje objašnjenja zašto je novi pristup bolji od starog
OBUKA OPERATERA podrazumeva da operater ovlada funkcijama za podršku radu sistema operater se upoznaje sa organizacijom sistema, a ne sa funkcijama za rešavanje problema iz domena za koji je softver napravljen operater ne mora da zna šta sistem radi (domen problema), već kako radi (način funkcionisanja) Obuka operatera obuhvata dva aspekta: uspostavljanje uslova za normalan rad sistema (aktiviranje i konfigurisanje sistema, administriranje prava pristupa, raspodela resurse korisnicima, podešavanje performansi sistema) podrška krajnjim korisnicima (u slučaju pojave nekih neregularnih situacija)
IZVOĐENJE OBUKE Obuka se obavlja putem kurseva. može se izvoditi na različite načine u zavisnosti od prirode sistema, sposobnosti predavača ili afiniteta polaznika Sredstva obučavanja dokumentacija lekcije i demonstracije stručni korisnici
DOKUMENTACIJA U OBUCI Svaki softverski sistem mora da ima prateću formalnu dokumentaciju. dokumentacija je prvenstveno namenjena za korišćenje u fazi eksploatacije sistema, ali može da bude korisna i u fazi obuke Rezultati istraživanja samo 10 -15% polaznika obuke čita dokumentaciju nakon šest meseci od obuke, više niko ne čita dokumentaciju češće se koristi pomoć u elektronskoj formi (Help), jer se tako štedi vreme obuka se znatno pojednostavljuje ako se korisnički interfejs projektuje tako da funkcije budu razumljive i da im se lako pristupa (ikone)
LEKCIJE I DEMONSTRACIJE Lekcije i demonstracije služe za predstavljanje pojedinih aspekata sistema putem niza kratkih prezentacija ili predavanja. polaznici ih rado slušaju vrlo su dinamične i fleksibile (živa reč), zanimljivije od čitanja dokumentacije vrlo uspešne, jer predavač odmah dobija povratne informacije od polaznika, pa može da im pomogne funkcije sistema se najpre objašnjavaju u okviru lekcija, a zatim se isprobavaju putem demonstracija efikasnost demonstarcija se povećava ako se one izvode na računaru (audio i video snimci) obuka se izvodi u računarskim učionicama, svaki polaznik ima sopstveni računar (postoje softveri za nadgledanje šta svaki od polaznika radi na svom računaru)
STRUČNA POMOĆ Značajnu pomoć pri obuci mogu da pruže i stručni korisnici, tj. pojedinici koji su se pre obuke obučili da rade na sistemu, pa na obuci imaju ulogu demonstratora ili pomoćnika predavača. stručni korisnici su dobro prihvaćeni od strane korisnika, jer korisnici u njima nalaze slične sebi korisnici su opušteniji u radu sa stručnim korisnicima, postavljaju im pitanja, diskutuju sa njima o problemima, shvataju da je neko drugi već savladao rad na sistemu, što im uliva samopouzdanje stručni korisnici mogu da ukažu na mesta gde su oni imali najviše problema i kako su te probleme prevazišli stručni korisnici najbolje razumeju potrebe korisnika, tako da mogu da daju najbolje izveštaje o tome koliko su korisnici zadovoljni sistemom, da li ima potrebe za dodatnom obukom, šta je bilo najteže, a šta najlakše u savladavanju načina funkcionisanja sistema i sl.
DOKUMENTACIJA Softverski proizvod je u potpunosti završen tek ako ima prateću dokumentaciju namenjenu korisnicima. Dokumentacija treba da bude: jasna, jednostavna i pregledana konzistentna (usaglašena) aktuelna (mora u potpunosti da odgovara sistemu koga dokumentuje) korisne tehnike: odgovarajuća numeracija, indeksiranje, primena različitih boja po temama, tabele, dijagrami, unakrsno referenciranje i sl. Vrste dokumentacije Uputstvo za korisnika Uputstvo za operatera Uputstvo za instalaciju Uputstvo za programere
UPUTSTVO ZA KORISNIKA (1) Uputstvo za korisnika je dokument namenjen krajnjim korisnicima. Struktura uputstva: naslovna strana sa naznakom o kom dokumentu se radi strana sa informacijama o autorskim pravima (copyright page) predgovor u kome se opisuje svrha uputstva (detalji o dokumentima i informacijama bitnim za korišćenje uputstva, skraćenice, akronimi i specijalni termini koji se koriste u priručniku) sadržaj dokumenta opis sistema
UPUTSTVO ZA KORISNIKA (2) Opis sistema opšti pregled sistema (tekst, slike, dijagrami, tabele) namena i ciljevi sistema osobine i prednosti sistema funkcionalne mogućnosti sistema opis pojedinačnih funkcija sa stanovišta korisnika (tematski grupisanih) naziv funkcije opis svih ulaznih podataka koje funkcija očekuje opis svih izlaznih podataka koje funkcija generiše redosled opcija koje treba aktivirati tokom izvršavanja funkcije prikaz ekrana koje korisnik dobija nakon svake aktivirane opcije detaljno objašnjenje svakog ekrana koje uključuje njegovu namenu, svrhu svakog podatka na njemu, moguće izbore na ekranu i njihove uloge opis grešaka do kojih može da dođe u radu sistema i metode za njihovo prevazilaženje
UPUTSTVO ZA OPERATERA Uputstvo za operatera je tehnički dokument namenjen administratorima sistema. struktura uputstva je ista kao struktura uputstva za korisnika, ali je sadržaj drugačiji Opis sistema opšti pregled sistema sa stanovišta podrške opis funkcija za podršku konfiguracija sistema (kako hardverska, tako i softverska) postupci dodeljivanja prava pristupa pojedinim grupama korisnika performanse sistema i načini njihovog podešavanja postupci arhiviranja podataka od interesa procedure priključivanja i uklanjanja perifernih uređaja iz sistema i dr.
UPUTSTVO ZA INSTALACIJU Uputstvo za instalaciju je tehnički dokument u kome je detaljno, korak po korak, opisan postupak instalacije softvera. navode se uslovi neophodni za regularan rad softvera hardverska i softverska platforma parametri sredine osobine okruženja, itd.
UPUTSTVO ZA PROGRAMERE Uputstvo za programere je dokument u kome su detaljno opisane programske komponente i njihov odnos prema funkcijama sistema. pomaže programeru da lakše pronađe deo programskog kôda koji implementira neku funkciju koristi se kada se pojavi otkaz ili treba izmeniti ili unaprediti postojeće funkcije osim funkcija sistema, sadrži i opise funkcija za podršku, što olakšava onima koji održavaju sistem da pronađu izvor problema
ODRŽAVANJE SOFTVERA Održavanje softvera podrazumeva sve aktivnosti vezane za izmene sistema dok je on u fazi eksploatacije. faza počinje nakon isporuke sistema i traje sve dok je sistem u upotrebi održavanje softverskog sistema se razlikuje od održavanja hardverskih uređaja (nema habanja, pa se ne zahteva periodično održavanje) Ciljevi održavanja: otklanjanje grešaka koje se pojavljuju nakon isporuke softvera izvođenje izmena koje su neophodne zbog promena u okruženju predlaganje izmena ako korisnici imaju problema u korišćenju softvera praćenje rada i predviđanje potencijalnih problema u funkcionisanju sistema evidentiranje izmena u poslovanju koje zahtevaju promene u softveru
AKTIVNOSTI ODRŽAVANJA Tim za održavanje obavlja sledeće aktivnosti: detaljno upoznavanje sa sistemom da bi se u potpunosti razumeo način rada davanje informacija o radu sistema upoznavanje sa dokumentacijom da bi se u njoj brzo i lako pronašla potrebna informacija ažuriranje dokumentacije prema potrebama pronalaženje uzroka otkaza i njihovo otklanjanje prepoznavanje potencijalnih problema u sistemu i njihovo predupređivanje izvođenje potrebnih izmena u sistemu (u dizajnu, kôdu, testovima) oslobađanje sistema od komponenata koje više nisu u upotrebi
VRSTE ODRŽAVANJA korektivno održavanje adaptivno održavanje u cilju unapređenja sistema preventivno održavanje
KOREKTIVNO ODRŽAVANJE Korektivno održavanje se bavi kontrolom svakodnevnog rada sistema i otklanjanjem problema nastalih zbog pojave grešaka u softveru. tim za korektivno održavanje registruje izvor problema i koriguje grešku predlažući izmene u zahtevima, dizajnu, implementaciji ili testovima (prema potrebi) sprovedena ispravka često nije najbolje rešenje i privremenog je karaktera (cilj je samo da sistem nastavi sa normalnim radom) trajno rešenje problema može da zahteva znatno više vremena Primer: ako se neki trošak računa po algoritmu koji nije implementiran u kôdu, a potreban je za dalji rad sistema, može se korisniku dati mogućnost da ga ručno unese. Nakon toga, algoritam se implementira u okviru kritičnog dela kôda.
ADAPTIVNO ODRŽAVANJE Adaptivno održavanje predstavlja implementaciju sekundarnih izmena u softveru. primenjuje se u slučaju kada izmena u jednom delu sistema zahteva izmene u drugim delovima sistema (sekundarne izmene) Primer: dati softver komunicira sa drugim softverom koji treba da bude zamenjen svojom novom verzijom. Ukoliko nova verzija ima promenjen broj ili značenje parametara u interfejsu, ova promena se mora reflektovati i na dati sistem adaptivno održavanje je potrebno nakon izmena u hardveru, softveru ili radnom okruženju Primer: ako se sistem planiran da radi u stabilnom okruženju premesti u novi prostor sa izraženim vibracijama ili bukom, potrebno ga je prilagoditi novim uslovima
ODRŽAVANJE RADI UNAPREĐENJA SISTEMA Održavanje u cilju unapređenja sistema podrazumeva sprovođenje izmena radi poboljšanja nekog dela sistema. izmene ne moraju da budu posledica grešaka, već se uvode na predlog tima za održavanje koji stalno preispituje dizajn sistema, programski kôd, primenjene testove i dokumentaciju tražeći moguća poboljšanja Primer: promene u testovima kako bi oni bili sveobuhvatniji, ili promene u dokumentaciji radi pojašnjenja onih delova teksta koji nisu dovoljno dobro objašnjeni
PREVENTIVNO ODRŽAVANJE Preventivno održavanje predstavlja modifikovanje softvera u cilju detekcije i korekcije prikrivenih grešaka pre nego što se one ispolje. cilj je predviđanje mogućih problema i uvođenje izmena u softver kako bi se otkazi preduhitrili Primer: može se poboljšati mehanizam upravljanja greškama kako bi što veći broj grešaka bio identifikovan i opslužen na odgovarajući način. To se postiže dodavanjem novih kôdova grešaka u iskaz koji analizira greške (case ili catch).
PROBLEMI ODRŽAVANJA Održavanje je težak i složen proces iz sledećih razloga: sistem je već u eksploataciji svako modifikovanje mora da se uskladi sa potrebama korisnika neki sistemi dopuštaju, a neki ne da izvesno vreme ne budu aktivni mora se pronaći neko alternativno rešenje koje ne bi ugrozilo korisnika (rezervni sistem) mogu se javiti personalni i organizacioni problemi nedovoljno razumevanje funkcionisanja sistema i nedostatak potrebnih veština od strane korisnika (rešenje kvalitetna obuka i dokumentacija) nesklad između prioriteta rukovodstva i korisnika moral tima za održavanje (11% problema potiče od niskog morala, “drugorazredni posao”, rešenje je rotacija programera iz razvojnog tima u tim za održavanje) mogu se javiti tehnički problemi zbog načina projektovanja (2000. godina) i implementacije sistema zbog izabranih hardverskih i softverskih platformi korišćenih u realizaciji (nepouzdane i podložne otkazima) podela resursa (ograničena memorija nije dovoljna nakon izmene)
TROŠKOVI ODRŽAVANJA (1) Troškovi održavanja uključuju potrošeno vreme, uloženi rad i novac. troškovi održavanja mogu biti tako veliki da je nekad bolje napraviti novi sistem nego nastaviti sa održavanjem starog Van Vliet (2000. g. ): najmanje 50% ukupnih troškova u životnom veku projekta odlazi na troškove održavanja procena je da će se troškovi održavanja u budućnosti povećati i do 80% ukupnih troškova Troškovi po vrstama održavanja: održavanje u cilju unapređenja sistema → oko 50% troškova održavanja adaptivno održavanje → oko 25 % korektivno održavanje → oko 20% preventivno održavanje → oko 5%
TROŠKOVI ODRŽAVANJA (2) Karakteristike softverskog proizvoda koje utiču na troškove održavanja: veličina sistema - veći sistemi se teže održavaju od manjih (treba više vremena da se upozna njihov rad, više funkcija, pa je verovatnoća pojave grešaka veća). životni vek softvera - stariji sistemi se teže održavanju od novijih (vremenom sistem raste, postaje lošije organizovan i manje razumljiv, ovo je više uočljivo kod dugotrajnih projekata) vrsta aplikacije - neke vrste aplikacija su teške za održavanje (vremenski kritične aplikacije distribuirani sistemi) programski kôd - kraći kôd se lakše održava strukturiranost sistema - manji su troškovi ako je sistem dobro struktiriran (komponente u velikoj meri nezavisne, ali kompaktne, i sa dobro definisanim vezama prema ostatku sistema)
TROŠKOVI ODRŽAVANJA (3) Faktori koji utiču na smanjenje troškova održavanja (Martin, Mc. Clure, 1983. g. ): primena strukturiranog projektovanja - precizno definisana i osmišljena struktura projekta omogućava bolje razumevanje sistema i lako praćenje izmena i njihovih posledica primena savremenih softverskih tehnika - pogodnosti koje nude savremene softverske tehnike treba u što većoj meri uključivati u sistem kako bi njegov rad bio fleksibilniji i efikasniji korišćenje automatskih alata - automatski alati ubrzavaju rad i smanjuju mogućnost greške usled ljudskog faktora iskusan tim za održavanje - troškovi održavanja su manji ako je tim za održavanje dobro organizovan i ako njegovi članovi već imaju iskustva u sličnim poslovima
- Slides: 26