U ovoj lekciji obrađivaćemo:- Proces upravljanja kvalitetom softvera (eng. Software Quality Management Proces) prema prema IEEE Computer Society, Software Engineering Coordinating Committee
- Upravljanje softverskim kvalitetom (eng. Software Quality Management - SQM)
- Osiguranje kvaliteta softvera (eng. Software Quality Assurance - SQA)
- Pojam verifikacije i validacije (V&V)
Upravljanje softverskim kvalitetom
Upravljanje softverskim kvalitetom primenjuje se na sve segmente softverskih procesa, proizvode i resurse. Definiše procese, vlasnike procesa i zahteve za ove procese, merenja procesa i njihovih izlaza i kanale povratne informacije. Proces upravljanja kvalitetom softvera se sastoji od više aktivnosti. Neke mogu direktno da otkriju defekte, dok druge indiciraju gde je korisno raditi dalja ispitivanja. Prve navedene se često i nazivaju aktivnosti direktnog otkrivanja defekata. Često se mnoge aktivnosti koriste za oba navedena problema.
Planiranje za softverski kvalitet uključuje:
- Definisanje zahtevanog proizvoda u terminima svojih karakteristika kvaliteta
- Planiranje procesa za dostizanje zahtevanog proizvoda
Ovi aspekti se razlikuju od, na primer, planiranja samih SQM procesa, koji procenjuju planirane karakteristike kvaliteta prema realnoj implementaciji ovih planova. SQM procesi moraju da obrade kako će softverski proizvod zadovoljiti klijentske zahteve i zahteve drugih zainteresovanih strana, pružiti im novu vrednost i obezbediti potreban softverski kvalitet u skladu sa softverskim zahtevima.
SQM se može koristiti radi evaluacije međuproizvoda, kao i finalnog proizvoda.
Neki od specifičnih SQM procesa su:
- Proces osiguranja kvaliteta
- Proces verifikacije
- Proces validacije
- Proces pregleda
- Proces revizije
Ovi procesi podstiču kvalitet i otkrivaju potencijalne probleme. SQM procesi pomažu u osiguranju boljeg softverskog kvaliteta u datom projektu. Oni takođe pružaju opšte informacije menadžmentu, uključujući indikaciju kvaliteta čitavog procesa softverskog inženjerstva.
SQM procesi se sastoje od zadataka i tehnika, koje identifikuju kako se softverski planovi implementiraju i kako međuproizvod i finalni proizvod zadovoljavaju specifikovane zahteve. Rezultati ovih zadataka su predstavljeni u izveštajima menadžmentu, pre preduzimanja korektivnih akcija.
SQM procesi su blisko vezani, često se preklapaju a nekada i kombinuju. Izgledaju prilično reaktivno po prirodi, zato što se bave procesima dok se sprovode i proizvodima dok se proizvode. Međutim, igraju glavnu ulogu u fazi planiranja, delujući kao proaktivni, u terminima procesa i procedura potrebnih za dostizanje karakteristika kvaliteta i stepena potrebnog kvaliteta.
Upravljanje rizikom može takođe da igra važnu ulogu u isporuci kvalitetnog softvera. Objedinjavanjem disciplinovane analize rizika i menadžment tehnika u životnom ciklusu može se povećati potencijal za proizvodnju kvalitetnog proizvoda [1].
Osiguranje kvaliteta softvera (eng. Software Quality Assurance)
Software Quality Assurance (SQA) proces pruža obezbeđenje da su softverski proizvodi i procesi u životnom ciklusu projekta u skladu sa njihovim datim zahtevima, putem planiranja, propisivanja i izvođenja skupa aktivnosti radi pružanja adekvatnog poverenja da je kvalitet ugrađen u softver. Ovo znači osiguranje da je problem jasno i adekvatno naveden i da je rešenje zahteva ispravno definisano i izraženo.
SQA teži da održava kvalitet kroz razvoj i održavanje proizvoda putem izvršavanja više različitih aktivnosti u svakoj fazi, što može rezultirati u ranoj identifikaciji problema, gotovo neizbežne pojave u svakoj kompleksnoj aktivnosti. Uloga SQA je osiguranje da su planirani procesi prikladno izabrani i kasnije implementirani prema planu, i da je obezbeđen relevantan proces merenja u skladu sa organizacijom.
Plan osiguranja kvaliteta softvera (eng. Software Quality Assurance Plan)SQA plan definiše način koji će biti korišćen radi osiguranja da softver zadovoljava korisnikove zahteve i da je najvećeg mogućeg kvaliteta unutar ograničenja projekta. Radi zadovoljenja tog cilja, plan mora prvo obezbediti da je ciljani kvalitet jasno definisan i shvaćen. SQA plan mora uzeti u obzir menadžment, razvojne planove i planove održavanja softvera [2].
Navode se specifične aktivnosti kvaliteta i zadataka, sa njihovim troškovima i zahtevanim resursima, sveobuhvatni ciljevi menadžmenta i njihov raspored u upravljanju softverskim inženjerstvom, razvojem ili planom održavanja. SQA plan mora biti konzistentan sa SQM planom (eng. Software Configuration Management Plan), koji se šire obrađuje u kursu Upravljanje softverskom konfiguracijom.
Sadržaj Software Quality Assurance Plan-a
SQA plan identifikuje:
- dokumente
- standarde
- konvencije
- merenja
- statističke tehnike
- procedure za izveštavanje o problemu i korektivne akcije
- resurse
- metodologije
- trening
- izveštavanje i dokumentaciju
SQA plan identifikuje dokumente, standarde, prakse i konvencije upravljanja projektom i kako će biti provereni i praćeni radi osiguranja adekvatnosti i pridržavanja. SQA plan takođe identifikuje merenja, statističke tehnike, procedure za izveštavanje o problemima i akcije korekcije, resurse kao što su alati, tehnike i metode, sigurnost za fizičke medije, obuku, izveštavanje i dokumentaciju. SQA plan se bavi aktivnostima osiguranja kvaliteta softvera i bilo kog drugog tipa, servisima nakon isporuke softvera, i može da sadrži kriterijume prihvatanja, kao i izveštaje i aktivnosti menadžmenta, koji su ključni za kvalitet softvera.
Verifikacija i validacija (V&V)
Verifikacija i validacija (V&V) se često tretiraju kao jedna tema, a ne kao dve odvojene teme što je predstavljeno u standardu IEEE12207 [3]. Softverska V&V je disciplinovan pristup u procenjivanju softverskih proizvoda tokom životnog ciklusa proizvoda. V&V ulaže napore kako bi se osiguralo da je kvalitet ugrađen u softver, koji zadovoljava zahteve korisnika [4].
V&V direktno adresira kvalitet softverskog proizvoda i koristi tehnike testiranja koje mogu pronaći defekte, kako bi se mogli rešiti. Takođe, bave se i procenom međuproizvoda, i u tom svojstvu, i međukoracima procesa životnog ciklusa softvera.
V&V postupak utvrđuje, da li ili ne, proizvodi datog razvoja ili aktivnosti održavanja, odgovaraju zahtevima aktivnosti, te da li ili ne, konačni proizvod ispunjava svoju namenu i zadovoljava zahteve korisnika.
Verifikacija pokušava da osigura da je proizvod građen pravilno, u tom smislu da izlazni proizvodi aktivnosti zadovoljavaju specifikacije nametnute u prethodnoj aktivnosti.
Validacija pokušava da se osigura da je pravi proizvod izgrađen, odnosno da proizvod ispunjava njegovu namenjenu svrhu.
Oba procesa, verifikacije i validacije, počinju rano u fazi razvoja ili održavanja. Oni daju proveru ključnih karakteristika proizvoda, u odnosu na njegovog neposrednog prethodnika u procesu i specifikacije koje mora ispuniti.
Svrha planiranja validacije i verifikacije je osiguranje da je svaki resurs, uloga i odgovornost jasno dodeljena [8]. Rezultujući V&V plan dokumentuje i opisuje razne resurse i njihove uloge i aktivnosti, kao i tehnike i alate koji će se koristiti. Razumevanje različitih svrha svake V&V aktivnosti pomoći će u pažljivom planiranju tehnika i resursa potrebnih za ispunjenje njihovih namena. Standardi IEEE Std 1012-1998, Software Verification and Validation, IEEE, 1998. i IEEE Std 1059-1993, IEEE Guide for Software Verification and Validation Plans, IEEE, 1993., navode koji elementi idu u V&V plan [5,6].
Plan se takođe bavi upravljanjem, komunikacijama, postupcima i procedurama za V&V aktivnosti i njihove interakcije, kao i izveštavanjem o greškama i zahtevima za dokumentacijom.
Pregledi i revizije
Pet tipova pregleda i revizija su predstavljeni u standardu IEEE1028-97 [7]:
- Provera menadžment-a
- Tehnički provere
- Inspekcije
- Prolasci
- Revizije
U nastavku će biti detaljnije opisane svaka od njih.
Provera menadžment-aSvrha provere menadžmenta je praćenje napretka, utvrđivanje statusa planova i rasporeda, potvrđivanje zahteva i njihove sistemske alokacije, odnosno ocena efikasnosti pristupa upravljanju, koji se koristi kako bi se dostigla data namena [7]. One pomažu odluke o promenama i korektivne akcije koje su potrebne za vreme softverskog projekta.
Provere utvrđuju adekvatnost planova, rasporede, i zahteve i vrše praćenje njihovog napretka ili nedoslednosti. Ovi pregledi mogu da se obavljaju na proizvodima, kao što su revizorski izveštaji, izveštaj o napretku, V&V izveštaji i razni planovi, uključujući i upravljanje rizicima, upravljanje projektima, upravljanje softverskom konfiguracijom, sigurnost softvera i procenu rizika.
Tehničke provereCilj tehničke provere je procena softverskog proizvoda kako bi utvrdila njegova prikladnosti za datu namenu. Cilj je identifikovati odstupanja od odobrene specifikacije ili standarda. Rezultati treba da pruže dokaze menadžmentu s potvrdom (ili ne) da proizvod zadovoljava specifikacije i odgovara standardima i da su promene pod kontrolom [7].
Specifična uloge moraju biti uspostavljene u tehničkom pregledu: donosilac odluka, vođa pregleda, zapisničar i tehničko osoblje za podršku aktivnostima pregleda. Tehnički pregled zahtevaju koji obavezni ulazi moraju budu postavljeni:
- Navođenje ciljeva
- Specifikacija softverskog proizvoda
- Specifikacija plana upravljanja projektom
- Lista pitanja vezana za sam proizvod
- Procedura tehničkih provera
Tim sledi proceduru revizije. Tehnički kvalifikovan pojedinac prezentuje proizvod, a ispitivanje se sprovodi tokom jednog ili više sastanaka. Tehnički pregled je završen kada su sve navedene aktivnosti u ispitivanju kompletirane.
Reference:- R.N. Charette, Software Engineering Risk Analysis and Management, McGraw-Hill, 1989.
- IEEE Std 730-2002, IEEE Standard for Software Quality Assurance Plans, IEEE, 2002.
- IEEE/EIA 12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std ISO/IEC 12207:95, Standard for Information Technology-Software Life Cycle Processes, IEEE, 1996.
- IEEE Std 1059-1993, IEEE Guide for Software Verification and Validation Plans, IEEE, 1993.
- IEEE Std 1012-1998, Software Verification and Validation, IEEE, 1998.
- IEEE Std 1059-1993, IEEE Guide for Software Verification and Validation Plans, IEEE, 1993.
- IEEE Std 1028-1997 (R2002), IEEE Standard for Software Reviews, IEEE, 1997.
- D.P. Freedman and G.M. Weinberg, Handbook of Walkthroughs, Inspections, and Technical Reviews, Little, Brown and Company, 1998
- IEEE Computer Society, Software Engineering Coordinating Committee, Guide to the Software Engineering Body of Knowledge, 2004.