250 likes | 395 Views
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 2004.04.29. Tartalom. Miért foglalkozunk a szoftver minőségével? A szoftverminőség összetevői A szoftverminőség „piaci” megfogalmazása
E N D
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 2004.04.29.
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, 2000. á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
Mérőszám Minőségi attribútum Definíció Termék Erőforrás A szoftverminőség összetevői Jellemzők Objektumok Folyamat
A szoftverminőség összetevői Mitől függ a szoftverminőség definíciója? • 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
Átadandók Elvá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...
Üzleti folyamat Vevő / felhasználó Szoftver termék Minőségi profil kialakítása Minőségi jellemzők / attribútumok Lefordítási folyamat Minőségi profil
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. Példák • 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 a meghatározás és mérés sosem egyszerű! Ismert, kipróbált modellek segíthetnek!
GQM ISO 9126 (Boehm, McCall)... Jellemzők Mérőszám ISO 9001:2000 CMM SPICE CMMI ISO 15504 TSP, PSP Minőségi attribútum Definíció Objektumok Folyamat Termék Erőforrás PM módszertanok People CMM Weinberg... Szoftverminőségi modellek
accuracy suitability functionality interoperability compliance security maturity fault tolerance reliability recoverability availability understandability usability learnability quality in use operability time behaviour efficiency resource utilisation analysability effectiveness changeability maintainability productivity stability safety testability satisfaction adaptability installability portability co-existence conformance replaceability Szoftverminőségi modellek • Szoftvertermék alapú megközelítés: • Az ISO 9126 szabvány
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
(És még hasznosak is!) A szoftverfejlesztés folyamatának minősége Csak közben meg ne feledkezzünk a termékről! • 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!
Szoftverfolyamat-fejlesztési modellek • ISO 9001:2000 • CMM : Capability Maturity Model • SPICE / ISO 15504 (Software Process Improvementand Capability dEtermination) • CMMI: Capability Maturity Model Integration
5 Javításra felhasznált mennyiségi visszacsatolás Folyamat változás menedzsment Technológia változás menedzsment Hibamegelőzés Termelékenység és ciklus idő javítása 4 A hatékonyság, hatásosság, termelékenység és minőség mennyiségi biztosítása Szoftver minőség menedzsment Mennyiségi folyamat menedzsment A termelékenység és a ciklusidő javulása 3 A leghatékonyabb módszerek dokumentáltak és minden projektben használtak 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 termékminőség lényeges javulása 2 Hatékony módszerek léte 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 A projekt tervezés és vezetés megfelelő 1 A projektek tipikusan átlépik az idő- és költségkeretet 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, 11823 projektet, ebből : 2001-ben 2002-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: http://www.sei.cmu.edu/sema/pdf/2003sepSwCMM.pdf
Szoftverfolyamat-fejlesztési modellek • A SPICE modell logikája Folyamat érettségi szintek Folyamatok 5. Optimalizált 4. Jósolható • Vevővel-értékesítővel kapcs. • Fejlesztési • Támogató • Menedzsment • Szervezeti 3. Meghatározott 2. Menedzselt 1. Végrehajtott 0. Nem létező
Szoftverfolyamat-fejlesztési modellek • A CMMI szerkezete • 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)
Szoftverfolyamat-fejlesztési modellek CMMI lépcsős megközelítés elemek A CMMI folytonos megközelítés elemek • 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
Szoftverfolyamat-fejlesztési modellek • Auditálás a CMMI modell alapján • SCAMPI audit módszertan (Standard CMMI Assessment Method for Process Improvement) • 2002.április és 2003. 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 • 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 már nem elegendő egyetlen modell (pl. ISO 9001:2000) alkalmazása • Manapság a folyamatfejlesztési modellek és módszertanok népszerűek DE ne feledjük: a szoftver minősége több összetevőből áll!
Köszönöm a figyelmet! balla.katalin@iqsys.hu