1 / 36

Gépi tanulás a fejlesztés, karbantartás költségének becslésére

Gépi tanulás a fejlesztés, karbantartás költségének becslésére. Kakuja-Tóth Gabriella Szoftverfejlesztés Tanszék. 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

zona
Download Presentation

Gépi tanulás a fejlesztés, karbantartás költségének becslésére

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. Gépi tanulás a fejlesztés, karbantartás költségének becslésére Kakuja-Tóth Gabriella Szoftverfejlesztés Tanszék

  2. 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 ProgramComprehension – ICPC’11

  3. 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 12th Symposium on Programming Languages and Software Tools - SPLST'11

  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?

  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 • …

  6. Kapcsolódó irodalom • 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.

  7. Módosításkomplexitása • ISO/IEC TR 9126-2: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

  8. Módosításkomplexitása • Mennyi ideig tart átlagosan egy fájl1 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

  9. 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

  10. 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

  11. 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?

  12. A mérési keretrendszer

  13. 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

  14. A mérési keretrendszer

  15. 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

  16. A mérési keretrendszer

  17. 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

  18. 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

  19. 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

  20. 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)

  21. 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.ClassificationViaRegression -t data/process.arff -d data/process.model -i

  22. 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

  23. Process_metrics.arff • @relation process_metrics • @attribute rev numeric • @attribute task {t2,t1,t3} • @attribute developer {d4,d3,d5} • @attribute access numeric • @attribute time numeric • @attribute dev_access numeric • @attribute target {m3,m2,m1} • @data • 963,t2,d4,1,43,1,m3 • 967,t1,d3,4,40,1,m3 • 967,t1,d3,3,3,1,m2 • …

  24. Product_metrics.arff • @relation product_metrics • @attribute rev numeric • @attribute LLOC numeric • @attribute RFC numeric • @attribute WMC numeric • @attribute DIT numeric • @attribute NOC numeric • @attribute LCOM numeric • @attribute CBO numeric • @attribute dLLOC numeric • … • @attribute d1LLOC numeric • … • @attribute diff numeric • @attribute target{m3,m2,m1} • @data • 963,179,17,37,0,0,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,m2

  25. Eredmények I. Az idő múlása elégséges az LMC becsléséhez? Csak revíziószám alapján

  26. Eredmények II. Revíziószám és termékmetrikák alapján

  27. Eredmények III. Revíziószám és folyamat metrikák alapján

  28. Eredmények IV. 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?

  29. További vizsgált projektek 3 ipari K+F Java projekt 293 tanulóadat

  30. EredményekV. • Becslőmodellek összehasonlítása nagyobb tanulóhalmazra

  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

  32. 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

  33. 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

  34. 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

  35. 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?

  36. Köszönöm a figyelmet!Kérdések?Ötletek?

More Related