SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

On the Effect of Program Exploration on
Maintenance Tasks

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Z´phyrin Soh, Foutse Khomh, Yann-Ga¨l Gu´h´neuc,
e
e
e e
Giuliano Antoniol, Bram Adams
Department of Computer and Software Engineering
´
Ecole Polytechnique de Montr´al, Qu´bec, Canada
e
e

October 14, 2013

Pattern Trace Identification, Detection, and Enhancement in Java
SOftware Cost-effective Change and Evolution Research Lab
Program
Exploration

Outline

Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Introduction

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

User Study

Empirical Study

Conclusion and Future Work

2 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Introduction
Context and Example (1/3)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

3 / 23

Program Exploration
Developers interact with program entities, e.g., open
files, edit methods, etc.
Developers explore the program, i.e., move from
program entities to program entities.
Types of program entities.
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

4 / 23

Introduction
Context and Example (2/3)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

4 / 23

Introduction
Context and Example (2/3)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

4 / 23

Introduction
Context and Example (2/3)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

4 / 23

Containment
Introduction principle:
the exploration graph
Context and Example (2/3)

Aggregate
at class level
Program
Exploration
Z´phyrin Soh et al.
e

Introduction
Context and Example (2/3)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

4 / 23

Exploration graph aggregated at class level
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

5 / 23

Introduction
Context and Example (3/3)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

5 / 23

Introduction
Context and Example (3/3)
Program
Exploration

Introduction

Z´phyrin Soh et al.
e

Context and Example (3/3)
A graph

represents a program exploration

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

(a) Graph 1

(b) Graph 2

Is there any difference between exploration graphs?
How to find the difference?
How does the difference affect the maintenance tasks?
5 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Introduction
Why do we care? (1/3)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work

Research on Program Exploration
Developers spend on average 35% of their time
navigating within and between source files [1]
Developers perform on average 19.31 navigation actions
between two modifications [2]

Conclusion
Threats to Validity
and Future Work

[1] Ko et al., An exploratory study of how developers seek, relate, and collect
relevant information during software maintenance tasks. TSE 2006
[2] D. R¨thlisberger, SmartGroups: Focusing on Task-Relevant Source
o
Artifacts in IDEs, ICPC 2011

6 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Introduction
Why do we care? (2/3)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Reasons of Program Exploration
Developers may have several different ways to explore a
program e.g.,
Looking for relevant entities ⇒ Some developers (may)
not know where to look at.
Validate previous changes ⇒ Developers (may) know
the target entity to look at.

⇒ In some cases, developers may perform more back and
forth navigations (i.e., revisitation) on program entities

7 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Introduction
Why do we care? (3/3)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Revisitation-based Exploration
Some recommendation systems (e.g., Mylyn [3],
NavClus [4]) are based on the revisitation of program
entities
We wonder if revisitation is “good“ or “bad“
⇒ Knowing that is helpful to improve revisitation-based
approach for recommendation systems.

[3] Kersten and Murphy, Mylar: a degree-of-interest model for IDEs, AOSD
2005
[4] Lee and Kang, Clustering and recommending collections of code relevant
to tasks, ICSM 2011

8 / 23
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Research Question

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

9 / 23

Exploration Strategies
In the revisitation-based exploration, we focus on two
extreme cases:
Referenced Exploration (RE): A developer revisits one
(or a set of) entity(ies) already visited
⇒ referenced entities
Unreferenced Exploration (UE): There is no set of
referenced entities
⇒ Almost the same revisitation of program entity(ies)
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Research Question

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Exploration Strategies
In the revisitation-based exploration, we focus on two
extreme cases:
Referenced Exploration (RE): A developer revisits one
(or a set of) entity(ies) already visited
⇒ referenced entities
Unreferenced Exploration (UE): There is no set of
referenced entities
⇒ Almost the same revisitation of program entity(ies)

Do developers follow a referenced exploration when
performing maintenance tasks?

9 / 23
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

10 / 23

User Study
Approach (1/5)

Data Collection
Mylyn’s IHs appear as attachment (XML file with name
“mylyn-context.zip”) to a bug
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

User Study
Approach (1/5)

Data Collection
Mylyn’s IHs appear as attachment (XML file with name
“mylyn-context.zip”) to a bug

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Top four Eclipse projects with more IHs (from 2,601 bugs)
ECF Mylyn PDE Platform Total
# IHs
26
1,273
131
275 1,705
10 / 23
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Approach (2/5)

How do we build an oracle?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

11 / 23

Random sample of IHs
(proportional among projects)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Approach (2/5)

How do we build an oracle?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

11 / 23

Random sample of IHs
(proportional among projects)
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (2/5)

Introduction

How do we build an oracle?

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Random sample of IHs
(proportional among projects)

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

9 subjects
Java experience
- mean : 4.16 yrs
-sd : 2.80 yrs

