Upload
foutse-khomh
View
598
Download
2
Tags:
Embed Size (px)
Citation preview
Ehsan Salamati Taba, Foutse Khomh, Ying Zou, Meiyappan Nagappan,
Ahmed E. Hassan
1
2
Predict Bugs
Model
3
Past Defects, History of Churn (Zimmermann, Hassan et al.)
Topic Modeling (Chen et al.)
4
not technically incorrect and don't prevent a system from functioning
weaknesses in design
5
Indicate a deeper
problem in the system
6
Antipatterns indicate weaknesses in the design that may increase the risk for bugs in the future. (Fowler 1999)
7
CVS Repository Mining Source Code
Repositories
Detecting Antipatterns
Mining Bug Repositories Bugzilla
Calculating Metrics Analyzing
RQ1
RQ2
RQ3
9
10
Systems Release(#) Churn LOCs
Eclipse 2.0 - 3.3.1(12) 148,454 26,209,669
ArgoUML 0.12 - 0.26.2(9) 21,427 2,025,730
Studied Systems Studied Systems
12
13 different antipatterns
DECOR (Moha et al.)
# of Antipatterns
# Files
Systems #Antipatterns
Eclipse 273,766
ArgoUML 15,100
RQ1: Do antipatterns affect the density of bugs in files?
RQ2: Do the proposed antipattern based metrics
provide additional explanatory power over traditional metrics?
RQ3: Can we improve traditional bug prediction
models with antipatterns information?
14
Density of bugs in the files with antipatterns
and the other files without antipatterns is the same.
15
16
Systems Releases(#) DA – DNA> 0 p-value<0.05
Eclipse 12 8 8
ArgoUML 9 6 6
Files with Antipatterns
Density of Bugs
Files without Antipatterns
Density of Bugs
RQ1: Do antipatterns affect the density of bugs in files?
RQ2: Do the proposed antipattern based metrics
provide additional explanatory power over traditional metrics?
RQ3: Can we improve traditional bug prediction
models with antipatterns information?
17
Average Number of Antipatterns (ANA)
Antipattern Cumulative Pairwise Differences (ACPD)
18
Antipattern Recurrence Length(ARL)
Antipattern Complexity Metric (ACM)
19
1.0 2.0 3.0 4.0 5.0 6.0
a.java
b.java
c.java
3 4 0 2 1 3
4 5 1 0 0 3
0 6 5 4 5 4
ANA(a.java) =2.16, ARL(a.java) = 18.76, ACPD(a.java) = 0
20
21
Provide additional explanatory power over traditional metrics
ARL shows the biggest improvement
RQ1: Do antipatterns affect the density of bugs in files?
RQ2: Do the proposed antipattern based metrics
provide additional explanatory power over traditional metrics?
RQ3: Can we improve traditional bug prediction
models with antipatterns information?
22
Step-wise analysis 1) Removing Independent
Variables 2) Collinearity Analysis
23
Metric name Description
LOC Source lines of codes
MLOC Executable lines of codes
PAR Number of parameters
NOF Number of attributes
NOM Number of methods
NOC Number of children
VG Cyclomatic complexity
DIT Depth of inheritance tree
LCOM Lack of cohesion of methods
NOT Number of classes
WMC Number of weighted methods per class
PRE Number of pre-released bugs
Churn Number of lines of code added modified or deleted
0
2
4
6
8
Churn PRE LOC MLOC NOT NOF NOM ACM ACPD ARL
ArgoUML
24
02468
1012
Churn PRE LOC MLOC NOT NOF NOM ACM ACPD ARL
Eclipse
ARL remained statistically significant and had a low collinearity with other metrics
# Ve
rsio
ns
# Ve
rsio
ns
F-m
easu
re
25
ARL can improve cross-system bug prediction on the two studied systems