1 / 27

Szoftverminőség monitorozás forráskód alapján

Szoftverminőség monitorozás forráskód alapján. Dr. Beszédes Árpád Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék. “You can’t manage what you can’t control, and you can’t control what you don’t measure.” (Tom DeMarco). Szoftvermérés.

Download Presentation

Szoftverminőség monitorozás forráskód alapján

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Szoftverminőség monitorozás forráskód alapján Dr. Beszédes Árpád Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Szoftvertechnológiai Fórum

  2. “You can’t manage what you can’t control, and you can’t control what you don’t measure.”(Tom DeMarco) Szoftvertechnológiai Fórum

  3. Szoftvermérés • DeMarco: Csak mérés alapján végezhetjük a minőségmenedzsmentet • Igen, mérjünk, de mit? • Minőségkezelés eredeti alapfeltevése: • Fejlesztési folyamat minősége meghatározza a termék minőségét • Erre építenek a különböző minőségirányítási rendszerek: ISO, CMMI Szoftvertechnológiai Fórum

  4. Szoftvermérés (folyt.) • Azonban, két alapvető módon befolyásolhatjuk a vezetői döntéshozatalt: • Vezérlési metrikákkal. Folyamattal kapcsolatosak, pl. egy hiba javításához szükséges átlagos idő (folyamat és projekt metrikák) • Prediktor metrikákkal. Termékkel kapcsolatosak, pl. LOC, ciklomatikus komplexitás, osztály metódusainak száma, kódolási szabályok megsértésének mértéke (termék metrikák) Szoftvertechnológiai Fórum

  5. Termékmetrikák jelentősége • Minőségirányítási rendszer bevezetésekor már létezik a szoftver egy verziója • Fejlesztés további része Karbantartás és Továbbfejlesztés lesz (termékmenedzsment) • A teljes életciklus 80%-át, a költségek 65%-át teszi ki • Kezdeti fejlesztési költségek többszörösét teszik ki, és idővel csak növekednek! • Szoftverváltozás elkerülhetetlen • Pl. új követelmények, új üzleti környezet, hibajavítás, teljesítmény vagy megbízhatóság javítása • Változás hatékony kezelése a kulcsprobléma Szoftvertechnológiai Fórum

  6. Termékmetrikák (folyt.) • Stratégiák változás kezelésére: • Szoftverkarbantartás • Architekturális átalakítás • Szoftver újratervezése • Nagyon sokszor az egyetlen hiteles leírása a rendszernek a forráskód maga • Meg kell határozni annak kiindulási minőségét • Hogy a költségeket becsülni tudjuk, és • Képesek legyünk javítani a folyamatunkon • Folyamat és termék mérése együtt kell hogy történjen, egymást kiegészítve Szoftvertechnológiai Fórum

  7. Minőségmérés forráskód alapján • Ember: • Leletkészítés → Diagnózis→ Kezelés/Megelőzés → Ellenőrzés → … • Szoftver: • Mérés → Megértés/Minőségjellemzők→ Refactoring/Újratervezés/Folyamatjavítás→ Ellenőrzés (újabb mérés) → … Szoftvertechnológiai Fórum

  8. Szoftver evolúciója Szoftvertechnológiai Fórum

  9. Forráskód-alapú minőségbiztosítási módszertan rendszer-architektúrája Folyamatos mérés és monitorozás szükséges, melyhez eszközkészlet is kell! Szoftvertechnológiai Fórum

  10. Columbus technológia • FrontEndART Szoftver Kft. • Nagy C++ rendszerek analizálására alkalmas • Ezen belül minőség mérésére, monitorozására • Eddigi tapasztalatok (1-30 MLOC) • Nokia platform kódja • Graphisoft ArchiCAD • Nuance Scansoft Recognita • Mozilla • OpenOffice/MagyarOffice (Multiráció) Szoftvertechnológiai Fórum

  11. Visszatervezés és újratervezés • Nagy mennyiségű örökölt kód létezik • Kritikus fejlesztők elérhetetlenek • Új munkatársak • Programmegértés támogatása • Ún. ősrendszerek (legacy system) esetében nagyon fontos • Visszatervezés (Reverse Engineering) • Forráskódból modell előállítása • Újratervezés (Reengineering) • Visszatervezett modell továbbfejlesztése, új rendszer megvalósítása Szoftvertechnológiai Fórum

  12. utólagos dokumentálás függőségek és tervezési minták felismerése termékmetrikák Program megértés Architektúra visszanyerés Mérés C++ séma monitorozás Adatcsere hibára való hajlamosság vizsgálata Visszatervezett modell Vizsgálat Forrás- kód stb. tényfeltárási eljárás Vizualizálás Transzformált modell Módosított forráskód Újratervezés javítás, refactoring Szoftvertechnológiai Fórum

  13. Minőségi jellemzők mérése • Jellemzőket lehetetlen közvetlenül mérni • Magasabb szintű absztrakciók, sok mindentől függnek • Hierarchikus összetétel(jellemzők származtatása) • Sokszor szervezet- vagy termékfüggő • Több metrika együttes vizsgálata • Metrikák változása az idő függvényében • Statisztikai technikák alkalmazása • Metrikák (belső jellemző) és (külső) jellemzők közötti kapcsolatokra fel kell állítani egy modellt • Sok projekt esettanulmányának vizsgálata Szoftvertechnológiai Fórum

  14. Mérési modell, példa Eljárás paramétereinek száma Karbantarthatóság Ciklomatikus komplexitás Megbízhatóság Program mérete kódsorokban Hordozhatóság Hibaüzenetek száma Használhatóság Felhasználói kézikönyv hossza Szoftvertechnológiai Fórum

  15. Termékmetrikák forráskód alapján • Dinamikus • Szorosabb kapcsolat egyes minőségi jellemzőkkel (pl. teljesítmény, hibák száma) • Statikus • Közvetett kapcsolat • Számtalan konkrét metrikát ajánlottak már • Kritikus kérdés: hogyan következtetünk a minőségi jellemzőkre a sok számból? • Mérések (OO rendszerek esetében) • Eljárásszintű • Osztályszintű • Rendszerszintű Szoftvertechnológiai Fórum

  16. Példák egyszerű metrikákra • Forráskód sorok száma: LOC (többféle) • McCabe ciklomatikus komplexitás eljárásokra • Kohézió: LCOM (Lack of COhesion in Methods) • Minél nagyobb, a metódusok annál kevésbé koherensek • Csatolás (coupling): CBO (Coupling Between Objects). Ha az osztály egy másik osztály attribútumát vagy metódusát használja, akkor növekszik • Minél kisebb kell hogy legyen • Rendszerszintű metrikák: • U (reUse ratio) = ősosztályok / összes osztály • S (Specialization ratio) = származtatott osztályok / ősosztályok Szoftvertechnológiai Fórum

  17. További fontos metrikák • Forráskód auditálás • Verifikációnál is alkalmazzák • Automatikus, eszközök segítségével, pl. LINT • Kódolási stílus, külalak • Potenciálisan veszélyes szerkezetek felismerése • Hibák, biztonsági rések statikus felfedezése • Nem helyettesíti a tesztelést, de pl. hibák 60%-a felderíthető így • Számszerűsíthető! • Szabálysértések száma osztályonként Szoftvertechnológiai Fórum

  18. Rossz előjelek • Speciálisan auditálható tulajdonságok • „Bad smell”-ek • Nem feltétlenül jelentenek problémát • De jó alapjaik a refactoring-nak • Egyszerűek is vannak, pl. túl nagy osztály • Az egyik legfontosabb: • Kód-duplikáció detektálása • „Klónok” felfedezése Szoftvertechnológiai Fórum

  19. Metrikák és hibák kapcsolata Nincs hiba50% Nincs hiba36% Közepes hibaszám38% Nincs hiba18% Közepes hibaszám28% Magas hibaszám20% Közepes hibaszám30% Magas hibaszám35% Magas hibaszám44% Magas kohézió Közepes kohézió Alacsony kohézió Szoftvertechnológiai Fórum

  20. Metrikák és hibák kapcsolata (folyt.) • Kísérlet Mozilla rendszerrel (3,000 osztály), és a Bugzilla hiba-követő rendszerével (250,000 hiba) • Mozilla különböző verziói javultak (1.0 [2002] és 1.6 [2005] között) • Hibák száma szerint is • Metrikák szerint is • Korreláció vizsgálata a hibák száma és egyes metrikák között • Gépi tanulási modellt állítottunk elő, mellyel előre jelezhetők a problémás osztályok Szoftvertechnológiai Fórum

  21. Metrikák és hibák kapcsolata (folyt.) Szoftvertechnológiai Fórum

  22. Monitorozás • A megalkotott modelleket egy monitorozó rendszerben implementáltuk • Rendszeresen méri a szoftvert • Különféle vizualizációk és lekérések, pl. • Hisztogram • Metrikus értékek időbeni változásai • Mesterséges intelligencia • Speciális hibamodell: kódolási konvenciók megsértésének hatása a hibákra • További modellek építhetők: karbantarthatóság, biztonság, stb. Szoftvertechnológiai Fórum

  23. Szoftvertechnológiai Fórum

  24. Szoftvertechnológiai Fórum

  25. Szoftvertechnológiai Fórum

  26. Szoftvertechnológiai Fórum

  27. Összegzés • Csak mérés alapján végezhetjük a minőségmenedzsmentet • Termékmetrikák: közvetetten irányíthatják a minőségbiztosítási folyamatokat • Karbantartás és továbbfejlesztés fázisában fontosak, amikor meglévő rendszerről kell mondani valamit • Folyamatméréssel együtt kell(ene) alkalmazni • Forráskód-alapú minőségbiztosítási módszertan • 4 rétegű architektúra • Eszközkészlet és monitorozás szükséges • Columbus technológia Szoftvertechnológiai Fórum

More Related