11 / 23
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (2/5)

Introduction

How do we build an oracle?

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Random sample of IHs
(proportional among projects)

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

9 subjects
Java experience
- mean : 4.16 yrs
-sd : 2.80 yrs

11 / 23
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (2/5)

Introduction

How do we build an oracle?

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Random sample of IHs
(proportional among projects)

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

9 subjects
Java experience
- mean : 4.16 yrs
-sd : 2.80 yrs

RE
11 / 23

UE

D
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (2/5)

Introduction

How do we build an oracle?

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Random sample of IHs
(proportional among projects)

Empirical Study
Research Questions
RQ1
RQ2
Discussions

How much the subjects agreed?
Fliess' Kappa interater agreement coeficient

Conclusion and
Future Work

- Overall: fair agreement (0.36)
- RE: almost moderate agreement (0.38)
- UE: almost moderate agreement (0.39)
- Doubt: No agreement (-0.009)

Conclusion
Threats to Validity
and Future Work

9 subjects
Java experience
- mean : 4.16 yrs
-sd : 2.80 yrs

RE
11 / 23

UE

D
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (3/5)

Introduction
Context and Example
Why do we care?

How do we aggregate the results?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE

12 / 23

RE

UE

UE

D
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (3/5)

Introduction
Context and Example
Why do we care?

How do we aggregate the results?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE

RE

UE

>= 2/3 subjects

RE
12 / 23

UE

D
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (3/5)

Introduction
Context and Example
Why do we care?

How do we aggregate the results?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE

RE

UE

UE

>= 2/3 subjects

UE
12 / 23

D
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (3/5)

Introduction
Context and Example
Why do we care?

How do we aggregate the results?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE

RE

UE

< 2/3 subjects

< 2/3 subjects

D
12 / 23

UE

D
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

13 / 23

User Study
Approach (4/5)

Identification Technique
Subjects count the number of nodes and the number of in/out arrows in the graphs
⇒ look at the distribution/inequality of revisits across graphs
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

User Study
Approach (4/5)

Identification Technique
Subjects count the number of nodes and the number of in/out arrows in the graphs
⇒ look at the distribution/inequality of revisits across graphs

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Gini Inequality Index [5]
We measure how much classes are (in)equally revisited
Used in econometrics to measure the inequality of
income among a population
Population = classes
Income of a class = NumRevisits
Gini(IH) =

1
2n2 µ

n

n

i=1 j=1

| NumRevisit(eni ) − NumRevisit(enj ) |

[5] K. Xu, How has the literature on Gini’s index evolved in the past 80 years?,
Technical report, Department of Economics, Dalhouse University, 2004
13 / 23
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

14 / 23

Inequality Index Threshold
Define a threshold to know if classes are (in)equally revisited
If Gini(IH) < Threshold
⇒ Classes are almost equally revisited
⇒ UE: Unreferenced Exploration
If Gini(IH) ≥ Threshold
⇒ Some classes are more revisited than others
⇒ RE: Referenced Exploration
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

14 / 23

1

Maximum
inequality
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Threshold ?

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

14 / 23

1

Maximum
inequality
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Approach (5/5)

Inequality Index Threshold

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

14 / 23

RE
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work

0.28

Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

14 / 23

1

Maximum
inequality
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work

0.28

Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

14 / 23

0.2

0.3

- Threshold = 0.2 ==> RE
- Threshold = 0.3 ==> UE

1

Maximum
inequality
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work

0.4

Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

1

Maximum
inequality

Use F-Measure to maximize both precision and recall
14 / 23
Program
Exploration
Z´phyrin Soh et al.
e

User Study
Approach (5/5)

Introduction

Inequality Index Threshold

Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work

0.4

Conclusion
Threats to Validity
and Future Work

0
Perfect
equality

1
UE

RE

Maximum
inequality

Use F-Measure to maximize both precision and recall
14 / 23
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

15 / 23

User Study
Results (1/2)

Percentage RE vs. UE
RE: 28.03% of Interaction Histories
UE: 71.96% of Interaction Histories
⇒ Developers follow mostly the unreferenced
exploration (UE) when performing a maintenance task.
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

User Study
Results (1/2)

Percentage RE vs. UE
RE: 28.03% of Interaction Histories
UE: 71.96% of Interaction Histories
⇒ Developers follow mostly the unreferenced
exploration (UE) when performing a maintenance task.
Methodical developers do not reinvestigate methods as
frequently as opportunistic developers [6]
RE = opportunistic developers?
UE = methodical developers?
⇒ We need more investigations
[6] Robillard et al., How effective developers investigate source code: An
exploratory study, TSE 2004

15 / 23
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

16 / 23

User Study
Results (2/2)

Confounding Factors
Architecture of the system
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

16 / 23

User Study
Results (2/2)

Confounding Factors
Architecture of the system
Number of common classes (NCC): The more A and B
have CC, the more they used the same part of the
system
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

