Measuring Navigation Efficiency in the IDE
-
Upload
roberto-minelli -
Category
Software
-
view
141 -
download
1
Transcript of Measuring Navigation Efficiency in the IDE
![Page 1: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/1.jpg)
Measuring Navigation Efficiency in the IDE
Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland
@robertominelli
![Page 2: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/2.jpg)
What is Interaction Data?
developer IDE
![Page 3: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/3.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
![Page 4: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/4.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
edit
![Page 5: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/5.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
edit
insp
ect
![Page 6: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/6.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
use
r in
pu
t
edit
insp
ect
![Page 7: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/7.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
user
inte
rfac
e
use
r in
pu
t
edit
insp
ect
![Page 8: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/8.jpg)
What is Interaction Data?
developer IDE
nav
igat
e
user
inte
rfac
e
use
r in
pu
t
edit
insp
ect
interaction data
![Page 9: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/9.jpg)
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
![Page 10: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/10.jpg)
DFlow: Conceptual Model
![Page 11: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/11.jpg)
DFlow: Conceptual Model
Event
TimestampWindow ID
![Page 12: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/12.jpg)
DFlow: Conceptual Model
Entities
Meta Event
Navigation Event Inspect Event Edit Event
Event
TimestampWindow ID
![Page 13: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/13.jpg)
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
![Page 14: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/14.jpg)
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
![Page 15: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/15.jpg)
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)
![Page 16: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/16.jpg)
Navigation Efficiency
![Page 17: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/17.jpg)
ideal navigation effort
real navigation effort
Navigation Efficiency
![Page 18: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/18.jpg)
ideal navigation effort
real navigation effort
Navigation EfficiencyNumber of
Navigation Events
![Page 19: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/19.jpg)
ideal navigation effort
real navigation effort
Navigation EfficiencyNumber of
Navigation Events
?
![Page 20: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/20.jpg)
Ideal Navigation Effort
The sum of the navigation costsneeded to reach the edited entities
![Page 21: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/21.jpg)
Ideal Navigation Effort
The sum of the navigation costsneeded to reach the edited entities
![Page 22: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/22.jpg)
Navigating Source Code
![Page 23: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/23.jpg)
Navigating Source Code
package
![Page 24: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/24.jpg)
Navigating Source Code
package class
![Page 25: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/25.jpg)
Navigating Source Code
package class protocol
![Page 26: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/26.jpg)
Navigating Source Code
package class methodprotocol
source code
![Page 27: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/27.jpg)
Navigating Source Code
package class methodprotocol
cost = 1 cost = 2 cost = 3 cost = 4
![Page 28: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/28.jpg)
Navigating Source Code (alternative)
![Page 29: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/29.jpg)
Navigating Source Code (alternative)
cost = 1
![Page 30: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/30.jpg)
Ideal Navigation Effort
The sum of the navigation costsneeded to reach the edited entities
![Page 31: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/31.jpg)
Ideal Navigation Effort
The sum of the navigation costsneeded to reach the edited entities
![Page 32: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/32.jpg)
Interaction History
t
![Page 33: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/33.jpg)
Edited Entities
viewed entity
Program Entities
t
![Page 34: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/34.jpg)
Edited Entities
t
viewed entity
edited entity
Program Entities
![Page 35: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/35.jpg)
Edited Entities
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
![Page 36: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/36.jpg)
Edited Entities
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
Working Sequence
![Page 37: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/37.jpg)
Edited Entities
A BA.m1 A.m1
A.m1
BCB.m2 B.m3
Working Set
![Page 38: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/38.jpg)
ideal navigation effort
real navigation effort
Navigation Efficiency
![Page 39: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/39.jpg)
Navigation EfficiencyNavigation Efficiency
![Page 40: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/40.jpg)
Navigation Efficiency
Working SequenceUnitary cost
Max cost
9.6%
38.7%
Navigation EfficiencyNavigation Efficiency
![Page 41: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/41.jpg)
Navigation Efficiency
Working SequenceUnitary cost
Max cost
9.6%
38.7% 1.6x
9x
Navigation EfficiencyNavigation Efficiency
![Page 42: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/42.jpg)
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
![Page 43: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/43.jpg)
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
![Page 44: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/44.jpg)
![Page 45: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/45.jpg)
Developers navigate code with a raft. . .
![Page 46: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/46.jpg)
. . .what about this for the future?
![Page 47: Measuring Navigation Efficiency in the IDE](https://reader031.fdocuments.us/reader031/viewer/2022030206/58aacdc01a28ab2f728b5e8d/html5/thumbnails/47.jpg)
@robertominelli