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

36
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department 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

Upload: zona

Post on 11-Jan-2016

29 views

Category:

Documents


2 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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

UNIVERSITAS SCIENTIARUM SZEGEDIENSISUNIVERSITY OF SZEGEDDepartment 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

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

UNIVERSITAS SCIENTIARUM SZEGEDIENSISUNIVERSITY OF SZEGEDDepartment 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

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

UNIVERSITAS SCIENTIARUM SZEGEDIENSISUNIVERSITY OF SZEGEDDepartment 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

12th Symposium on Programming Languages and Software Tools - SPLST'11

3

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

4

Vázlat

Metrikák felhasználása becslésreMó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ényekHogyan tovább?

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Módosítás komplexitá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

7

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Módosítás komplexitá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

8

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

),(

),(),(

iFdiff

iFtimeiFMC

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A mérési keretrendszer

12

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Productivity plug-inEclipse plug-inLogolja 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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A mérési keretrendszer

14

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A mérési keretrendszer

16

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

21

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

23

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

24

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Eredmények I.

Tanulási módszer Precision Recall

J48 31.9% 35.2%

RBFNetwork 36.6% 38.5%

ClassificationViaRegression 35.2% 39.6%

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

25

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Eredmények II.

Tanulási módszer Precision Recall

J48 43.1% 42.9%

RBFNetwork 36.6% 35.2%

ClassificationViaRegression 40% 41.8%

Revíziószám és termékmetrikák alapján

26

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Eredmények III.

Tanulási módszer Precision Recall

J48 34.2% 34.1%

RBFNetwork 31.7% 31.9%

ClassificationViaRegression 26.7% 33%

Revíziószám és folyamat metrikák alapján

27

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Eredmények IV.

28

Learning Method Precision/ Recall

Product Metrics

Process metrics

Product & Process Metrics

J48 Precision 43.1% 34.2% 47.5%Recall 42.9% 34.1% 47.3%

RBFNetwork Precision 36.6% 31.7% 39.7%Recall 35.2% 31.9% 39.6%

ClassificationViaRegression Precision 40% 26.7% 42.7%

Recall 41.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?

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

További vizsgált projektek

3 ipari K+F Java projekt

293 tanulóadat

29

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Eredmények V.

30

Tanulási módszer Precision Recall

J4850,1%

(47.5%)49.8%

(47.3%)

RBFNetwork37.9%

(39.7%)40.3%

(39.6%)

ClassificationViaRegression46.6%

(42.7%)

47.4% (45.1%)

Becslőmodellek összehasonlítása nagyobb tanulóhalmazra

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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,83Naí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

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

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

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

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

UNIVERSITAS SCIENTIARUM SZEGEDIENSISUNIVERSITY OF SZEGEDDepartment of Software Engineering

Köszönöm a figyelmet!

Kérdések?Ötletek?

36