KVALITA SOFTVÉRU Martin JEDLIČKA KAIA MtF STU Trnava
Štruktúra prezentácie 1. Rozdielne chápanie kvality softvéru 2. Súbor noriem ISO 9000:2000 3. CMMI 4. SPICE (ISO 15504) 5. Východiská a zhodnotenie 6. Diskusia
Klasický pohľad na kvalitu miera splnenia vopred definovaných požiadaviek (charakteristík) kvality s cieľom dosiahnuť bezchybný softvérový produkt verifikácia = vytvárame produkt správne?
Moderný pohľad na kvalitu miera splnenia vopred definovaných požiadaviek užívateľa (zákazníka), rovnako aj jeho očakávaní validácia = vytvárame požadovaný produkt?
Statické chápanie kvality softvéru statický pohľad = chápanie kvality na základe posudzovania softvérového produktu prostredníctvom súboru charakteristík kvality viacero modelov kvality (Boehm, Raasch, McCall, ISO/IEC 9126)
Charakteristiky kvality podľa ISO/IEC 9126 Kvalita softvérového produktu Funkčnosť (functionality) Bezporuchovosť (reliability) Použiteľnosť (usability) Účinnosť (efficiency) Udržiavateľnosť (maintability) Prenositeľnosť (portability) vhodnosť presnosť spolupráca bezpečnosť zhoda zrelosť chybová odolnosť obnoviteľnosť zhoda zrozumiteľnosť zvládnuteľnosť prevádzková spôsobilosť zhoda využitie času využitie zdrojov zhoda analyzovateľnosť zmeniteľnosť stabilita testovateľnosť zhoda adaptabilita inštalovateľnosť prispôsobivosť nahraditeľnosť zhoda
Metriky interné používajú sa na meranie vnútorných charakteristík hotových softvérových produktov alebo medziproduktov počas návrhu a implementácie softvérového produktu externé vychádzajú z požiadaviek užívateľa na softvérový produkt a odvodzujú sa z chovania systému, ktorého je softvérový produkt súčasťou
Kvalita softvérových procesov dynamický pohľad = chápanie kvality na základe riadenia procesov vývoja softvéru proces = usporiadané množina krokov, ktorá vedie k požadovanému cieľu [HELEŠIC] zložky procesu: 1. činnosti, ktoré sa majú vykonať; 2. úlohy a zodpovednosti zainteresovaných; 3. metriky využívajúce sa pre plánovanie, sledovanie a zlepšovanie procesov; 4. produkty, ktoré majú byť vytvorené; 5. nadväznosti činností v procese; 6. techniky a nástroje používané na vykonávanie činností
Riadenie softvérových procesov jedna z možností - posudzovanie existujúcich procesov s procesmi podľa referenčného modelu zložky posudzovania procesov: 1. referenčný model procesov (CMM, SPICE, ISO 12207) 2. metódy posudzovania procesov (SCE, ISO 15504, ISO 9001, TickIT) 3. nástroje posudzovania procesov (dotazníky, interview, skupinové diskusie, atď.)
Súbor noriem ISO 9000:2000 efektívne implementovanie a prevádzkovanie efektívnych systémov manažérstva kvality [BÍLY] ISO 9000 - opisuje podstatu systémov manažérstva kvality a špecifikuje terminológiu systémov kvality ISO 9001 - špecifikuje používateľské požiadavky na systémy manažérstva kvality ISO 9004 - poskytuje návod na systémy manažérstva kvality, vrátane procesov kontinuálneho zlepšovania
ISO 9000-3 aplikácia ISO 9001:1994 pri vývoji, dodávke, inštalácii a údržbe softvéru štruktúra nie je totožná s ISO 9001:1994 zaoberá sa nielen samotným procesom vývoja softvéru, kde sa opiera o princípy softvérového inžinierstva, ale aj komunikáciou medzi dodávateľom softvéru a zákazníkom, obchodnými a zmluvnými otázkami model procesov ISO 12207
Zhodnotenie ISO 9000-3 + procesné chápanie + nezávislosť od veľkosti organizácie a používaných techník + certifikačná procedúra podľa ISO 9001 - zastaranosť - jednorozmerné chápanie - implicitné formulovanie (čo sa má vykonať)
CMMI Capability Maturity Model Integration (Integrovaný model spôsobilosti a zrelosti procesov) SEI (Software Engineering Institute) pri Carnegie Mellon University kvalita softvérového produktu je determinovaná kvalitou procesov, ktoré sa používajú pri jeho vývoji a neskoršej údržbe integruje a využíva najlepšie praktiky metodík SW-CMM, SE-CMM a IPD-CMM
Základné pojmy CMMI Spôsobilosť (Capability) -označuje úroveň akou je organizácia schopná riadiť procesy, kontrolovať náklady a časový plán v rámci jednej procesnej oblasti alebo špecifickej praktiky. Zrelosť (Maturity) - označuje úroveň akou je organizácia riadiť procesy, kontrolovať náklady a časový plán v rámci celého súboru procesných oblastí naprieč celou organizáciou. [KIRBY]
Reprezentácie CMMI dve reprezentácie: 1. stupňovitá reprezentácia 2. kontinuálna reprezentácia príčiny existencie 2 reprezentácií: 1. dôsledok integrácie predchádzajúcich modelov SW-CMM (stupňovitá), SE-CMM (kontinuálna) a IPD-CMM (hybridná) 2. nejednotnosť realizačného tímu
Stupňovitá prezentácia CMMI OPTIMALIZUJÚCE (5) Kontinuálne zlepšovanie procesov KVATITATÍVE RIADEÉ (4) Kvantitatívny manažment DEFIOVAÉ (3) Štandardizácia procesov RIADEÉ (2) Základný projektový manažment VYKOÁVAÉ (1)
Úroveň 5 odhad čas, náklady Úroveň 4 odhad čas, náklady Úroveň 3 odhad čas, náklady Úroveň 2 odhad čas, náklady Úroveň 1 odhad čas, náklady pravdepodobnosť pravdepodobnosť pravdepodobnosť pravdepodobnosť pravdepodobnosť
Stupňovitá reprezentácia CMMI zrelosť softvérovej organizácie okrem 1. úrovne každá úroveň obsahuje viacero procesných oblastí (PAs) každá PA obsahuje praktiky navrhnuté pre dosiahnutie cieľov konkrétnej PA ak softvérová organizácia dosiahne ciele všetkých procesných oblastí v rámci jednej úrovne, tak dosiahla stupeň zrelosti (maturity level)
Kontinuálna reprezentácia Spôsobilosť procesu 5. Úroveň Optimalizujúca 4. Úroveň Kvantitatívne riadená 3. Úroveň Definovaná 2. Úroveň Riadená 1. Úroveň Vykonávaná 0. Úroveň ekompletná Oblasť procesu Oblasť procesu Oblasť procesu Proces
Zhodnotenie CMM + systémový prístup + štandardizácia softvérových procesov + možné porovnanie medzi viacerými organizáciami - dve reprezentácie - vzťah medzi kvalitou produktov a spôsobilosťou procesov (resp. zrelosťou organizácie) nie je garantovaný - možnosť hodnotenia dotazníkov (Áno, ie)
SPICE (ISO/IEC 15504) Software Process Improvement and Capability determination (1991) r.1996 - ISO/IEC TR 15504 - Posudzovanie softvérových procesov
Architektúra modelu Architektúra modelu Procesná oblasť Úroveň spôsobilosti Proces Všeobecná funkcia Základná praktika Všeobecná praktika
Kategórie procesov Zákaznícko-dodávateľské Projektové Organizačné Inžinierske P o d p o r n é
Kategórie procesov, základné procesy a základné praktiky kategória procesov zoskupuje príbuzné procesy prostredníctvom príbuzných aktivít základných procesov (35) pozostáva z viacero základných praktík základná praktika je inžinierska alebo manažérska softvérová aktivita, ktorá sa týka cieľa príslušného procesu (sú zoskupené podľa kategórií procesov)
Príklad procesov a základných praktík pre Zákaznícko-dodávateľské procesy CUS) CUS.1 CUS.2 CUS.3 Obstaranie softvérového produktu a/alebo služby Vytvorenie kontraktu Identifikovanie potrieb zákazníka CUS.3.1 Získanie požiadaviek zákazníka CUS.3.2 Pochopenie očakávaní zákazníka CUS.3.3 Informovanie zákazníka CUS.4 Vykonanie spoločných auditov a previerok CUS.5 Balenie, dodávka a inštalovanie softvéru CUS.6 Podpora prevádzky softvéru CUS.7 Poskytovanie zákazníckeho servisu CUS.8 Hodnotenie spokojnosti zákazníka
Spôsobilosť procesu, všeobecné funkcie a praktiky spôsobilosť procesu je súbor všeobecných funkcií, ktoré spolupôsobia pri vykonávaní procesu na zlepšenie jeho spôsobilosti všeobecná funkcia je súborom všeobecných praktík, ktoré reprezentujú aktivity nevyhnutné pre riadenie procesu a jeho zlepšovanie za účelom dosiahnutia požadovaných výstupov všeobecná praktika je aplikovateľná na ľubovoľný proces
Príklad spoločných funkcií a všeobecných praktík 1.1 Vykonávanie základných praktík 2.1 Plánované vykonávanie 2.1.1 Stanovenie zdrojov 2.1.2 Stanovenie zodpovedností 2.1.3 Dokumentovanie procesu 2.1.4 Zabezpečenie nástrojov 2.1.5 Zaistenie školení 2.1.6 Plánovanie procesu 2.2 Disciplinované vykonávanie 2.3 Verifikované vykonávanie 2.4 Sledované vykonávanie
Úrovne spôsobilosti 1. evykonávané (medziprodukty a výstupy procesov nie je možné ľahko identifikovať) 2. Vykonávané neformálne (vykonávanie je závislé od individuálnych znalostí a snahy; vykonávanie sa neplánuje a nesleduje; medziprodukty sú ľahko identifikovateľné a testované) 3. Plánované a sledované (uplatňovanie základných praktík je plánované, sledované a verifikované; medziprodukty sa riadia podľa štandardov a požiadaviek) 4. Jasne stanovený (procesy sú verifikované a prispôsobené podľa existujúcich štandardov; podrobné dokumentovanie procesov) 5. Kvantitatívne riadený (podrobné meranie vykonávania; kvantitatívne chápanie spôsobilosti procesu) 6. Kontinuálne zlepšovanie (určujú sa ciele pre zlepšenie efektivity procesov na základe kvantitatívnych charakteristík)
Dvojrozmerný model Spôsobilosť procesu Procesy 5. úrovne Procesy 4. úrovne Procesy 3. úrovne Procesy 2. úrovne Procesy 1. úrovne Procesy 0. úrovne Zákaznícko - dodávateľsky Inžiniersky Projektový Podporný Organizačný Proces
Atribúty procesov predstavujú súbor merateľných charakteristík pri posudzovaní úrovne spôsobilosti procesu profil spôsobilosti procesu Úroveň 0 Úroveň 1 Úroveň 2 Úroveň 3 Úroveň 4 Úroveň 5 Atribút vykonávania procesu L F F F F Atribút riadenia vykonávania L F F F Atribút riadenia medziproduktu L F F F Atribút definovania procesu L F F Atribút zabezpečenia zdrojov procesu L F F Atribút merania procesu L F Atribút riadenia procesu L F Atribút zmeny procesu L Atribút kontinuálneho zlepšovania L
Zhodnotenie ISO 15504 (SPICE) + vychádza z ISO 12207 + nezávislosť na veľkosti organizácie a použitých technikách + proces posudzovania procesov overený praxou (časť 5) + procesný profil - absencia certifikačných procedúr
Východiská nejednoznačnosť vzťahov medzi produktovým a procesným chápaním kvality softvéru štruktúra zabezpečovania kvality softvéru: 1. manažment kvality (procesná orientácia) 2. model kvality (charakteristiky kvality) 3. požiadavky kvality (stanovanie požiadaviek) 4. meranie kvality (model merania, metriky) 5. hodnotenie kvality (posúdenie kvality vzhľadom na požiadavky, certifikácia)
Literatúra 1. BÍLY, M. Súbor návrhov noriem. Bratislava: Slovenský ústav technickej normalizácie, 2000 2. HELEŠIC, J. Semestrální projekt. Brno: FEI VUT. http://www.helesic.cz/download/semproj.zip 3. ISO/IEC 9126:1991, Information technology Software product evaluation Quality characteristics and guidelines for their use 4. ISO/IEC 9000-3:1997, Guidelines for the application of ISO 9001:1994 to the development, supply, installation and maintenance of computer software 5. ISO/IEC PDTR 15504, Information Technology Software Process Assessment Part 2: A reference model for process and process capability 6. KIRBY, W. Capability Maturity Model Integration (CMM). http://www.cs.unb.ca/itc/resources/spin.ppt (august 2004) 7. PHILLIPS, M. CMMI v.1.1 Tutorial. Carnegie Mellon University: 2003. http://www.sei.cmu.edu/cmmi/presentations/euro-sepg-tutorial/sld001.htm