Kvalita procesu vývoje SW Jaroslav Žáček jaroslav.zacek@osu.cz
Vývoj software a jeho kvalita Samotný vývoj je rozsáhlá a složitá disciplína. Většina SW projektů (v průměru 70 %) je podhodnocena či zpožděna. Důvody: disciplína vývoje SW je relativně nová SW je v principu jiný produkt (oproti stavebnictví, automobilovému průmyslu) každý SW na zakázku je unikátní vzdáleně podobný výzkumné činnosti, vytváření duševního vlastnictví, ovšem je kladen velký důraz na kvalitu...
Jak je definována kvalita? Existuje spoustu definicí (odezva zákazníků, certifikace). Definice: Kvalita je stupeň spokojenosti zákazníka při kombinaci různých faktorů. Faktory (nejčastěji tvrdé metriky): počet chyb v produktu zpoždění zavádění změn délka záruky dostatečná podpora
zajištění kvality QA (Quality assurance) - vytvoření a správa aktivit, které můžou pomoci dodržet požadovanou kvalitu Existuje univerzální návod? Možné způsoby: zaměření na procesy a jejich zlepšení metody pro minimalizaci chyb v kódu hlídání rizik projektu (risk list) správa požadavků a změn...
zajištění kvality Existuje spoustu aktivit pro zajištění kvality. Existuje spoustu technologií pro řízení kvality. Zákazníci požadují implementaci technik od dodavatelů. ISO 9001:2000 QS 9000 PMBOK CMMI Prince 2
Co je CMMI CMMI - Capability Maturity Model (Integration) Je to model kvality určený pro vývojové týmy. Definuje oblasti pro zlepšení a cíle, kterých se má pro zlepšení dosáhnout. Samotný model je zdarma, certifikace už ne (cca 2000$/den práce).
Proč CMMI (nebo jiný model kvality)? Zákazníci ho zpravidla vyžadují, bez certifikace nezískáte zakázku. Ostatní přínosy: Je to dobrá značka (viz. všichni chtějí ISO 9001). Minimalizuje chyby v procesu. Zlepšuje kvalitu doručeného produktu - zvyšuje přidanou hodnotu a šetří peníze. Zlepšuje projektové řízení.
Jak se vytváří standard Zeptejte se společností (SW) na jejich zkušenosti. Analyzujte současné i minulé projekty. Vytvořte sadu doporučení (best practices). Definujte standard... a vytvoříte CMM
CMM/CMMI Vytvořeno SEI na Carnegie Mellon University v roce 1991 (verze 1.0). Financováno grantem Ministerstva obrany (DoD) pro jejich projekty (vzpomeňte na vodopád). Je zaměřen na definici, standardizaci a neustálé vylepšování vývojového procesu.
Historie CMM v1.0 SW-CMM (software development) P-CMM (people management) SA-CMM (software acquisition) V roce 2000 integrovány ostatní modely (SPICE=ISO 15 504) s SW a SE - v1.1 SW-CMM (software development) SE-CMM (system engineering)... V roce 2006 verze 1.2, reprezentace SW a SE jsou spojeny od jednoho pohledu. V roce 2012 verze 1.3, přidává agilní způsob vývoje.
Použití Jedná se převážně o americký standard 50% certifikací na CMMI pochází z USA Je vyžadován pro vládní zakázky Japonsko se také zaměřuje na kvalitu 30% certifikací na CMMI Certifikaci procesů vyžadují odběratelé Indie tzv. software factory 10% certifikací
Použití Evropa je v implementaci standardů kvality odlišná EU (vč. CZ) se zaměřuje převážně na ISO normy. Vývoj SW nemá dlouhou tradici v porovnání s USA. Důvod pro zavedení CMMI je převážně vstup na trh v USA, v regionu CE, EE navíc levní programátoři a kvalita je konkurenční výhodou.
Vyzrálost procesů
Vyzrálost procesů
Příklad - oblast security
Proces / procesní oblasti (PA) Fakticky v CMMI není žádný proces. Rozděleno do Procesních oblastí - ve verzi 1.3 je jich 22. PA jsou přítomny v každé úrovni modelu (levels). Level 2-7 oblastí Level 3-11 oblastí Level 4-2 oblasti Level 5-2 oblasti PA jsou sdruženy ve skupinách např. level 2 má 4 PA pro podporu procesů a 3 PA pro projektového řízení
Organizace CMMI Skládá se ze čtyřech základních skupin: 1. Project management 1. Jak naplánovat projekt 2. Jak sledovat projekt 3. Jak sledovat a řídit rizika 2. Process management 1. Definice procesů společnosti 2. Jak měřit proces 3. Engineering 1. Jak na analýzu 2. Jak na kódování 4. Support processes 1. Jak definovat etalon pro měření 2. Jak udělat vnitřní audit
Skupiny CMMI
Skupiny a procesní oblasti
Příklad PA a skupiny na úrovni 2 Requirements management Project planning Project tracking Executive area Projekt Configuration management Quality assurance Measurement and analysis Support area
PA na úrovni 2 Requirements management (REQM) získání požadavků monitorování změn v požadavcích identifikaci rozporů v požadavcích Project planing (PP) odhad pracnosti vytvoření projektového plánu hlídání závazků v PP(např. milníky) Project monitoring and control (PMC) sledování projektového plánu řešení nesrovnalostí
PA na úrovni 2 Product and process quality assurance (PPQA) ohodnocení procesů a produktů provedení interních auditů Measurement and analysis (MA) měření procesů komunikace výsledků Supplier arguments management (SAM) ohodnocení dodavatele definuj proces pro nákup produktu
Cíle a praktiky Každá PA má definovány cíle (goals). Každý cíl má své praktiky (practices). Abychom dosáhli vyšší úrovně, musíme splnit cíle -> cíle jsou povinné. Splnění praktik je pouze doporučeno -> zde je prostor pro vlastní iniciativu/nové řešení CMMI definuje pro každou praktiku také pod-praktiku (sub-practices) typický výstupní produkt.
Příklad CMMI pro Configuration Management říká: 1. Musíte mít definovánu základní úroveň. 2. Musíte mít definováno řízení změn. 3. Musíte zajistit integritu } Cíle Pro bod 3) pak definuje např. uchovávejte záznamy o CM provádějte audit } Praktiky
Příklad L2, PA Configuration Management nám říká: 3. Musíte zajistit integritu (a doporučuje) uchovávejte záznamy o CM provádějte audit (což znamená) 1. vytvoř základní podmínky pro audit 2. zkontroluj reálný a plánovaný stav 3. zkontroluj procedury a jejich popis 4. hlídej produkty CM typický produkt: zpráva auditora
Konkrétní cíle a praktiky Konkrétní praktika Konkrétní cíl
Obecné cíle Obecné cíle (generic goals) se v podstatě překrývají s úrovní modelu. Pokud tedy model dosahuje úrovně 2, splňuje GG2 - Proces funguje jako řízený proces. Všechny praktiky v příslušné PA musí splňovat tento obecný cíl.
Obecné cíle Obecné cíle PA