A szoftverfejlesztés minőségbiztosítása Dr. Balla Katalin minőségirányítási igazgató IQSYS Rt. „Az ügyviteli szoftverfejlesztés módszerei” konferencia
2 Tartalom Miért foglalkozunk a szoftver minőségével? A szoftverminőség összetevői A szoftverminőség „piaci” megfogalmazása Minőségi profil kialakítása Szoftverminőségi modellek A szoftverfejlesztés folyamatának minősége Szoftverfolyamat-fejlesztési modellek Következtetések
Miért foglalkozunk a szoftver minőségével? Mert a tapasztalat azt mutatja, hogy a szoftverben hibák lehetnek. Miért vannak hibák a szoftverben? –Komplex feladatok elvégzésénél az emberek követnek el hibákat, ez elkerülhetetlen –Tapasztalt programozók átlagban minden 10 forrássorban vétenek 1 hibát –Ezen hibák felét a gépnyelvre történő fordításkor kijavítják –A tesztelés során további hibák is kijavulnak, de a hibák 15%-a bent marad az ügyfélnek való átadáskor (Watts Humphrey: „What if your life depended on software?”Előadás a 2000-s EuroSPI konferemcián, Koppenhága, április) És mi van, ha a szoftver kritikus? Hány hiba lehet benne? Hogyan kezeljük ezeket a hibákat? Hogyan közelítsünk a szoftverminőséghez?
A szoftverminőség összetevői –Termék –Folyamatok –Erőforrások –Definíció –Minőségi attribútum –Mérőszám
A szoftverminőség összetevői Folyamat Termék Erőforrás Definíció Minőségi attribútum Mérőszám Objektumok Jellemzők
A szoftverminőség összetevői A minőséget értékelő személyétől / nézőpontjától / értékrendjétől – Felhasználó … érdekli: a szoftver használata, a szoftver teljesítménye, a használatának következményei (pl. funkcionalitás, megbízhatóság, hatékonyság, használhatóság, hordozhatóság)...nem érdekli a szoftver belső szerkezete sem az, hogy hogyan fejlesztették – Fejlesztő …a köztes termék-minőség, és a végtermék minősége (karbantarthatóság, tesztelhetőség...) – Menedzser …érdekli a minőség, átfogóan, a menedzsment szempontjából történő minőségjavítás (csúszások, költségtúllépések kiküszöbölése). … nem érdeklik specifikus minőségi attribútumok A szoftvergyártás típusától Rendszer típusától / szoftver alkalmazási területétől Üzletpolitikától... Mitől függ a szoftverminőség definíciója?
Á tadandók E lvárások A szoftverminőség „piaci” megfogalmazása Q = „Jó” a szoftver, ha: tetszik a felhasználónak, kielégíti az igényeit, azt csinálja, amit a felhasználó szeretne... időben, olcsón elkészül az átadáskor stabilan működik kevés hibát tartalmaz...
Minőségi profil kialakítása Lefordítási folyamat Lefordítási folyamat Minőségi profil Minőségi jellemzők / attribútumok Minőségi jellemzők / attribútumok Szoftver termék Szoftver termék Üzleti folyamat Üzleti folyamat Vevő / felhasználó
Minőségi profil kialakítása A fejlesztőnek és felhasználónak közösen kell kialakítania A minőségi profil tartalmaz folyamatra termékre erőforrásra vonatkozó minőségi attribútumokat. A szoftver készüljön el időre, ne lépje túl a szerződésben szereplő árat, használjon a felhasználónál meglévő technológiát Ha a szoftvertől emberi életek függhetnek: fontos az integritás, megbízhatóság, helyesség, ellenőrizhetőség Tartós „fogyasztási cikk”esetében fontos, hogy karbantartható, bővíthető, könnyen kezelhető, tanulható, jól dokumentált, „szép” felhasználói felületű legyen
Minőségi profil kialakítása A szoftverfejlesztés során a minőségi attribútumokat mérni, követni kell Legkönnyebben a projekt irányítási folyamat, legnehezebben a szoftver termék minőségi attribútumai határozhatók meg és mérhetők, de
Szoftverminőségi modellek ISO 9126 (Boehm, McCall )... Folyamat Termék Erőforrás Definíció Minőségi attribútum Mérőszám Objektumok Jellemzők PM módszertanok People CMM Weinberg... GQM ISO 9001:2000 CMM SPICE CMMI ISO TSP, PSP
Szoftvertermék alapú megközelítés: –Az ISO 9126 szabvány Szoftverminőségi modellek accuracy suitability interoperability compliance security understandability learnability operability time behaviour resource utilisation analysability changeability stability testability adaptability installability co-existence conformance replaceability quality in use functionality usability efficiency maintainability portability reliability maturity fault tolerance recoverability effectiveness productivity safety satisfaction availability
Szoftverminőségi modellek Erőforrás alapú megközelítés –PM módszertanokban hangsúlyos –P-CMM, szervezeti modellek, team-szerepek, vezetési stílusok, ösztönzési elméletek... –Erőforrások minősége –szám szerint mennyi és milyen típusú erőforrást használtunk fel. –az emberi erőforrás szakmai tapasztalata és termelékenysége –programozó teljesítménye: megírt LOC / ember-hónap – releváns? Folyamat alapú megközelítés –PM módszertanok (pl. PRINCE, PROPS, Ideal, BPMM...) –Tervezési, fejlesztési módszertanok (pl. RUP, SSADM...) –Folyamatok minősége tervezett és tényleges befejezés, ráfordítás, költség, projekt egészére és feladatokra tesztelési folyamat időtartama a tesztelés során megtalált hibák száma és súlyossága hibasűrűség egy modulban: hibák száma / modul mérete hibamegtalálási hatékonyság: megtalált hibák száma / összes hibák száma követelmények stabilitása: kezdeti követelmények száma / összes követelmény száma
A szoftverfejlesztés folyamatának minősége A szoftverminőség biztosításának egyik (viszonylag egyszerű, mert érthető) módja az, hogy szoftver fejlesztési folyamatra koncentrálunk, azt próbáljuk kézben tartani, fejleszteni. Az ilyen, (szoftver)folyamat-fejlesztési modellek és szabványok manapság népszerűek, mert az üzleti életben elfogadottak, tanúsíthatók... Bátran alkalmazzuk őket! (És még hasznosak is!)
Szoftverfolyamat-fejlesztési modellek ISO 9001:2000 CMM : Capability Maturity Model SPICE / ISO (S oftware P rocess I mprovement and C apability d E termination) CMMI: Capability Maturity Model Integration
A projektek tipikusan átlépik az idő- és költségkeretet 1 A projekt tervezés és vezetés megfelelő Szoftver konfigurációkezelés Szoftver minőségbiztosítás Szoftver alvállalkozók kezelése Szoftver projekt követés & felügyelet Szoftver projekt tervezés Követelmények menedzsmentje Hatékony módszerek léte 2 A termékminőség lényeges javulása Kölcsönös szemlék Csoportok közötti koordináció Szoftver termék fejlesztés Integrált szoftver menedzsment Képzési terv Szervezeti szintű folyamatok meghatározása Odafigyelés a folyamatokra A leghatékonyabb módszerek dokumentáltak és minden projektben használtak 3 A termelékenység és a ciklusidő javulása Szoftver minőség menedzsment Mennyiségi folyamat menedzsment A hatékonyság, hatásosság, termelékenység és minőség mennyiségi biztosítása 4 Termelékenység és ciklus idő javítása Folyamat változás menedzsment Technológia változás menedzsment Hibamegelőzés Javításra felhasznált mennyiségi visszacsatolás 5 A CMM jellemzői Szoftverfolyamat-fejlesztési modellek
Szoftverfolyamat-fejlesztési modellek A CMM tanúsítása –A világon 2150 szoftvercéget mértek fel 1997 és 2003 között, projektet, ebből : 2001-ben2002-ben:2003:ban: 1-es szinten: 27.1 %19.3 %13.3% 2-es szinten: 39.1 %43.2 %43.5% 3-as szinten: 23.4 %23.4%25.6% 4-es szinten: 5.4 %7.3%8.5% 5-ös szinten: 4.8 %6.8%9.2% Forrás:
Szoftverfolyamat-fejlesztési modellek Folyamatok Folyamat érettségi szintek 0. Nem létező 1. Végrehajtott 2. Menedzselt 3. Meghatározott 4. Jósolható 5. Optimalizált Vevővel-értékesítővel kapcs. Fejlesztési Támogató Menedzsment Szervezeti A SPICE modell logikája
Szoftverfolyamat-fejlesztési modellek A lépcsős megközelítés a folyamatokat 5 szervezeti érettségi szinthez (maturity levels) társítja, ezzel támogatva és vezérelve a folyamatjavítást. 1.Kezdeti (Initial) 2.Menedzselt (Managed) 3.Meghatározott (Defined) 4.Minőségileg menedzselt (Quantitatively Managed) 5.Optimalizáló (Optimizing) A folytonos megközelítés 6 képességi szintet határoz meg, bármely folyamatra 0.Hiányos (Incomplete) 1.Végrehajtott (Performed) 2.Menedzselt (Managed) 3.Meghatározott (Defined) 4.Minőségileg menedzselt (Quantitatively Managed) 5.Optimalizáló (Optimizing ) A CMMI szerkezete
Szoftverfolyamat-fejlesztési modellek 2. Szint (projekt központú): –Követelménykezelés, projekt tervezés és vezérlés, beszállítók kezelése, mérés és elemzés, termék és folyamat minőségbiztosítás, konfigurációkezelés 3. Szint (szervezet központú): –Követelmények meghatározása, műszaki megoldások, termék integráció, termék ellenőrzés, termék igazoló ellenőrzése, szervezeti szintű folyamatok léte, szervezeti szintű folyamatok meghatározása, szerv szintű képzés, integrált termék menedzsment, kockázatkezelés, döntéselemzés és támogatás 4. Szint (mennyiségi kontroll): –Szervezeti szintű folyamatok teljesítménye, mennyiségi projekt menedzsment 5. Szint (folytonos javítás): –Szervezeti szintű innováció és bevezetés, eseti elemzés és döntéskezelés Folyamat menedzsment –Szervezeti szintű folyamatok léte, szervezeti szintű folyamatok meghatározása, szervezeti szintű képzés, szervezeti szintű folyamatok hatékonysága, szervezeti szintű innováció és bevezetés Projekt menedzsment: –Projekt tervezés, projekt követés és vezérlés, beszállítók kezelése, integrált projekt menedzsment, kockázatkezelés, integrált csapat- építés, mennyiségi projekt menedzsment Fejlesztés: –Követelmények meghatározása, követelménymenedzsment, műszaki megoldások,termék integráció, ellenőrzés,igazoló ellenőrzés Support –Konfigurációkezelés, folyamat és termék minőségbiztosítás, mérés és elemzés, integrációra alkalmas szervezeti környezet, döntés elemzés és támogatás,eseti elemzés és döntés CMMI lépcsős megközelítés elemek A CMMI folytonos megközelítés elemek
Auditálás a CMMI modell alapján –SCAMPI audit módszertan (Standard CMMI Assessment Method for Process Improvement) –2002.április és Június között a SEI-nek jelentett SCAMPI felmérések: 100 felmérés 93 szervezet 52 cég 6 újrafelmért cég 357 projekt 54% USA-n kívüli Szoftverfolyamat-fejlesztési modellek
Szoftverfolyamat-fejlesztési modellek Választás a modellek között –ISO 9001:2000 – piaci alapkövetelmény, szükségszerűség –(+ szakirányú szabvány, pl. orvosi, autóipari...) –Erre épülhet rá pl. a CMM vagy CMMI –CMM – 2005 decemberig auditálják –CMMI – folyamatosan auditálják Választás a CMMI elemei között: –Függ a vállalat céljaitól, korábbi tapasztalatától –Lépcsős vagy folytonos? Folytonos modell –könnyen tanítható, nehezebben használható Lépcsős modell –nehezen tanítható, könnyebben használható –Mindenképpen a nekünk megfelelőt kell választani!
Következtetések A szoftverminőségi modellek segítenek eligazodni a sok létező megközelítés között Manapság a folyamatfejlesztési modellek és módszertanok népszerűek Manapság már nem elegendő egyetlen modell (pl. ISO 9001:2000) alkalmazása