16 / 23

User Study
Results (2/2)

Confounding Factors
Architecture of the system
Number of common classes (NCC): The more A and B
have CC, the more they used the same part of the
system
Compute NCC for each pair of IH.
NCC pairs with same ES vs. NCC pairs with different
ES ⇒ No difference.
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

16 / 23

User Study
Results (2/2)

Confounding Factors
Architecture of the system
Number of common classes (NCC): The more A and B
have CC, the more they used the same part of the
system
Compute NCC for each pair of IH.
NCC pairs with same ES vs. NCC pairs with different
ES ⇒ No difference.

Task interruption: The interruption time seems to push
developers to be concentrate on a set of (referenced)
entities (RE)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

User Study
Results (2/2)

Confounding Factors
Architecture of the system
Number of common classes (NCC): The more A and B
have CC, the more they used the same part of the
system
Compute NCC for each pair of IH.
NCC pairs with same ES vs. NCC pairs with different
ES ⇒ No difference.

Task interruption: The interruption time seems to push
developers to be concentrate on a set of (referenced)
entities (RE)
Type of the task: Bug severity because developers may
have more back and forth navigation when fixing severe
bugs wrt. less severe bugs
Inequality Indexes are not significantly different for
different types of bugs.

16 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Empirical Study
Research Questions

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Research Questions

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Does any difference exist in maintenance time between RE and UE?

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

17 / 23

Does any difference exist in edit/navigation ratio
between RE and UE?
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

18 / 23

Empirical Study
RQ1

Approach
Overall Time spend =
Unpaired Wilcoxon test

Duration(entity )
#entity

entity ∈IH
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
RQ1

Approach
Overall Time spend =

Duration(entity )
#entity

entity ∈IH

Unpaired Wilcoxon test

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

18 / 23

Results
The UE is on average 12.30% less time consuming
than the RE.
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

19 / 23

Empirical Study
RQ2

Approach
Edit/navigation ratio =
Unpaired Wilcoxon test

NumEdit(IH)
NumEvent(IH)
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

19 / 23

Empirical Study
RQ2

Approach
Edit/navigation ratio =

NumEdit(IH)
NumEvent(IH)

Unpaired Wilcoxon test

Results
An UE requires less edit/navigation ratio than a
RE.
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

20 / 23

Empirical Study
Discussions

Is there a good strategy?
RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming
⇒ More edit actions compare to navRE (more)
igation actions. Wrong edits/modif.
UE (less)
then come back to revert/cancel?
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

Empirical Study
Discussions

Is there a good strategy?
RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming

User Study
Research Question
Approach
Results

Empirical Study

⇒ More edit actions compare to navRE (more)
igation actions. Wrong edits/modif.
UE (less)
then come back to revert/cancel?

Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE
F1

F2

F1

F3

F1

F4

F1

F2

F3

F1

F4

F5

UE

20 / 23

4/8 > 3/6 (RE better)

F2

3/6

F5

4/8
Program
Exploration
Z´phyrin Soh et al.
e
Introduction
Context and Example
Why do we care?

Empirical Study
Discussions

Is there a good strategy?
RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming

User Study
Research Question
Approach
Results

Empirical Study

⇒ More edit actions compare to navRE (more)
igation actions. Wrong edits/modif.
UE (less)
then come back to revert/cancel?

Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

RE
F1

F2

F1

F3

F1

F4

F1

F2

F3

F1

F4

F5

UE

20 / 23

4/8 > 3/6 (RE better)

F2

3/6

F5

4/8

2/8

2/6

2/8 < 2/6 (UE better)
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Conclusion

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

21 / 23

0.4
0
Perfect
equality

1
UE

RE

Maximum
inequality

Use F-Measure to maximize both precision and recall
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Conclusion

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

21 / 23

0.4
0
Perfect
equality

1
UE

RE

Maximum
inequality

Use F-Measure to maximize both precision and recall
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Conclusion

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

21 / 23

0.4
0
Perfect
equality

1
UE

RE

Maximum
inequality

Use F-Measure to maximize both precision and recall
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Threats to Validity and Future Work

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

22 / 23

Threats to Validity and Future Work
Construct validity: An IH can be a part of developers’
work
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Threats to Validity and Future Work

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

22 / 23

Threats to Validity and Future Work
Construct validity: An IH can be a part of developers’
work
Conclusion validity: The time recorded can be
different to the “real” time spent
⇒ Perform an experiment to collect a data
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Threats to Validity and Future Work

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

22 / 23

Threats to Validity and Future Work
Construct validity: An IH can be a part of developers’
work
Conclusion validity: The time recorded can be
different to the “real” time spent
⇒ Perform an experiment to collect a data
Internal validity: We use only Mylyn’s IH
⇒ Use the IH from other tools
Program
Exploration
Z´phyrin Soh et al.
e

