Measuring Navigation Efficiency in the IDE

Preview:

Citation preview

Measuring Navigation Efficiency in the IDE

Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland

@robertominelli

What is Interaction Data?

developer IDE

What is Interaction Data?

developer IDE

nav

igat

e

What is Interaction Data?

developer IDE

nav

igat

e

edit

What is Interaction Data?

developer IDE

nav

igat

e

edit

insp

ect

What is Interaction Data?

developer IDE

nav

igat

e

use

r in

pu

t

edit

insp

ect

What is Interaction Data?

developer IDE

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

What is Interaction Data?

developer IDE

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

interaction data

DFlow: Interaction Profiler

developer IDE

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

interaction data

DFlow

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

DFlow: Conceptual Model

DFlow: Conceptual Model

Event

TimestampWindow ID

DFlow: Conceptual Model

Entities

Meta Event

Navigation Event Inspect Event Edit Event

Event

TimestampWindow ID

DFlow: Conceptual Model

Position

User Input Event

Attributes

Mouse Event

Key Combination

Keystroke Event

Mouse Moved Mouse Button Mouse Wheel

DirectionButton IDStart PointEnd Point

Entities

Meta Event

Navigation Event Inspect Event Edit Event

Event

TimestampWindow ID

DFlow: Conceptual Model

Position

User Input Event

Attributes

Mouse Event

Key Combination

Keystroke Event

Mouse Moved Mouse Button Mouse Wheel

DirectionButton IDStart PointEnd Point

User Interface Event

Attributes

Window Event

Window Collapsed Window ExpandedWindow Moved Window Resized

Window Activated Window Closed Window LabelledWindow Opened

Old LabelNew Label

Initial PositionInitial Extent

Old PositionNew Position

Old SizeNew Size

Entities

Meta Event

Navigation Event Inspect Event Edit Event

Event

TimestampWindow ID

Our Dataset

765 sessions

6 developers

211k total events

>500 h total time

40 min avg. session duration

214 (29) navigation events (entities)

11 (5) edit events (entities)

51 (7) inspect events (entities)

Navigation Efficiency

ideal navigation effort

real navigation effort

Navigation Efficiency

ideal navigation effort

real navigation effort

Navigation EfficiencyNumber of

Navigation Events

ideal navigation effort

real navigation effort

Navigation EfficiencyNumber of

Navigation Events

?

Ideal Navigation Effort

The sum of the navigation costsneeded to reach the edited entities

Ideal Navigation Effort

The sum of the navigation costsneeded to reach the edited entities

Navigating Source Code

Navigating Source Code

package

Navigating Source Code

package class

Navigating Source Code

package class protocol

Navigating Source Code

package class methodprotocol

source code

Navigating Source Code

package class methodprotocol

cost = 1 cost = 2 cost = 3 cost = 4

Navigating Source Code (alternative)

Navigating Source Code (alternative)

cost = 1

Ideal Navigation Effort

The sum of the navigation costsneeded to reach the edited entities

Ideal Navigation Effort

The sum of the navigation costsneeded to reach the edited entities

Interaction History

t

Edited Entities

viewed entity

Program Entities

t

Edited Entities

t

viewed entity

edited entity

Program Entities

Edited Entities

tA B A.m1 A.m1A.m1 B C B.m2 B.m3

Edited Entities

tA B A.m1 A.m1A.m1 B C B.m2 B.m3

Working Sequence

Edited Entities

A BA.m1 A.m1

A.m1

BCB.m2 B.m3

Working Set

ideal navigation effort

real navigation effort

Navigation Efficiency

Navigation EfficiencyNavigation Efficiency

Navigation Efficiency

Working SequenceUnitary cost

Max cost

9.6%

38.7%

Navigation EfficiencyNavigation Efficiency

Navigation Efficiency

Working SequenceUnitary cost

Max cost

9.6%

38.7% 1.6x

9x

Navigation EfficiencyNavigation Efficiency

Navigation Efficiency

Working SetUnitary cost

Max cost

5.1%

20.6%

Working SequenceUnitary cost

Max cost

9.6%

38.7% 1.6x

9x

Navigation EfficiencyNavigation Efficiency

Navigation Efficiency

Working SetUnitary cost

Max cost

5.1%

20.6%

Working SequenceUnitary cost

Max cost

9.6%

38.7%

19x

1.6x

9x

4x

Navigation EfficiencyNavigation Efficiency

Developers navigate code with a raft. . .

. . .what about this for the future?

@robertominelli

Recommended