Upload
roberto-minelli
View
141
Download
1
Embed Size (px)
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