130321 zephyrin soh - on the effect of exploration strategies on maintenance tasks

Post on 25-Jun-2015

66 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Maintenance, developers studies, empirical studies, exploration strategies, Mylyn

TRANSCRIPT

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

On the Effect of Exploration Strategies onMaintenance Tasks

Zephyrin Soh, Yann-Gael Gueheneuc, Giuliano AntoniolBram Adams, Foutse Khomh

Department of Computer and Software EngineeringEcole Polytechnique de Montreal, Quebec, Canada

March 21, 2013

Pattern Trace Identification, Detection, and Enhancement in JavaSOftware Cost-effective Change and Evolution Research Lab

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Outline

Introduction

Goal

Empirical Study

Results

Conclusion and Future Work

2 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (1/3)

Program ExplorationI Developers always explore the program when performing

a maintenance task i.e., move from a program entity toanother.

I Types of program entities (e.g., Java): project, package,file, class, attribute, method, resource (XML file, etc.)

I Consider an exploration graph where:

I Node: a program entityI Edge: moving from a program entity to another.

3 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (1/3)

Program ExplorationI Developers always explore the program when performing

a maintenance task i.e., move from a program entity toanother.

I Types of program entities (e.g., Java): project, package,file, class, attribute, method, resource (XML file, etc.)

I Consider an exploration graph where:

I Node: a program entityI Edge: moving from a program entity to another.

3 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (1/3)

Program ExplorationI Developers always explore the program when performing

a maintenance task i.e., move from a program entity toanother.

I Types of program entities (e.g., Java): project, package,file, class, attribute, method, resource (XML file, etc.)

I Consider an exploration graph where:

I Node: a program entityI Edge: moving from a program entity to another.

3 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (1/3)

Program ExplorationI Developers always explore the program when performing

a maintenance task i.e., move from a program entity toanother.

I Types of program entities (e.g., Java): project, package,file, class, attribute, method, resource (XML file, etc.)

I Consider an exploration graph where:I Node: a program entity

I Edge: moving from a program entity to another.

3 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (1/3)

Program ExplorationI Developers always explore the program when performing

a maintenance task i.e., move from a program entity toanother.

I Types of program entities (e.g., Java): project, package,file, class, attribute, method, resource (XML file, etc.)

I Consider an exploration graph where:I Node: a program entityI Edge: moving from a program entity to another.

3 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (2/3)

4 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (2/3)

4 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (2/3)

4 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (2/3)

4 / 30

We focus on the program entity oftype class ⇒ Containment principle

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (2/3)

4 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (3/3)

5 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (3/3)

5 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionMotivating Example (3/3)

5 / 30

A graph represents a program exploration

(a) Graph 1 (b) Graph 2

I Is there any difference between exploration graphs?

I How you find the difference?

I Why there is difference?

I How much is the difference?

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionContext (1/2)

Program Exploration

Two main concepts:

I Interaction event (IE): Each developer’s action on anentity (through IDE) e.g., select a file Foo.java throughpackage explorer.

I Interaction history (IH): a sequence of interactionevents.

Many tools used to gather IH: Mylyn, SmartGroups,CodingTracker.

6 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionContext (2/2)

Objectives of Program ExplorationI Developers look at the relevant program entities

I Developers perform on average 19.31 navigation actionsbetween two modifications [1]⇒ They spend time finding where and how to performa change on a program.

Research on Program Exploration

I Reduce the developers’ search effort (when searchingthe relevant entities to perform a given task).

I Improve the developers’ productivity.

[1] D. Rothlisberger, SmartGroups: Focusing on Task-Relevant SourceArtifacts in IDEs, ICPC 2011

7 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

IntroductionContext (2/2)

Objectives of Program ExplorationI Developers look at the relevant program entities

I Developers perform on average 19.31 navigation actionsbetween two modifications [1]⇒ They spend time finding where and how to performa change on a program.

Research on Program Exploration

I Reduce the developers’ search effort (when searchingthe relevant entities to perform a given task).

I Improve the developers’ productivity.

[1] D. Rothlisberger, SmartGroups: Focusing on Task-Relevant SourceArtifacts in IDEs, ICPC 2011