Conclusion and Future Work
Threats to Validity and Future Work

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

Threats to Validity and Future Work
Construct validity: An IH can be a part of developers’
work
Conclusion validity: The time recorded can be
different to the “real” time spent
⇒ Perform an experiment to collect a data
Internal validity: We use only Mylyn’s IH
⇒ Use the IH from other tools
External validity: Our subject projets are Eclipse-based
projects
⇒ Use other systems

22 / 23
Program
Exploration
Z´phyrin Soh et al.
e

Thanks for your attention!

Introduction
Context and Example
Why do we care?

User Study
Research Question
Approach
Results

RE

Empirical Study
Research Questions
RQ1
RQ2
Discussions

Conclusion and
Future Work
Conclusion
Threats to Validity
and Future Work

23 / 23

0.4
0
Perfect
equality

1
UE

RE

Maximum
inequality

Use F-Measure to maximize both precision and recall

Mais conteúdo relacionado

Mais procurados

On the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software TestingOn the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software Testingjfrchicanog
 
Testing survey by_directions
Testing survey by_directionsTesting survey by_directions
Testing survey by_directionsTao He
 
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...Abdel Salam Sayyad
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryTim Menzies
 
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...csandit
 
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...CS, NcState
 
Speeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceSpeeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceAnnibale Panichella
 
Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Vrije Universiteit Brussel
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...CSCJournals
 
A software fault localization technique based on program mutations
A software fault localization technique based on program mutationsA software fault localization technique based on program mutations
A software fault localization technique based on program mutationsTao He
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorTim Menzies
 
Data collection for software defect prediction
Data collection for software defect predictionData collection for software defect prediction
Data collection for software defect predictionAmmAr mobark
 
An introduction to AI in Test Engineering
An introduction to AI in Test EngineeringAn introduction to AI in Test Engineering
An introduction to AI in Test EngineeringHeemeng Foo
 
AI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOpsAI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOpsChakkrit (Kla) Tantithamthavorn
 
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...Twitter Inc.
 
The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...RAKESH RANA
 
Thetheoryofsoftwaretesting
ThetheoryofsoftwaretestingThetheoryofsoftwaretesting
ThetheoryofsoftwaretestingPiyushMehta57
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 

Mais procurados (19)

On the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software TestingOn the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software Testing
 
Testing survey by_directions
Testing survey by_directionsTesting survey by_directions
Testing survey by_directions
 
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
 
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
 
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
 
Speeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational IntelligenceSpeeding-up Software Testing With Computational Intelligence
Speeding-up Software Testing With Computational Intelligence
 
Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
 
A software fault localization technique based on program mutations
A software fault localization technique based on program mutationsA software fault localization technique based on program mutations
A software fault localization technique based on program mutations
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
 
Data collection for software defect prediction
Data collection for software defect predictionData collection for software defect prediction
Data collection for software defect prediction
 
An introduction to AI in Test Engineering
An introduction to AI in Test EngineeringAn introduction to AI in Test Engineering
An introduction to AI in Test Engineering
 
Ijcatr04051005
Ijcatr04051005Ijcatr04051005
Ijcatr04051005
 
AI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOpsAI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOps
 
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...
Towards Privacy-Preserving Evaluation for Information Retrieval Models over I...
 
The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...
 
Thetheoryofsoftwaretesting
ThetheoryofsoftwaretestingThetheoryofsoftwaretesting
Thetheoryofsoftwaretesting
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 

Destaque

Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdfPtidej Team
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptPtidej Team
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in TheoryPtidej Team
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design PatternsPtidej Team
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesPtidej Team
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in PracticePtidej Team
 

Destaque (17)

Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdf
 
Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.ppt
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Wcre13c.pdf
Wcre13c.pdfWcre13c.pdf
Wcre13c.pdf
 
Ssbse12a.ppt
Ssbse12a.pptSsbse12a.ppt
Ssbse12a.ppt
 
Wcre12b.ppt
Wcre12b.pptWcre12b.ppt
Wcre12b.ppt
 
See12.ppt
See12.pptSee12.ppt
See12.ppt
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
Mribp13.ppt
Mribp13.pptMribp13.ppt
Mribp13.ppt
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in Theory
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design Patterns
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in Practice
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 

Semelhante a Wcre13a.ppt

130321 zephyrin soh - on the effect of exploration strategies on maintenanc...
130321   zephyrin soh - on the effect of exploration strategies on maintenanc...130321   zephyrin soh - on the effect of exploration strategies on maintenanc...
130321 zephyrin soh - on the effect of exploration strategies on maintenanc...Ptidej Team
 
131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matchingZephyrin Soh
 
PM2 ARTICALS
PM2 ARTICALSPM2 ARTICALS
PM2 ARTICALSra na
 
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...Supersede
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentFrancis Palma
 
