Opis predmeta
a) Osnovni pojmi in definicije kakovosti programske opreme (karakteristike kakovosti po standardu ISO 9126 in ISO 25000, pristop proizvajalca in uporabnika pri ugotavljanju kakovosti programske opreme)
b) Preskušanje programske opreme (komercialne in lastno razvite) po področjih s poudarkom na telekomunikacijah, avtomatiki, elektroniki in energetski tehniki (funkcionalno in strukturno preskušanje, omejitve pri preskušanju programske opreme)
c) Zanesljivost programske opreme ter metode za izboljšanje le-te (praktični primeri iz vojaške, letalske in vesoljske industrije)
d) Izbira testnih primerov za preskušanje programske opreme (metoda enakovredne razdelitve, metoda robnih vrednosti, naključna izbira testnih primerov)
e) Statične tehnike preskušanja programske opreme ter njihova učinkovitost pri ugotavljanju napak v programski opremi
f) Merjenje, razvrščanje in vrednotenje programske opreme (metrične lestvice, hitrost izvajanja, zasedenost pomnilnika)
g) Ugotavljanje in zagotavljanje kakovosti programske opreme zasnovane na odprti kodi (Linux, Android, Open Office)
Predmet učimo na programih
Aplikativna elektrotehnika 1. stopnja
Cilji in kompetence
Cilj predmeta Kakovost programske opreme je razširiti in poglobiti znanje o osnovnih načinih ugotavljanja kakovosti programske opreme (vloga kakovosti programske opreme po področjih s poudarkom na telekomunikacijah, avtomatiki, elektroniki in energetski tehniki). Študent spozna osnovne pojme pri ovrednotenju kakovosti programske opreme (funkcionalnost, zanesljivost, uporabnost, učinkovitost, vzdrževalnost, prenosljivost). V sklopu predmeta, študent proučuje tipične načine preskušanja kakovosti programske opreme in jih izvede na praktičnih primerih, v okviru laboratorijskih vaj. Med predavanji je predstavljena povezava med programsko opremo in standardi tehniške kakovosti na različnih področjih. Študent preuči in ugotovi pomanjkljivosti in prednosti preskušanja programske opreme, ter preuči osnovne strategije izbiranja testnih primerov pri preskušanju programske opreme (uporaba referenčnih testnih primerov za preskušanje programske opreme). Študent poišče parametre kakovosti programske opreme zasnovane na odprti kodi
Metode poučevanja in učenja
V okviru predavanja so predstavljene teoretične osnove obravnavanih poglavij tehnologije programske opreme, skupaj s prikazom rešitev enostavnih praktičnih primerov. Študentom je na voljo študijski material s podrobno vsebino. Praktično delo poteka v okviru laboratorijskih vaj. Te so zasnovane v več delih, v katerih se študentje postopoma seznanjajo s problemom in zahtevami sodobne programske opreme. Projektno skupino sestavlja en študent, ki opravi vaje (uporaba referenčnih podatkov, analiza kakovosti programske opreme – komercialne in lastne razvite, …). Ob koncu semestra študentje poročajo o končnih rezultatih.
Predvideni študijski rezultati
Po uspešno opravljenem modulu naj bi bili študenti zmožni:
- Obvladovati osnovne pojme iz področja kakovosti programske opreme
- Razumeti kako je potrebno analizirati kakovost programske opreme
- Analizirati osnovne pojme pri kakovosti programske opreme
- Razumeti principe uporabe ter osnovne pojme o vlogi preskušanja programske opreme (omejitve, pričakovani rezultati, kako preizkušati programsko opremo …)
Temeljni viri in literatura
1. Bojkovski, J: Kakovost programske opreme ; zapiski predavanj; Fakulteta za elektrotehniko 2013
2. Dr. Marjan Pivka: ”Kakovost v programskem inženirstvu”, DESK, 1996
3. Glenford J. Myers, Corey Sandler, Tom Badgett, and Todd M. Thomas: “The Art of Software Testing”, John Wiley & Sons, 2011
4. B.P. Butler, M.G. Cox, S.L.R. Ellison and W.A. Hardcastle: ”Statistics Software Qualification-Reference Data Sets”, The Royal Society of Chemistry, 1999
5. Debra S. Herrmann: “Software Safety and Reliability: Techniques, Approaches, and Standards of Key Industrial Sectors”, Wiley-IEEE Computer Society Pr, 2000
6. ISO/IEC 25000 Software Engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Guide to SquaRE, 2014
7. Robin B. Hunter (Editor), Richard H. Thayer (Editor), Mark C. Paulk Software Process Improvement, 2001, Wiley-IEEE Computer Society Press