7 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalProblem (1/1)

Main Question

How can we help developers based on the way they explore aprogram?

First StepI Investigate if developers have different exploration

strategiesI Exploration strategies (ES): the way (how) the

developers navigate through the program entities

I Study some cause/effect relationships around ES

8 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalProblem (1/1)

Main Question

How can we help developers based on the way they explore aprogram?

First StepI Investigate if developers have different exploration

strategiesI Exploration strategies (ES): the way (how) the

developers navigate through the program entities

I Study some cause/effect relationships around ES

8 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalProblem (1/1)

Main Question

How can we help developers based on the way they explore aprogram?

First StepI Investigate if developers have different exploration

strategiesI Exploration strategies (ES): the way (how) the

developers navigate through the program entities

I Study some cause/effect relationships around ES

8 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalBenefits (1/1)

Usefulness of the Exploration Strategies

Exploration strategies can help to:

I Evaluate a developer’s performance: a specific strategycan tend to be more efficient.

I Improve our knowledge on developers’ comprehension orprogramming process: a top-down or bottom-upcomprehension can be related to a specific strategy

I Characterize developers’ expertise: the experienceddevelopers can tend to follow a specific strategy thatcan be used to help inexperienced ones

I Develop new exploration features for IDE: a strategycan highlight the need of a specific feature.

9 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalBenefits (1/1)

Usefulness of the Exploration Strategies

Exploration strategies can help to:

I Evaluate a developer’s performance: a specific strategycan tend to be more efficient.

I Improve our knowledge on developers’ comprehension orprogramming process: a top-down or bottom-upcomprehension can be related to a specific strategy

I Characterize developers’ expertise: the experienceddevelopers can tend to follow a specific strategy thatcan be used to help inexperienced ones

I Develop new exploration features for IDE: a strategycan highlight the need of a specific feature.

9 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalBenefits (1/1)

Usefulness of the Exploration Strategies

Exploration strategies can help to:

I Evaluate a developer’s performance: a specific strategycan tend to be more efficient.

I Improve our knowledge on developers’ comprehension orprogramming process: a top-down or bottom-upcomprehension can be related to a specific strategy

I Characterize developers’ expertise: the experienceddevelopers can tend to follow a specific strategy thatcan be used to help inexperienced ones

I Develop new exploration features for IDE: a strategycan highlight the need of a specific feature.

9 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

GoalBenefits (1/1)

Usefulness of the Exploration Strategies

Exploration strategies can help to:

I Evaluate a developer’s performance: a specific strategycan tend to be more efficient.

I Improve our knowledge on developers’ comprehension orprogramming process: a top-down or bottom-upcomprehension can be related to a specific strategy

I Characterize developers’ expertise: the experienceddevelopers can tend to follow a specific strategy thatcan be used to help inexperienced ones

I Develop new exploration features for IDE: a strategycan highlight the need of a specific feature.

9 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyResearch Questions (1/1)

Questions

Do developers follow specific exploration strategieswhen performing maintenance tasks?

Do specific exploration strategies affect the main-tenance time?

Do specific exploration strategies affect the explo-ration effort?

Does extensive work results to a specific explo-ration strategy?

10 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyResearch Questions (1/1)

Questions

Do developers follow specific exploration strategieswhen performing maintenance tasks?

Do specific exploration strategies affect the main-tenance time?

Do specific exploration strategies affect the explo-ration effort?

Does extensive work results to a specific explo-ration strategy?

10 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyResearch Questions (1/1)

Questions

Do developers follow specific exploration strategieswhen performing maintenance tasks?

Do specific exploration strategies affect the main-tenance time?

Do specific exploration strategies affect the explo-ration effort?

Does extensive work results to a specific explo-ration strategy?

10 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyResearch Questions (1/1)

Questions

Do developers follow specific exploration strategieswhen performing maintenance tasks?

Do specific exploration strategies affect the main-tenance time?

Do specific exploration strategies affect the explo-ration effort?

Does extensive work results to a specific explo-ration strategy?

10 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (1/3)

Data CollectionI Four open-source projects: ECF, Mylyn, PDE, Eclipse