Empirical research methods for software engineering
Empirical research methods for software engineeringEmpirical research methods for software engineering
Empirical research methods for software engineeringsarfraznawaz
 
Spiral model explanation
Spiral model  explanationSpiral model  explanation
Spiral model explanationUmar Farooq
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationXiao Qin
 
Thesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptPtidej Team
 
Determining The Barriers Faced By Novice Programmers
Determining The Barriers Faced By Novice ProgrammersDetermining The Barriers Faced By Novice Programmers
Determining The Barriers Faced By Novice ProgrammersWaqas Tariq
 
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...A Systematic Mapping Review of Software Quality Measurement: Research Trends,...
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...IJECEIAES
 

Semelhante a Wcre13a.ppt (20)

Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
130321 zephyrin soh - on the effect of exploration strategies on maintenanc...
130321   zephyrin soh - on the effect of exploration strategies on maintenanc...130321   zephyrin soh - on the effect of exploration strategies on maintenanc...
130321 zephyrin soh - on the effect of exploration strategies on maintenanc...
 
131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matching
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
PM2 ARTICALS
PM2 ARTICALSPM2 ARTICALS
PM2 ARTICALS
 
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...A Survey on Software Release Planning Models - Slides for the Presentation @ ...
A Survey on Software Release Planning Models - Slides for the Presentation @ ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software Development
 
PowerPoint-based quizzes in wave motion: Performance and experiences of students
PowerPoint-based quizzes in wave motion: Performance and experiences of studentsPowerPoint-based quizzes in wave motion: Performance and experiences of students
PowerPoint-based quizzes in wave motion: Performance and experiences of students
 
M018147883
M018147883M018147883
M018147883
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Empirical research methods for software engineering
Empirical research methods for software engineeringEmpirical research methods for software engineering
Empirical research methods for software engineering
 
Spiral model explanation
Spiral model  explanationSpiral model  explanation
Spiral model explanation
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security Education
 
Thesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.ppt
 
Chapter 2 modeling the process and life-cycle
Chapter 2  modeling the process and life-cycleChapter 2  modeling the process and life-cycle
Chapter 2 modeling the process and life-cycle
 
Determining The Barriers Faced By Novice Programmers
Determining The Barriers Faced By Novice ProgrammersDetermining The Barriers Faced By Novice Programmers
Determining The Barriers Faced By Novice Programmers
 
Hh3512801283
Hh3512801283Hh3512801283
Hh3512801283
 
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...A Systematic Mapping Review of Software Quality Measurement: Research Trends,...
A Systematic Mapping Review of Software Quality Measurement: Research Trends,...
 

