Refaktoring projekt az InfoPólus klaszterben GOP Nagy Csaba - Refactoring 2011 Kft.
Refaktoring projekt az InfoPólus klaszterben 2 Küzdelem a szoftvererózió ellen: folyamatos minőségmérésen alapuló, valós idejű szoftver- refaktoring keretrendszer fejlesztése és validálása ipari környezetben – április 1 – március 31. (24 hónap)
Motiváció – erózió a szél hatására
Motiváció – Bryce Canyon, UT (szél, jég) Erózió: „természeti erők környezetre gyakorolt romboló hatása”
A szoftvert is érik romboló hatások! 6
Szoftverminőség: Mikor „jó minőségű” a szoftver? 7 Aggregált szoftver metrikák az ISO/IEC 9126 szabvány szerint – Funkcionalitás – Megbízhatóság – Használhatóság – Hatékonyság – Karbantarthatóság – Hordozhatóság
Szoftver minőség 8
9
Szoftvererózió – Mit tehetünk? 10
Refaktoring 11 Refaktoring: működő kód átalakítása a viselkedés megtartása mellett A cél, hogy a meglévő kód minőségét (olvashatóság, karbantarthatóság) javítsuk Kritikus, problémás kódrészletek beazonosítása (badsmellek) Kontrolláltan, a minőségváltozás folyamatos monitorozása mellett kell végezni!
Refaktoring projekt céljai Refaktoring keretrendszer, módszertan, szoftvereszközök kifejlesztése „continuous reengineering” Kritikus pontok beazonosítása Folyamatos mérések Automatikus, semi-automatikus átstrukturálások Karbantarthatóság növelése Tesztelés éles, ipari környezetben „kalibrálás” - Partnerek kódbázisán valós hibák manuális refaktoringja „validálás” - Kész eszközök éles tesztelése Meglévő kódbázis javítása 12
Projekt eredményei Általános nyelv és refaktoring független keretrendszer Beépülés fejlesztői környezetekbe Integrálódás minőségmérő, CRM, tesztelő eszközökkel Subversion, CVS, Mercurial, Git, … Szoftvererózió hatékony és megbízható megakadályozása Nagyméretű, ipari alkalmazásokra is hatékony megoldások 13
Résztvevő partnerek 14
Refaktorált rendszerek 15
Kapcsolódó technológiák 16 CVS
Pályázati feladatok Forráskód-elemző, kiértékelő és minősítő eszközök telepítése a projektben résztvevő cégek telephelyén, elemzési eredmények szakértői kiértékelése Refaktoring eljárások módszertani leírása Refaktoring keretrendszer fejlesztés Nyelvfüggő refaktoring algoritmusok fejlesztése Tesztlefedettség-mérésen alapuló, invarianciát igazoló automatikus regressziós testbed kialakítása Refaktoring végrehajtása 17
Manuális refaktoringok 6 elemzett rendszer FusionR, Sofia, HunTéka, PEAS, HBOSVOD, TESCOPOS Összesen ~3M sor Java kód Összesen 1679 bejelentett hiba és javítási javaslat 1185 hibajavítás, refaktoring Jellemzően PMD szabálysértések 110 különböző PMD-re adott refaktoring javaslatok 16 badsmell, metrika problémák 18
Refaktoring keretrendszer Központi szerepet betöltő refaktoring keretrendszer Elemzések vezérlése (Jenkins) Automatikus refaktoring algoritmusok vezérlése IDE plug-inek kiszolgálása (web service) Web-es felület 19
Refaktoring keretrendszer 20
Eclipse plugin 21
IntelliJ IDEA plugin 22
NetBeans plugin 23
Mi az ami vár még ránk? 24 Automatikus refaktoringok implementálása (4. feladat) Invarianciát igazoló tesztágyak (5. feladat) Keretrendszer, pluginek próbaüzem- szerű használata, tesztelés (6. feladat) Minőség monitorozása, minőségmodell kalibrálása (1. feladat)
Köszönöm a figyelmet! 25 Nagy Csaba Refactoring 2011 Fejlesztő, Innovációs és Szolgáltató Kft. Székhely: 6722 Szeged, Gutenberg u. 14. Tel: Fax:
Hivatkozások Képregény h-Comics-Your-Mobile-Carrier.htmhttp:// h-Comics-Your-Mobile-Carrier.htm Erózió Blue screen public/ public/ 26