PlatformI We focus on IHs build by Mylyn

I Mylyn is an industrial tool provided as an Eclipse’splug-in (also CodingTracker)

I Mylyn’s IHs are available: all contributions to Mylynmust be made using Mylyn

11 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (1/3)

Example: Mylyn’s IHs as attachment (XML file) to a bug

11 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (1/3)

11 / 30

Mylyn’s Interaction History

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (1/3)

11 / 30

Mylyn’s Interaction History

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (1/3)

11 / 30

Mylyn’s Interaction History

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (2/3)

12 / 30

Parsing Interaction Histories

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (3/3)

Parsing StructureHandleI Identify the type and parts of program entity

I Parsing ⇒ A graph representation of an interactionhistory

I Remember: We focus on the program entity of typeclass

13 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyData (3/3)

Parsing StructureHandleI Identify the type and parts of program entity

I Parsing ⇒ A graph representation of an interactionhistory

I Remember: We focus on the program entity of typeclass

13 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (1/3)

14 / 30

I NumEvent(Classes) =∑

e∈Classes NumEvent(e)

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (2/3)

15 / 30

I NumRevisits(c) = number of times a class c is revisited

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (3/3)

I NumEdit: total number of edit events on all classes andtheir contentsNumEdit(e) =

∑eventBe NumEdit(event)

NumEdit(Classes) =∑

e∈Classes NumEdit(e)

I Exploration Effort: edit ratio which is related to theidentification of the relevant entitiesEditRatio(Classes) = NumEdit(Classes)

NumEvent(Classes)

I Class Level Duration (CLD): total duration spent on allclasses and their contentsDuration(event) = EndDate(event)− StartDate(event)Duration(e) =

∑eventBe Duration(event)

CLD = Duration(Classes) =∑

e∈Classes Duration(e)

I Overall Duration (OD): total duration spent on an IHOD =

∑event∈IH Duration(event)

16 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (3/3)

I NumEdit: total number of edit events on all classes andtheir contentsNumEdit(e) =

∑eventBe NumEdit(event)

NumEdit(Classes) =∑

e∈Classes NumEdit(e)

I Exploration Effort: edit ratio which is related to theidentification of the relevant entitiesEditRatio(Classes) = NumEdit(Classes)

NumEvent(Classes)

I Class Level Duration (CLD): total duration spent on allclasses and their contentsDuration(event) = EndDate(event)− StartDate(event)Duration(e) =

∑eventBe Duration(event)

CLD = Duration(Classes) =∑

e∈Classes Duration(e)

I Overall Duration (OD): total duration spent on an IHOD =

∑event∈IH Duration(event)

16 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (3/3)

I NumEdit: total number of edit events on all classes andtheir contentsNumEdit(e) =

∑eventBe NumEdit(event)

NumEdit(Classes) =∑

e∈Classes NumEdit(e)

I Exploration Effort: edit ratio which is related to theidentification of the relevant entitiesEditRatio(Classes) = NumEdit(Classes)

NumEvent(Classes)

I Class Level Duration (CLD): total duration spent on allclasses and their contentsDuration(event) = EndDate(event)− StartDate(event)Duration(e) =

∑eventBe Duration(event)

CLD = Duration(Classes) =∑

e∈Classes Duration(e)

I Overall Duration (OD): total duration spent on an IHOD =

∑event∈IH Duration(event)

16 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyMetrics (3/3)

I NumEdit: total number of edit events on all classes andtheir contentsNumEdit(e) =

∑eventBe NumEdit(event)

NumEdit(Classes) =∑

e∈Classes NumEdit(e)

I Exploration Effort: edit ratio which is related to theidentification of the relevant entitiesEditRatio(Classes) = NumEdit(Classes)

NumEvent(Classes)

I Class Level Duration (CLD): total duration spent on allclasses and their contentsDuration(event) = EndDate(event)− StartDate(event)Duration(e) =

∑eventBe Duration(event)

CLD = Duration(Classes) =∑

e∈Classes Duration(e)

I Overall Duration (OD): total duration spent on an IHOD =

∑event∈IH Duration(event)

16 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (1/3)

Gini Inequality IndexI Used in econometrics to measure the inequality of