Mais de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Mais de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Último

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Wcre13a.ppt

  • 1. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results On the Effect of Program Exploration on Maintenance Tasks Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Z´phyrin Soh, Foutse Khomh, Yann-Ga¨l Gu´h´neuc, e e e e Giuliano Antoniol, Bram Adams Department of Computer and Software Engineering ´ Ecole Polytechnique de Montr´al, Qu´bec, Canada e e October 14, 2013 Pattern Trace Identification, Detection, and Enhancement in Java SOftware Cost-effective Change and Evolution Research Lab
  • 2. Program Exploration Outline Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Introduction Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work User Study Empirical Study Conclusion and Future Work 2 / 23
  • 3. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example (1/3) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 3 / 23 Program Exploration Developers interact with program entities, e.g., open files, edit methods, etc. Developers explore the program, i.e., move from program entities to program entities. Types of program entities.
  • 4. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 4 / 23 Introduction Context and Example (2/3)
  • 5. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 4 / 23 Introduction Context and Example (2/3)
  • 6. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 4 / 23 Introduction Context and Example (2/3)
  • 7. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 4 / 23 Containment Introduction principle: the exploration graph Context and Example (2/3) Aggregate at class level
  • 8. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example (2/3) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 4 / 23 Exploration graph aggregated at class level
  • 9. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 5 / 23 Introduction Context and Example (3/3)
  • 10. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 5 / 23 Introduction Context and Example (3/3)
  • 11. Program Exploration Introduction Z´phyrin Soh et al. e Context and Example (3/3) A graph represents a program exploration Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work (a) Graph 1 (b) Graph 2 Is there any difference between exploration graphs? How to find the difference? How does the difference affect the maintenance tasks? 5 / 23
  • 12. Program Exploration Z´phyrin Soh et al. e Introduction Why do we care? (1/3) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Research on Program Exploration Developers spend on average 35% of their time navigating within and between source files [1] Developers perform on average 19.31 navigation actions between two modifications [2] Conclusion Threats to Validity and Future Work [1] Ko et al., An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. TSE 2006 [2] D. R¨thlisberger, SmartGroups: Focusing on Task-Relevant Source o Artifacts in IDEs, ICPC 2011 6 / 23
  • 13. Program Exploration Z´phyrin Soh et al. e Introduction Why do we care? (2/3) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Reasons of Program Exploration Developers may have several different ways to explore a program e.g., Looking for relevant entities ⇒ Some developers (may) not know where to look at. Validate previous changes ⇒ Developers (may) know the target entity to look at. ⇒ In some cases, developers may perform more back and forth navigations (i.e., revisitation) on program entities 7 / 23
  • 14. Program Exploration Z´phyrin Soh et al. e Introduction Why do we care? (3/3) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Revisitation-based Exploration Some recommendation systems (e.g., Mylyn [3], NavClus [4]) are based on the revisitation of program entities We wonder if revisitation is “good“ or “bad“ ⇒ Knowing that is helpful to improve revisitation-based approach for recommendation systems. [3] Kersten and Murphy, Mylar: a degree-of-interest model for IDEs, AOSD 2005 [4] Lee and Kang, Clustering and recommending collections of code relevant to tasks, ICSM 2011 8 / 23
  • 15. Program Exploration Z´phyrin Soh et al. e User Study Research Question Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 9 / 23 Exploration Strategies In the revisitation-based exploration, we focus on two extreme cases: Referenced Exploration (RE): A developer revisits one (or a set of) entity(ies) already visited ⇒ referenced entities Unreferenced Exploration (UE): There is no set of referenced entities ⇒ Almost the same revisitation of program entity(ies)
  • 16. Program Exploration Z´phyrin Soh et al. e User Study Research Question Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Exploration Strategies In the revisitation-based exploration, we focus on two extreme cases: Referenced Exploration (RE): A developer revisits one (or a set of) entity(ies) already visited ⇒ referenced entities Unreferenced Exploration (UE): There is no set of referenced entities ⇒ Almost the same revisitation of program entity(ies) Do developers follow a referenced exploration when performing maintenance tasks? 9 / 23
  • 17. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 10 / 23 User Study Approach (1/5) Data Collection Mylyn’s IHs appear as attachment (XML file with name “mylyn-context.zip”) to a bug
  • 18. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results User Study Approach (1/5) Data Collection Mylyn’s IHs appear as attachment (XML file with name “mylyn-context.zip”) to a bug Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Top four Eclipse projects with more IHs (from 2,601 bugs) ECF Mylyn PDE Platform Total # IHs 26 1,273 131 275 1,705 10 / 23
  • 19. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Approach (2/5) How do we build an oracle? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 11 / 23 Random sample of IHs (proportional among projects)
  • 20. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Approach (2/5) How do we build an oracle? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 11 / 23 Random sample of IHs (proportional among projects)
  • 21. Program Exploration Z´phyrin Soh et al. e User Study Approach (2/5) Introduction How do we build an oracle? Context and Example Why do we care? User Study Research Question Approach Results Random sample of IHs (proportional among projects) Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 9 subjects Java experience - mean : 4.16 yrs -sd : 2.80 yrs 11 / 23
  • 22. Program Exploration Z´phyrin Soh et al. e User Study Approach (2/5) Introduction How do we build an oracle? Context and Example Why do we care? User Study Research Question Approach Results Random sample of IHs (proportional among projects) Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 9 subjects Java experience - mean : 4.16 yrs -sd : 2.80 yrs 11 / 23
  • 23. Program Exploration Z´phyrin Soh et al. e User Study Approach (2/5) Introduction How do we build an oracle? Context and Example Why do we care? User Study Research Question Approach Results Random sample of IHs (proportional among projects) Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 9 subjects Java experience - mean : 4.16 yrs -sd : 2.80 yrs RE 11 / 23 UE D
  • 24. Program Exploration Z´phyrin Soh et al. e User Study Approach (2/5) Introduction How do we build an oracle? Context and Example Why do we care? User Study Research Question Approach Results Random sample of IHs (proportional among projects) Empirical Study Research Questions RQ1 RQ2 Discussions How much the subjects agreed? Fliess' Kappa interater agreement coeficient Conclusion and Future Work - Overall: fair agreement (0.36) - RE: almost moderate agreement (0.38) - UE: almost moderate agreement (0.39) - Doubt: No agreement (-0.009) Conclusion Threats to Validity and Future Work 9 subjects Java experience - mean : 4.16 yrs -sd : 2.80 yrs RE 11 / 23 UE D
  • 25. Program Exploration Z´phyrin Soh et al. e User Study Approach (3/5) Introduction Context and Example Why do we care? How do we aggregate the results? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE 12 / 23 RE UE UE D
  • 26. Program Exploration Z´phyrin Soh et al. e User Study Approach (3/5) Introduction Context and Example Why do we care? How do we aggregate the results? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE RE UE >= 2/3 subjects RE 12 / 23 UE D
  • 27. Program Exploration Z´phyrin Soh et al. e User Study Approach (3/5) Introduction Context and Example Why do we care? How do we aggregate the results? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE RE UE UE >= 2/3 subjects UE 12 / 23 D
  • 28. Program Exploration Z´phyrin Soh et al. e User Study Approach (3/5) Introduction Context and Example Why do we care? How do we aggregate the results? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE RE UE < 2/3 subjects < 2/3 subjects D 12 / 23 UE D
  • 29. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 13 / 23 User Study Approach (4/5) Identification Technique Subjects count the number of nodes and the number of in/out arrows in the graphs ⇒ look at the distribution/inequality of revisits across graphs
  • 30. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results User Study Approach (4/5) Identification Technique Subjects count the number of nodes and the number of in/out arrows in the graphs ⇒ look at the distribution/inequality of revisits across graphs Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Gini Inequality Index [5] We measure how much classes are (in)equally revisited Used in econometrics to measure the inequality of income among a population Population = classes Income of a class = NumRevisits Gini(IH) = 1 2n2 µ n n i=1 j=1 | NumRevisit(eni ) − NumRevisit(enj ) | [5] K. Xu, How has the literature on Gini’s index evolved in the past 80 years?, Technical report, Department of Economics, Dalhouse University, 2004 13 / 23
  • 31. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 14 / 23 Inequality Index Threshold Define a threshold to know if classes are (in)equally revisited If Gini(IH) < Threshold ⇒ Classes are almost equally revisited ⇒ UE: Unreferenced Exploration If Gini(IH) ≥ Threshold ⇒ Some classes are more revisited than others ⇒ RE: Referenced Exploration
  • 32. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 0 Perfect equality 14 / 23 1 Maximum inequality
  • 33. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Threshold ? Conclusion and Future Work Conclusion Threats to Validity and Future Work 0 Perfect equality 14 / 23 1 Maximum inequality
  • 34. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Approach (5/5) Inequality Index Threshold User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 14 / 23 RE
  • 35. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work 0.28 Conclusion Threats to Validity and Future Work 0 Perfect equality 14 / 23 1 Maximum inequality
  • 36. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work 0.28 Conclusion Threats to Validity and Future Work 0 Perfect equality 14 / 23 0.2 0.3 - Threshold = 0.2 ==> RE - Threshold = 0.3 ==> UE 1 Maximum inequality
  • 37. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work 0.4 Conclusion Threats to Validity and Future Work 0 Perfect equality 1 Maximum inequality Use F-Measure to maximize both precision and recall 14 / 23
  • 38. Program Exploration Z´phyrin Soh et al. e User Study Approach (5/5) Introduction Inequality Index Threshold Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work 0.4 Conclusion Threats to Validity and Future Work 0 Perfect equality 1 UE RE Maximum inequality Use F-Measure to maximize both precision and recall 14 / 23
  • 39. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 15 / 23 User Study Results (1/2) Percentage RE vs. UE RE: 28.03% of Interaction Histories UE: 71.96% of Interaction Histories ⇒ Developers follow mostly the unreferenced exploration (UE) when performing a maintenance task.
  • 40. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work User Study Results (1/2) Percentage RE vs. UE RE: 28.03% of Interaction Histories UE: 71.96% of Interaction Histories ⇒ Developers follow mostly the unreferenced exploration (UE) when performing a maintenance task. Methodical developers do not reinvestigate methods as frequently as opportunistic developers [6] RE = opportunistic developers? UE = methodical developers? ⇒ We need more investigations [6] Robillard et al., How effective developers investigate source code: An exploratory study, TSE 2004 15 / 23
  • 41. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 16 / 23 User Study Results (2/2) Confounding Factors Architecture of the system
  • 42. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 16 / 23 User Study Results (2/2) Confounding Factors Architecture of the system Number of common classes (NCC): The more A and B have CC, the more they used the same part of the system
  • 43. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 16 / 23 User Study Results (2/2) Confounding Factors Architecture of the system Number of common classes (NCC): The more A and B have CC, the more they used the same part of the system Compute NCC for each pair of IH. NCC pairs with same ES vs. NCC pairs with different ES ⇒ No difference.
  • 44. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 16 / 23 User Study Results (2/2) Confounding Factors Architecture of the system Number of common classes (NCC): The more A and B have CC, the more they used the same part of the system Compute NCC for each pair of IH. NCC pairs with same ES vs. NCC pairs with different ES ⇒ No difference. Task interruption: The interruption time seems to push developers to be concentrate on a set of (referenced) entities (RE)
  • 45. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work User Study Results (2/2) Confounding Factors Architecture of the system Number of common classes (NCC): The more A and B have CC, the more they used the same part of the system Compute NCC for each pair of IH. NCC pairs with same ES vs. NCC pairs with different ES ⇒ No difference. Task interruption: The interruption time seems to push developers to be concentrate on a set of (referenced) entities (RE) Type of the task: Bug severity because developers may have more back and forth navigation when fixing severe bugs wrt. less severe bugs Inequality Indexes are not significantly different for different types of bugs. 16 / 23
  • 46. Program Exploration Z´phyrin Soh et al. e Empirical Study Research Questions Introduction Context and Example Why do we care? User Study Research Question Approach Results Research Questions Empirical Study Research Questions RQ1 RQ2 Discussions Does any difference exist in maintenance time between RE and UE? Conclusion and Future Work Conclusion Threats to Validity and Future Work 17 / 23 Does any difference exist in edit/navigation ratio between RE and UE?
  • 47. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 18 / 23 Empirical Study RQ1 Approach Overall Time spend = Unpaired Wilcoxon test Duration(entity ) #entity entity ∈IH
  • 48. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study RQ1 Approach Overall Time spend = Duration(entity ) #entity entity ∈IH Unpaired Wilcoxon test Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 18 / 23 Results The UE is on average 12.30% less time consuming than the RE.
  • 49. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 19 / 23 Empirical Study RQ2 Approach Edit/navigation ratio = Unpaired Wilcoxon test NumEdit(IH) NumEvent(IH)
  • 50. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 19 / 23 Empirical Study RQ2 Approach Edit/navigation ratio = NumEdit(IH) NumEvent(IH) Unpaired Wilcoxon test Results An UE requires less edit/navigation ratio than a RE.
  • 51. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 20 / 23 Empirical Study Discussions Is there a good strategy? RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming ⇒ More edit actions compare to navRE (more) igation actions. Wrong edits/modif. UE (less) then come back to revert/cancel?
  • 52. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? Empirical Study Discussions Is there a good strategy? RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming User Study Research Question Approach Results Empirical Study ⇒ More edit actions compare to navRE (more) igation actions. Wrong edits/modif. UE (less) then come back to revert/cancel? Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE F1 F2 F1 F3 F1 F4 F1 F2 F3 F1 F4 F5 UE 20 / 23 4/8 > 3/6 (RE better) F2 3/6 F5 4/8
  • 53. Program Exploration Z´phyrin Soh et al. e Introduction Context and Example Why do we care? Empirical Study Discussions Is there a good strategy? RE (more) ⇒ The back and forth actions on refUE (less) erenced entities are time consuming User Study Research Question Approach Results Empirical Study ⇒ More edit actions compare to navRE (more) igation actions. Wrong edits/modif. UE (less) then come back to revert/cancel? Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work RE F1 F2 F1 F3 F1 F4 F1 F2 F3 F1 F4 F5 UE 20 / 23 4/8 > 3/6 (RE better) F2 3/6 F5 4/8 2/8 2/6 2/8 < 2/6 (UE better)
  • 54. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Conclusion Introduction Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 21 / 23 0.4 0 Perfect equality 1 UE RE Maximum inequality Use F-Measure to maximize both precision and recall
  • 55. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Conclusion Introduction Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 21 / 23 0.4 0 Perfect equality 1 UE RE Maximum inequality Use F-Measure to maximize both precision and recall
  • 56. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Conclusion Introduction Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 21 / 23 0.4 0 Perfect equality 1 UE RE Maximum inequality Use F-Measure to maximize both precision and recall
  • 57. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Threats to Validity and Future Work Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 22 / 23 Threats to Validity and Future Work Construct validity: An IH can be a part of developers’ work
  • 58. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Threats to Validity and Future Work Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 22 / 23 Threats to Validity and Future Work Construct validity: An IH can be a part of developers’ work Conclusion validity: The time recorded can be different to the “real” time spent ⇒ Perform an experiment to collect a data
  • 59. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Threats to Validity and Future Work Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 22 / 23 Threats to Validity and Future Work Construct validity: An IH can be a part of developers’ work Conclusion validity: The time recorded can be different to the “real” time spent ⇒ Perform an experiment to collect a data Internal validity: We use only Mylyn’s IH ⇒ Use the IH from other tools
  • 60. Program Exploration Z´phyrin Soh et al. e Conclusion and Future Work Threats to Validity and Future Work Introduction Context and Example Why do we care? User Study Research Question Approach Results Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work Threats to Validity and Future Work Construct validity: An IH can be a part of developers’ work Conclusion validity: The time recorded can be different to the “real” time spent ⇒ Perform an experiment to collect a data Internal validity: We use only Mylyn’s IH ⇒ Use the IH from other tools External validity: Our subject projets are Eclipse-based projects ⇒ Use other systems 22 / 23
  • 61. Program Exploration Z´phyrin Soh et al. e Thanks for your attention! Introduction Context and Example Why do we care? User Study Research Question Approach Results RE Empirical Study Research Questions RQ1 RQ2 Discussions Conclusion and Future Work Conclusion Threats to Validity and Future Work 23 / 23 0.4 0 Perfect equality 1 UE RE Maximum inequality Use F-Measure to maximize both precision and recall