Tema 2 Kriterijumi kvaliteta za softverske proizvode DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Version: Feb. 20, 2004 (D Nov. 13, 2003) 1
2. Kriterijumi kvaliteta za softverske proizvode a) Koji kriterijumi kvaliteta su značajni za softverske proizvode? b) Kako se mogu klasifikovati? c) Standard ISO 9126 DAAD project Joint Course on Software Engineering 2 2
Motivacija Softversko inženjerstvo... bavi se ekonomičnim razvojem softvera visokog kvaliteta. (Pagel / Six, s. 49) značajno da razjasnimo: Koje karakteristike softvera određuju njegov kvalitet? Koje Koje kriterijume kvaliteta Vi Vi smatrate za za najznačajnije? DAAD project Joint Course on Software Engineering 3 3
Kriterijumi kvaliteta za softverske proizvode Cena Mogućnost testiranja... Ispravnost Pouzdanost Robustnost Kompatibilnost Portabilnost Modularnost SW - Kvalitet Efikasnost Okrenutost korisniku Lakoća održavanja Ponovno korišćenje Čitkost Skalabilnost Source: Books of Balzert, Pagel/Six, Sommerville, Pomberger DAAD project Joint Course on Software Engineering 4 4
Ispravnost Pouzdanost Ispravnost:? Program se ponaša onako kako treba odnosno, program specifikaciji zahteva (zadatku) Problemi:??? Softverski proizvod je ispravan, ali, ne postiže ono što je kupac očekivao. Pouzdanost:? Greške su retke i imaju samo beznačajne efekte. (Pagel,Six s. 53) DAAD project Joint Course on Software Engineering 5 5
Robustnost Robustnost:? Grubo: Savladavanje uticaja pogrešne okoline (greške u radu, pogrešne ulazne podatke, hardverske greške, izuzetne situacije) Precizno: Programski sistem je robustan, ako su (negativni) uticaji grešaka u radu, pogrešnih podataka, ili hardverskih grešaka, obrnuto proporcionalni verovatnoći pojave ovih grešaka u aplikaciji. (Pomberger, s. 9 / Kopetz) DAAD project Joint Course on Software Engineering 6 6
Skalabilnost: Portabilnost:? Scalabilnost Portabilnost? Proširivost u odnosu na određene parametre: veći skupovi podataka, veći broj korisnika,... Koliko je jednostavan prenos softvera na drugi računar ili drugi operativni sistem? Stepen nezavisnosti računara i operativnog sistema. Softver je portabilan, kada je trud oko prenosa na drugi računar značajno manji od nove implementacije. DAAD project Joint Course on Software Engineering 7 7
Lakoća održavanja okrenutost korisniku Lakoća održavanja:? Koliko se jednostavno softverski sistem može izmeniti za potrebe otklanjanja grešaka poboljšanja prenos? Faktori: Čitkost programa, dokumentovanost, modularnost Okrenutost korisniku:? (Pomberger s. 8) Definisano po podosobinama: Adekvatnost (recimo, mogući unos podataka mora korisniku biti ograničen na neophodan) Lakoća obuke Robustnost (ovde: deo osobina okrenutosti korisniku) DAAD project Joint Course on Software Engineering 8 8
2. Kriterijumi kvaliteta za softverske proizvode a) Koji kriterijumi kvaliteta su značajni za softverske proizvode? b) Kako se mogu klasifikovati? c) Standard ISO 9126 DAAD project Joint Course on Software Engineering 9 9
Cena... Klasifikacija? Ispravnost Pouzdanost Mogućnost testiranja Kompatibilnost Portabilnost Modularnost SW - Kvalitet Ponovno korišćenje Čitkost Robustnost Efikasnost Okrenutost korisniku Lakoća održavanja Skalabilnost Kako se ovaj skup kriterijuma kvaliteta može klasifikovati? DAAD project Joint Course on Software Engineering 10 10
KIasifikacija kriterijuma kvaliteta eksterni Kriterijumi kvaliteta interni spoljne (tokom izvršavanja) vidljive karakteristike: ono što korisnik može zapaziti (Def.: Meyer) Ispravnost Pouzdanost Skalabilnost Robustnost Efikasnost Kompatibilnost samo tokom rada na implementaciji (izvornom kodu): mogu zapaziti samo računarski stručnjaci Lakoća održavanja Čitkost Portabilnost Ponovno korišćenje (prema Meyer-u: spoljna osobina) Modularnost (npr. OO Softverska arhitektura) Mogućnost testiranja DAAD project Joint Course on Software Engineering 11 11
Kvalitet softvera sa raznih aspekata Kupac jeftin zahteva malo memorije brz poboljšava produktivnost rukovanja ispunjava zadatke kontinualno i korektno niski troškovi održavanja primenljiv u više aspekata Inženjer održavanja radi ono što očekujem brz jednostavan za korišćenje nudi željenu funkcionalnost bez ugrađenih grešaka jednostavan za savladavanje ne prekida rad dobra uputstva za upotrebu dobro dokumentovan nema mnogo grešaka greške lake za pronalaženje pouzdan relativno jednostavan za menjanje čitak kod lak za privikavanje jednostavan za unapređenje Korisnik From Pagel/Six S. 50/51 DAAD project Joint Course on Software Engineering 12 12
Interni i eksterni kriterijumi kvaliteta sa raznih aspekata Kupac Okrenutost korisniku Efikasnost Robustnost Pouzdanost Ispravnost Jednostavnost održavanja Korisnik Inženjer održavanja interni kriterijumi kvaliteta eksterni kriterijumi kvaliteta DAAD project Joint Course on Software Engineering 13 13
Interakcija između kriterijuma kvaliteta i njihovog uticaja na cenu i vreme Kriterijum kvaliteta Vreme Cena Criterijumi Utiče na Korektnost Pouzdanost Adekvatnost Jednostavnost učenja Robustnost Čitkost Izmenljivost/Proširivost Mogućnost testiranja Efikasnost Portabilnost Vreme razvoja Vreme trajanja Cena razvoja Cena rukovanja Cena održavanja Cena prenosa Ispravnost Pouzdanost Adekvatnost Jednostavnost učenja Robustnost Čitkost Izmenljivost/Proširivost Mogućnost testiranja Efikasnost Portabilnost + 0 0 + 0 0 0 0 0 + 0 0 + 0 0 0-0 0 0 + + 0 0 0 + - 0 0 0 0 0 0 0-0 0 + + + 0 0 + - - + + 0 0 + + + - + + + + 0 + 0 + - + + + 0 0 + 0 + - + - - + - - - - - - 0 0-0 0 + + 0 - - + - + - 0-0 - + + + - + + + - + - + - + + 0 - + - - - + - - - + 0 0 - + + - + 0 + + + 0 + + + 0 + + - + - - - - + + Source: Pomberger, Software Engineering and Modula 2 p. 12 DAAD project Joint Course on Software Engineering 14 14
2. Kriterijumi kvaliteta za softverske proizvode a) Koji kriterijumi kvaliteta su značajni za softverske proizvode? b) Kako se mogu klasifikovati? c) Standard ISO 9126 DAAD project Joint Course on Software Engineering 15 15
Kvalitet Tokom razvoja softvera, možemo uočiti razliku između kvaliteta softverskog proizvoda ISO 9126 razvojnog procesa softvera ISO 9000 (Topic 24) Koji aspekti su u današnje vreme značajniji? DAAD project Joint Course on Software Engineering 16 16
Kriterijumi kvaliteta softvera po ISO 9126 Kriterijumi kvaliteta softvera po ISO 9126 Funkcionalnost Pogodnost Tačnost Interoperability Saglasnost Bezbednost Pouzdanost Zrelost Osetljivost na greške Mogućnost oporavka Korisnost Razumljivost Jednostavnost učenja Lakoća rukovanja Efikasnost Ponašanje u vremenu Ponašanje prema resursima Lakoća održavanja Mogućnost analize Mogućnost izmene Stabilnost Mogućnost testiranja Portabilnost Adaptabilnost Mogućnost instalacije Podesivost Zamenljivost DAAD project Joint Course on Software Engineering 17 17
ISO 9126: definicija glavnih karakteristika Karakteristika Funkcionalnost Pouzdanost Korisnost Efikasnost Lakoća održavanja Portabilnost Kratak opis Stepen u kom softver zadovoljava zadate potrebe označene sledećim pod-osobinama: pogodnost, tačnost, interoperability, saglasnost i bezbednost. Količina vremena koliko je softver raspoloživ za upotrebu, označen sledećim pod-osobinama: zrelost, osetljivost na greške, mogućnost oporavka. Stepen u kojem je softber jednostavan za upotrebu označen sledećim pod-osobinama: razumljivost, jednostavnost učenja, lakoća rukovanja. Stepen u kojem softver optimalno koristi sistemske resurse, označen sledećim pod-osobinama: ponašanje u vremenu, ponašanje prema resursima. Jednostavnost kojom se mogu napraviti izmene na softveru, označena sledećim pod-osobinama: mogućnost analize, mogućnost izmene, stabilnost, mogućnost testiranja. Jednostavnost kojom se softver može premestiti iz jednog okruženja u drugo, označena sledećim pod-osobinama: adaptibilnost, mogućnost instalacije, podesivost, zamenljivost. DAAD project Joint Course on Software Engineering 18 18
Najznačajniji kriterijumi kvaliteta gledani sa aspekta industrije Cena Mogućnost testiranja... Ispravnost 1 Pouzdanost Robustnost Kompatibilnost Portabilnost Modularnost SW - Kvalitet 4 2 Efikasnost Okrenutost korisniku Lakoća održavanja 5 Ponovno korišćenje Čitkost 3 Skalabilnost implicitno: adekvatna funkcionalnost Source: Analyse und Evaluation der Softwareentwicklung in Deutschland, GfK Marktforschung GmbH, Fraunhofer Institute IESE, ISI, 2000 DAAD project Joint Course on Software Engineering 19 19