income among a population

I Gini ∈ [0, 1]: 0 (perfect equality), 1 (maximalinequality)

I We measure how much classes are (un)equally revisited

I NumRevisits = income of a class⇒ Apply Gini [2] on NumRevisits

Gini(IH) = 12n2µ

n∑i=1

n∑j=1| NumRevisit(eni )− NumRevisit(enj ) |

[2] K. Xu, How has the literature on Gini’s index evolved in the past 80 years?,Technical report, Department of Economics, Dalhouse University, 2004

17 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (2/3)

Problem 1: Gini Threshold

How to know if classes are (un)equally revisited?⇒ Define a Gini Threshold

I If Gini(IH) < Threshold⇒ Classes are almost equally revisited⇒ EES: Extended Exploration Strategy

I If Gini(IH) ≥ Threshold⇒ Some classes are more revisited than others (core vs.periphery)⇒ CES: Centralized Exploration Strategy

18 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (3/3)

Problem 2: Cut-Off Point

For CES, core vs. periphery classes⇒ Define a COP

I Ordered the classes by NumRevisits{(C1, 9), (C2, 2), (C3, 4), (C4, 16), (C5, 11)}⇒ (C4, 16), (C5, 11), (C1, 9), (C3, 4), (C2, 2)

I COP: a maximum difference between NumRevisit oftwo consecutive classes⇒ COP = 5: Between C4-C5, and C1-C3

I More than one COP: the one that provides more coreclasses⇒ Between C1-C3

I Core classes = {C4,C5,C1}Peripheral classes = {C3,C2}

19 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (3/3)

Problem 2: Cut-Off Point

For CES, core vs. periphery classes⇒ Define a COP

I Ordered the classes by NumRevisits{(C1, 9), (C2, 2), (C3, 4), (C4, 16), (C5, 11)}⇒ (C4, 16), (C5, 11), (C1, 9), (C3, 4), (C2, 2)

I COP: a maximum difference between NumRevisit oftwo consecutive classes⇒ COP = 5: Between C4-C5, and C1-C3

I More than one COP: the one that provides more coreclasses⇒ Between C1-C3

I Core classes = {C4,C5,C1}Peripheral classes = {C3,C2}

19 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (3/3)

Problem 2: Cut-Off Point

For CES, core vs. periphery classes⇒ Define a COP

I Ordered the classes by NumRevisits{(C1, 9), (C2, 2), (C3, 4), (C4, 16), (C5, 11)}⇒ (C4, 16), (C5, 11), (C1, 9), (C3, 4), (C2, 2)

I COP: a maximum difference between NumRevisit oftwo consecutive classes⇒ COP = 5: Between C4-C5, and C1-C3

I More than one COP: the one that provides more coreclasses⇒ Between C1-C3

I Core classes = {C4,C5,C1}Peripheral classes = {C3,C2}

19 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Empirical StudyStrategy Identification (3/3)

Problem 2: Cut-Off Point

For CES, core vs. periphery classes⇒ Define a COP

I Ordered the classes by NumRevisits{(C1, 9), (C2, 2), (C3, 4), (C4, 16), (C5, 11)}⇒ (C4, 16), (C5, 11), (C1, 9), (C3, 4), (C2, 2)

I COP: a maximum difference between NumRevisit oftwo consecutive classes⇒ COP = 5: Between C4-C5, and C1-C3

I More than one COP: the one that provides more coreclasses⇒ Between C1-C3

I Core classes = {C4,C5,C1}Peripheral classes = {C3,C2}

19 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (1/4)

Problem 1: Manual ValidationI Build an Oracle

I Random set of heterogenous interaction historyI Sample size: proportionally distributed among projectsI 95%± 10 confidence level

I Use Graphviz to generate the exploration graphs

I Subjects: Three PhD students with Java Experience

Validation ProcessI Explain the meaning of the graphs

I Subjects’ labels of a graph: C, E or D (Doubt)

I Final label: CES (or EES) if at less two C (or E)Undecided if completely different labels or two D

20 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (1/4)

Problem 1: Manual ValidationI Build an Oracle

