Measuring Navigation Efficiency in the IDE

minellir 314 views 47 slides Mar 13, 2016
Slide 1
Slide 1 of 47
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47

About This Presentation

My slides for IWESEP 2016 (7th IEEE International Workshop on Empirical Software Engineering in Practice)


Slide Content

Measuring Navigation

Efficiency in the IDE
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
@robertominelli

What is Interaction Data?
developer IDE

What is Interaction Data?
developer IDE
navigate

What is Interaction Data?
developer IDE
navigate
edit

What is Interaction Data?
developer IDE
navigate
editinspect

What is Interaction Data?
developer IDE
navigate
user inputeditinspect

What is Interaction Data?
developer IDE
navigate user interface
user inputeditinspect

What is Interaction Data?
developer IDE
navigate user interface
user inputeditinspect
interaction
data

DFlow: Interaction Profiler
developer IDE
navigate user interface
user inputeditinspect
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
Timestamp
Window ID

DFlow: Conceptual Model
Entities
Meta Event
Navigation EventInspect Event Edit Event
Event
Timestamp
Window ID

DFlow: Conceptual Model
Position
User Input Event
Attributes
Mouse Event
Key Combination
Keystroke Event
Mouse Moved Mouse Button Mouse Wheel
DirectionButton ID
Start Point
End PointEntities
Meta Event
Navigation EventInspect Event Edit Event
Event
Timestamp
Window ID

DFlow: Conceptual ModelPosition
User Input Event
Attributes
Mouse Event
Key Combination
Keystroke Event
Mouse Moved Mouse Button Mouse Wheel
DirectionButton ID
Start Point
End Point
User Interface Event
Attributes
Window Event
Window CollapsedWindow ExpandedWindow Moved Window Resized
Window Activated Window Closed Window LabelledWindow Opened
Old Label
New Label
Initial Position
Initial Extent
Old Position
New Position
Old Size
New SizeEntities
Meta Event
Navigation EventInspect Event Edit Event
Event
Timestamp
Window ID

Our Dataset
765sessions
6developers
211ktotal events
>500 htotal time
40 minavg. 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 Efficiency
Number of
Navigation Events

ideal navigation effort
real navigation effort
Navigation Efficiency
Number of
Navigation Events
?

Ideal Navigation Effort
The sum of the navigation costs

needed to reach the edited entities

Ideal Navigation Effort
The sum of the navigation costs

needed 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 costs

needed to reach the edited entities

Ideal Navigation Effort
The sum of the navigation costs

needed 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 BA.m1 A.m1A.m1 BC B.m2 B.m3

Edited Entities
tA BA.m1 A.m1A.m1 BC B.m2 B.m3
Working Sequence

Edited Entities
A B
A.m1A.m1 A.m1 B
C
B.m2B.m3
Working Set

ideal navigation effort
real navigation effort
Navigation Efficiency

Navigation Efficiency
Navigation Efficiency

Navigation Efficiency
Working Sequence
Unitary cost
Max cost
9.6%
38.7%
Navigation Efficiency
Navigation Efficiency

Navigation Efficiency
Working Sequence
Unitary cost
Max cost
9.6%
38.7% 1.6x
9x
Navigation Efficiency
Navigation Efficiency

Navigation Efficiency
Working Set
Unitary cost
Max cost
5.1%
20.6%Working Sequence Unitary cost Max cost 9.6% 38.7% 1.6x 9x
Navigation Efficiency
Navigation Efficiency

Navigation Efficiency
Working Set
Unitary cost
Max cost
5.1%
20.6%Working Sequence Unitary cost Max cost 9.6% 38.7%
19x1.6x 9x
4x
Navigation Efficiency
Navigation Efficiency

Developers navigate 

code with a raft...

...what about this 

for the future?

@robertominelli