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) 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 1
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 Kriterijumi kvaliteta za softverske proizvode Cena... Ispravnost Kompatibilnost Modularnost SW - Kvalitet 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 2
Ispravnost 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. :? Greške su retke i imaju samo beznačajne efekte. (Pagel,Six s. 53) DAAD project Joint Course on Software Engineering 5 :? 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 3
Scalabilnost Skalabilnost:? 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 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 (ovde: deo osobina okrenutosti korisniku) DAAD project Joint Course on Software Engineering 8 4
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 Cena Kompatibilnost Modularnost... Ponovno korišćenje Čitkost Klasifikacija? Ispravnost SW - Kvalitet Okrenutost korisniku Lakoća održavanja Skalabilnost Kako se ovaj skup kriterijuma kvaliteta može klasifikovati? DAAD project Joint Course on Software Engineering 10 5
Ispravnost Skalabilnost Kompatibilnost KIasifikacija kriterijuma kvaliteta eksterni spoljne (tokom izvršavanja) vidljive karakteristike: ono što korisnik može zapaziti (Def.: Meyer) Kriterijumi kvaliteta interni samo tokom rada na implementaciji (izvornom kodu): mogu zapaziti samo računarski stručnjaci Lakoća održavanja Čitkost Ponovno korišćenje (prema Meyer-u: spoljna osobina) Modularnost (npr. OO Softverska arhitektura) DAAD project Joint Course on Software Engineering 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 6
Interni i eksterni kriterijumi kvaliteta sa raznih aspekata Kupac Okrenutost korisniku Ispravnost Jednostavnost održavanja Korisnik Inženjer održavanja interni kriterijumi kvaliteta eksterni kriterijumi kvaliteta DAAD project Joint Course on Software Engineering 13 Interakcija između kriterijuma kvaliteta i njihovog uticaja na cenu i vreme Kriterijum kvaliteta Vreme Cena Criterijumi Utiče na Korektnost Adekvatnost Jednostavnost učenja Čitkost Izmenljivost/Proširivost Vreme razvoja Vreme trajanja Cena razvoja Cena rukovanja Cena održavanja Cena prenosa Ispravnost Adekvatnost Jednostavnost učenja Čitkost Izmenljivost/Proširivost + 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 7
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 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 8
Kriterijumi kvaliteta softvera po ISO 9126 Kriterijumi kvaliteta softvera po ISO 9126 Funkcionalnost Pogodnost Tačnost Interoperability Saglasnost Bezbednost Zrelost Osetljivost na greške Mogućnost oporavka Korisnost Razumljivost Jednostavnost učenja Lakoća rukovanja Ponašanje u vremenu Ponašanje prema resursima Lakoća održavanja Mogućnost analize Mogućnost izmene Stabilnost Adaptabilnost Mogućnost instalacije Podesivost Zamenljivost DAAD project Joint Course on Software Engineering 17 ISO 9126: definicija glavnih karakteristika Karakteristika Funkcionalnost Korisnost Lakoća održavanja 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 9
Najznačajniji kriterijumi kvaliteta gledani sa aspekta industrije Cena... Ispravnost 1 Kompatibilnost Modularnost SW - Kvalitet 2 4 Okrenutost korisniku Lakoća održavanja 5 Ponovno korišćenje Čitkost Skalabilnost 3 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 10