I Random set of heterogenous interaction historyI Sample size: proportionally distributed among projectsI 95%± 10 confidence level

I Use Graphviz to generate the exploration graphs

I Subjects: Three PhD students with Java Experience

Validation ProcessI Explain the meaning of the graphs

I Subjects’ labels of a graph: C, E or D (Doubt)

I Final label: CES (or EES) if at less two C (or E)Undecided if completely different labels or two D

20 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (2/4)

Compromise ThresholdI F-Measure: maximize both precision and recall

21 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (2/4)

Compromise ThresholdI F-Measure: maximize both precision and recall

21 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (3/4)

Observation 1: Developers follow mostly the EES whenperforming a maintenance task.

I Methodical developers do not reinvestigate methods asfrequently as opportunistic developers [3]

I CES ⇒ opportunistic developers

I EES ⇒ methodical developers

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 2004

22 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (3/4)

Observation 1: Developers follow mostly the EES whenperforming a maintenance task.

I Methodical developers do not reinvestigate methods asfrequently as opportunistic developers [3]

I CES ⇒ opportunistic developers

I EES ⇒ methodical developers

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 200422 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (4/4)

Confounding FactorI Developers navigate through relationships between

classes and key binding ⇒ The architecture can affectthe ES

I Classes (and relations) involved in an IH = part of thesystem used to perform a task

I If IHs A and B have almost the same part of a system⇒ same ESA and B different parts ⇒ Different ES

I Number of common classes (NCC) between A and B tocapture their common part

I Compute NCC for each pair of IHNo difference between the NCC of the IHs with thesame ES and the NCC of the IHs with different ES⇒ The architecture does not affect the ES

23 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (4/4)

Confounding FactorI Developers navigate through relationships between

classes and key binding ⇒ The architecture can affectthe ES

I Classes (and relations) involved in an IH = part of thesystem used to perform a task

I If IHs A and B have almost the same part of a system⇒ same ESA and B different parts ⇒ Different ES

I Number of common classes (NCC) between A and B tocapture their common part

I Compute NCC for each pair of IHNo difference between the NCC of the IHs with thesame ES and the NCC of the IHs with different ES⇒ The architecture does not affect the ES

23 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (4/4)

Confounding FactorI Developers navigate through relationships between

classes and key binding ⇒ The architecture can affectthe ES

I Classes (and relations) involved in an IH = part of thesystem used to perform a task

I If IHs A and B have almost the same part of a system⇒ same ESA and B different parts ⇒ Different ES

I Number of common classes (NCC) between A and B tocapture their common part

I Compute NCC for each pair of IHNo difference between the NCC of the IHs with thesame ES and the NCC of the IHs with different ES⇒ The architecture does not affect the ES

23 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (4/4)

Confounding FactorI Developers navigate through relationships between

classes and key binding ⇒ The architecture can affectthe ES

I Classes (and relations) involved in an IH = part of thesystem used to perform a task

I If IHs A and B have almost the same part of a system⇒ same ESA and B different parts ⇒ Different ES

I Number of common classes (NCC) between A and B tocapture their common part

I Compute NCC for each pair of IHNo difference between the NCC of the IHs with thesame ES and the NCC of the IHs with different ES⇒ The architecture does not affect the ES

23 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ1 (4/4)

Confounding FactorI Developers navigate through relationships between

classes and key binding ⇒ The architecture can affectthe ES

I Classes (and relations) involved in an IH = part of thesystem used to perform a task

I If IHs A and B have almost the same part of a system⇒ same ESA and B different parts ⇒ Different ES

I Number of common classes (NCC) between A and B tocapture their common part

I Compute NCC for each pair of IHNo difference between the NCC of the IHs with thesame ES and the NCC of the IHs with different ES⇒ The architecture does not affect the ES

23 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ2 (1/1)

Observation 2: The EES is on average 69.39% less timeconsuming than the CES.

I Methodical developers performs tasks two times fasterthan opportunistic ones [3]

I CES ⇒ read source code in details [3]

I EES ⇒ look at explicit program entity(ies) [3]

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 2004

24 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ2 (1/1)

Observation 2: The EES is on average 69.39% less timeconsuming than the CES.

