UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Gépi tanulás a fejlesztés, karbantartás költségének becslésére Kakuja-Tóth Gabriella Szoftverfejlesztés Tanszék 1
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Adding Process Metrics to Enhance the Modification Complexity Prediction Tóth Gabriella, Végh Ádám Zoltán, Beszédes Árpád, Gyimóthy Tibor 19th IEEE International Conference on Program Comprehension – ICPC’11 2
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Adjusting Effort Estimation Using Micro-Productivity Profiles Tóth Gabriella, Végh Ádám Zoltán, Beszédes Árpád, Schrettner Lajos, Gergely Tamás, Gyimóthy Tibor 12 th Symposium on Programming Languages and Software Tools - SPLST'11 3
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 4 Vázlat Metrikák felhasználása becslésre Módosítás költsége metrika ■Level of Modification Complexity (LMC) A kísérlet ■Összehasonlító elemzés különböző metrikákkal alapján történő becslések között Eredmények Hogyan tovább?
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 5 Szoftvermetrikákkal történő becslés Mit becsülhetünk? ■Költség, ■Erőforrás, ■Hibaszám, ■… Miből becsülhetünk? ■Termék metrikák ■Folyamat metrikák ■Múltbeli fejlesztési adatok ■ …
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS C&K metrikák: 6 objektum orientált metrika (Chidamber és Kemerer által) ■Ezek a metrikák korrelációt mutatnak a karbantarthatóság mértékével és a hibák számával Mockus és Weiss ■A változás metrikák és a fejlesztők szakértelme fontos tényező a hibák számának előrejelzésében Moser ■A legerőteljesebb hiba előrejelzők a nagy számú kis méretű kommitok, sok hibajavítás és kevés refaktoring. 6 Kapcsolódó irodalom
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Módosítás komplexitása ISO/IEC TR :2003 szabvány ■Modification complexity ■Can the maintanier easily change the software to resolve problem? ■T = Sum(A/B)/N –A: work time spent to change –B: Size of software change –N: number of changes 7
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Módosítás komplexitása Mennyi ideig tart átlagosan egy fájl 1 sorának módosítása a fájl következő módosítása során? T.F.H. r36-ban A.java módosult: ■r35 – r36 között: –diff: 4 sor –A.java fejlesztésének nettó ideje: 12 perc –MC (A,35) = 12/4 = 3 perc/sor –LMC(A,35) = közepes 8
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Módosítás komplexitása time(F, i): F fájl nettó fejlesztési ideje percben a fájl i. és i+1. revíziója között diff (F, i): F fájl változtatott sorainak száma a fájl i. és i+1. revíziója között Fájlonként kiszámolásra került a fájl összes módosításának revíziójához ez az érték 9
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kutatási cél A módosítás költségére rátanulni ■Milyen prediktorok segítségével? –Termék metrikák –Folyamat metrikák –Idő múlása ■Több modell építése, ezek összehasonlítása –Precision –Recall 10
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kutatási kérdések Az idő múlása elégséges az LMC becsléséhez? A termékmetrikák által becsült LMC pontossága javítható további folyamatmetrikák segítségével? 11
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A mérési keretrendszer 12
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Productivity plug-in Eclipse plug-in Logolja a fejlesztés főbb mozzanatait: ■Aktív fájl ■Aktív perspektíva ■Aktív projekt ■Aktív fejlesztő ■Események: –save, update, commit, deploy ■Idő mérése (-tól –ig) Központi adatbázisba tölti folyamatosan 13
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A mérési keretrendszer 14
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Columbus Statikus elemző ■C/C++, C#, Java, SQL, Python stb. Termékmetrikák ■Forráskód alapján ■Méret, ■Komplexitás, ■Öröklődés, ■Csatolás 15
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A mérési keretrendszer 16
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Prediktorok I. Termék metrikák ■lLOC: logical Lines of Code ■Chidamber és Kemerer metrikák –DIT: Depth of Inheritence Tree –NOC: Number of Children –CBO: Couplings between Object Classes –RFC: Response For a Class –WMC: Weighted Methods per Class –LCOM: Lack of Cohesion in Methods ■ECLOC: Effectively Changed Lines of Code 17
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Termékmetrikák feldolgozása 3 féle feldolgozás ■A kód aktuális állapota alapján számolt ■A kód első mért állapota és a jelenlegi állapota közötti eltérés ■A kód előző mért állapota és a jelenlegi állapota közötti eltérés 18
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Prediktorok II. Folyamat metrikák ■TT: Task Time ■DEP: Developer’s Experience in Progamming ■NDF: Numbers of Developers of File ■NFA: Number of File Access ■DT: Development Time RN: Revision Number 19
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A vizsgált projekt Ipari K+F java projekt ■Telemedicina terület ■7 fejlesztő ■23 munkanap ■r954 – r1805 –851 kommit –1134 fájlmódosítás –200 fájlmódosításhoz lehetett egyértelműen termék és folyamat metrikát társítani –97 tanulóadat (a többi esetén nem volt a fájl rákövetkező módosítása) 20
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Gépi tanulás Használt weka algoritmusok ■J48 –java weka.classifiers.trees.J48 -t data/process.arff -d data/process.model -i ■RBFNetwork –java weka.classifiers.functions.RBFNetwork -t data/process.arff -d data/process.model -i ■ClassificationViaRegression –java weka.classifiers.meta.ClassificationViaRegressio n -t data/process.arff -d data/process.model -i 21
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Gépi tanulás Cél: LMC diszkrét érték becslése ■MC = DT/ECLOC → LMC 4 féle becslőmodell ■Idő múlása alapján –Prediktor: RN ■Termék metrikák alapján –Prediktorok: RN, termék metrikák ■Folyamat metrikák alapján –Prediktorok: RN, folyamat metrikák ■Termék és folyamat metrikák alapján –Prediktorok: RN, termék és folyamat metrikák 22
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Process_metrics.arff process_metrics rev numeric task {t2,t1,t3} developer {d4,d3,d5} access numeric time numeric dev_access numeric target {m3,m2,m1} ■963,t2,d4,1,43,1,m3 ■967,t1,d3,4,40,1,m3 ■967,t1,d3,3,3,1,m2 ■… 23
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Product_metrics.arff product_metrics rev numeric LLOC numeric RFC numeric WMC numeric DIT numeric NOC numeric LCOM numeric CBO numeric dLLOC numeric ■… d1LLOC numeric ■… diff numeric target {m3,m2,m1} ■963,179,17,37,0,0,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,m2 24
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Eredmények I. Tanulási módszer PrecisionRecall J4831.9%35.2% RBFNetwork36.6%38.5% ClassificationViaRegression35.2% 39.6% Az idő múlása elégséges az LMC becsléséhez? Csak revíziószám alapján 25
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Eredmények II. Tanulási módszer PrecisionRecall J4843.1%42.9% RBFNetwork36.6%35.2% ClassificationViaRegression40% 41.8% Revíziószám és termékmetrikák alapján 26
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Eredmények III. Tanulási módszer PrecisionRecall J4834.2%34.1% RBFNetwork31.7%31.9% ClassificationViaRegression26.7% 33% Revíziószám és folyamat metrikák alapján 27
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Eredmények IV. 28 Learning MethodPrecision/ Recall Product Metrics Process metrics Product & Process Metrics J48Precision43.1%34.2%47.5% Recall42.9%34.1%47.3% RBFNetworkPrecision36.6%31.7%39.7% Recall35.2%31.9%39.6% Classification ViaRegressionPrecision40%26.7%42.7% Recall41.8%33%45.1% Javítható-e a becslés pontossága, ha csak termékmetrikák helyett termék és folyamatmetrikák segítségével becsülnénk?
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS További vizsgált projektek 3 ipari K+F Java projekt 293 tanulóadat 29
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Eredmények V. 30 Tanulási módszer PrecisionRecall J48 50,1% (47.5%) 49.8% (47.3%) RBFNetwork 37.9% (39.7%) 40.3% (39.6%) ClassificationViaRegression 46.6% (42.7%) 47.4% (45.1%) Becslőmodellek összehasonlítása nagyobb tanulóhalmazra
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 31 Összegzés Ígéretes eredmények ■A kombinált prediktor használat (termék és folyamatmetrikák) pontosabb becslést eredményezett További eredmények ■Új tanulóhalmazon ismételt mérés ■A tanulóhalmaz méretének növelésével még pontosabb becslést értünk el
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Távlati célok Hosszabb távú előrejelzés ■Ne csak a következő módosítás komplexitása legyen becsülhető, hanem hosszabb távon is ■1, új tanulómodellek a következő 1,2,3, … módosítás komplexitásának előrejelzésére ■2, régi tanulómodell által becsült érték korrigálása statisztikai értékek alapján 32
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Micro-productivity jelenség Következő módosítás (MC): 5 perc/sor ■Naív megközelítés –Köv. 10 módosítás módosításonként 30 sorral számolva: 30*10*5= 1500 perc ■Micro-productivity jelenség –A 10 módosítás valószínűleg tartalmaz közös részeket (utólagos refaktorálás, átgondolatlan fejlesztés, hibás első ötlet stb.) – módosított sorok száma legfeljebb 30*10 33
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Micro-productivity jelenség 10 módosítás előrejelzése: ■Tényleges: 250 sor ■Naív: 300 sor Ezek aránya: 250/300= 0,83 Naív becslés korrigálása ■1500 * 0,83 = 1250 perc Minden hosszhoz átlag (vagy medián) számítása a meglévő arányok alapján 34
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Felmerült probléma Tanulóadat számának újbóli növekedé- sével nem kaptunk pontosabb becslést ■Rosszul választottunk –prediktorokat? »Túl sok a prediktor? »Nincs közük a target-hez? –tanuló modellt? »Paraméterezés? »Más modell? 35
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Köszönöm a figyelmet! Kérdések? Ötletek? 36