I Methodical developers performs tasks two times fasterthan opportunistic ones [3]

I CES ⇒ read source code in details [3]

I EES ⇒ look at explicit program entity(ies) [3]

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 200424 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ3 (1/1)

Observation 3: An EES requires more exploration effortthan a CES.

I Methodical developers are successful developerscompared to opportunistic developers [3]

I CES ⇒ code modifications in one place [3]

I EES surprising: IH edits vs. source code repository edits

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 2004

25 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ3 (1/1)

Observation 3: An EES requires more exploration effortthan a CES.

I Methodical developers are successful developerscompared to opportunistic developers [3]

I CES ⇒ code modifications in one place [3]

I EES surprising: IH edits vs. source code repository edits

[3] M. P. Robillard et al., How effective developers investigate source code: Anexploratory study, IEEE TSE, 2004

25 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ4 (1/2)

Expand the Work on Many DaysI Open-source project: developers are volunteers⇒ they work on their spare time.

I Number of working days spent on change request

I Unbalanced proportion of IH: the more days developerswork on a change task, the more time they spend onprogram entities

26 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ4 (1/2)

Expand the Work on Many DaysI Open-source project: developers are volunteers⇒ they work on their spare time.

I Number of working days spent on change request

I Unbalanced proportion of IH: the more days developerswork on a change task, the more time they spend onprogram entities26 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ4 (2/2)

Observation 4: Developers usually adopt a CES whenperforming maintenance tasks spanning on more thanthree days.

I Developers refresh their mind by (re)understanding theentities that they explored before

I Mylyn task context feature sometimes push developersto (re)explore entities already explored in previousworking sessions

27 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

ResultsRQ4 (2/2)

Observation 4: Developers usually adopt a CES whenperforming maintenance tasks spanning on more thanthree days.

I Developers refresh their mind by (re)understanding theentities that they explored before

I Mylyn task context feature sometimes push developersto (re)explore entities already explored in previousworking sessions27 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkConclusion (1/1)

28 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkConclusion (1/1)

28 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkConclusion (1/1)

28 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkConclusion (1/1)

28 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkThreats to Validity and Future Work (1/1)

Threats to Validity and Future Work

I Construct validity: An IH can be a part of developers’work

I Conclusion validity: The time recorded can bedifferent to the “real” time spent⇒ Perform an experiment to collect a data

I Internal validity: We use only Mylyn’s IH⇒ Use the IH from other tools

I External validity: Our subject projets are Eclipse-basedprojects⇒ Use other systems

29 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkThreats to Validity and Future Work (1/1)

Threats to Validity and Future Work

I Construct validity: An IH can be a part of developers’work

I Conclusion validity: The time recorded can bedifferent to the “real” time spent⇒ Perform an experiment to collect a data

I Internal validity: We use only Mylyn’s IH⇒ Use the IH from other tools

I External validity: Our subject projets are Eclipse-basedprojects⇒ Use other systems

29 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkThreats to Validity and Future Work (1/1)

Threats to Validity and Future Work

I Construct validity: An IH can be a part of developers’work

I Conclusion validity: The time recorded can bedifferent to the “real” time spent⇒ Perform an experiment to collect a data

I Internal validity: We use only Mylyn’s IH⇒ Use the IH from other tools

I External validity: Our subject projets are Eclipse-basedprojects⇒ Use other systems

29 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

Conclusion and Future WorkThreats to Validity and Future Work (1/1)

Threats to Validity and Future Work

I Construct validity: An IH can be a part of developers’work

I Conclusion validity: The time recorded can bedifferent to the “real” time spent⇒ Perform an experiment to collect a data

I Internal validity: We use only Mylyn’s IH⇒ Use the IH from other tools

I External validity: Our subject projets are Eclipse-basedprojects⇒ Use other systems

29 / 30

ExplorationStrategies

Zephyrin Soh et al.

Introduction

Motivating Example

Context

Goal

Problem

Benefits

Empirical Study

Research Questions

Data

Metrics

Strategy Identification

Results

RQ1

RQ2

RQ3

RQ4

Conclusion andFuture Work

Conclusion

Threats to Validity andFuture Work

30 / 30

Thanks for your attention!

top related