mining ide interaction data
TRANSCRIPT
Mining IDE Interaction Data
Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland
@robertominelli
NII
SHONAN MEETING
Commit Comments
Source Code Changes
Q&AWebsites
DevelopmentE-Mails
Mobile App Stores
Documentation
PullRequests
?
IDE
developer IDE
developer
nav
igat
e
IDE
developer
nav
igat
e
edit
IDE
developer
nav
igat
e
edit
insp
ect
IDE
developer
nav
igat
e
use
r in
pu
t
edit
insp
ect
IDE
developer
nav
igat
e
user
inte
rfac
e
use
r in
pu
t
edit
insp
ect
IDE
developer
nav
igat
e
user
inte
rfac
e
use
r in
pu
t
edit
insp
ect
IDE
interaction data
developer
nav
igat
e
user
inte
rfac
e
use
r in
pu
t
edit
insp
ect
interaction data
IDE
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
A novel (MUDdy) source for mining...
...with a lot of untapped potential!
How do developers navigate code?
How do developers navigate code?
How chaotic is the UI of the IDE?
How do developers navigate code?
How chaotic is the UI of the IDE?
How do developers spend their time?
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
How do developers spend their time?
Edited method
Out of the IDE
Window Focus
Window FocusSearch
Events
Mouse
Keyboard
Window
Meta
Edited method
Out of the IDE
Window Focus
Window FocusSearch
Windows
Workspace
Code browser
Finder
Events
Mouse
Keyboard
Window
Meta
w1 w2 w3 w2 w4w2
Reaction Time (RT). The time that elapses between the end of a physical action sequence and the beginning of concrete mental processes like reflecting or planning
Reaction Time (RT). The time that elapses between the end of a physical action sequence and the beginning of concrete mental processes like reflecting or planning
This represents the basic moments of program comprehension
> RT > RT
This represents the basic moments of program comprehension
Reaction Time (RT). The time that elapses between the end of a physical action sequence and the beginning of concrete mental processes like reflecting or planning
> RT > RT
> RT > RT
w1 w2
> RT > RT
w1 w2
> RT > RT
w1 w2
Code Browser Activity
Workspace
Code browser
Finder
> RT > RT
w1 w2Editing time
Code Browser Activity
Workspace
Code browser
Finder
> RT > RT
w1 w2
Understanding time
Code Browser Activity
Editing time
Workspace
Code browser
Finder
w1 w2 w3 w2 w4w2
Edited method
> RT > RT
Out of the IDE
Window Focus
Window FocusSearch
Events
Mouse
Keyboard
Window
Meta
Sprees and Activities
Mouse
Keyboard
Activity
Windows
Workspace
Code browser
Finder
Understanding
70%
User Interface 14%
Outside the IDE 8%
Editing 5%
Navigating 4%
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
Understanding
70%
User Interface 14%
Outside the IDE 8%
Editing 5%
Navigating 4%
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
Principles of software engineering and design M. Zelkowitz, A. Shaw, J. Gannon
. Prentice Hall, 1979
Application Program Maintenance Study: Report to Our Respondents
. R. K. Fjeldstad, W. T. Hamlen . Tutorial on Software Maintenance, pp. 13–30, 1982
Program understanding: Challenge for the 1990s . T. A. Corbi
. IBM Systems Journal, vol. 28, no. 2, pp. 294–306, 1989
“Program understanding absorbs half of the time
of a developer”
User Interface 14%
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
“Developers spend 14% of their time by simply fiddling with the UI of the IDE”
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
How chaotic is the UI of the IDE?
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
No Overlapping
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Low Overlapping
No Overlapping
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
High Overlapping
Low Overlapping
No Overlapping
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Free Space
Overlapping Space
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Occupied Space
Free Space
Focus Space
Needed Space
Overlapping Space
Overlapping Depth
Weighted Overlapping Space
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Comfy
Ok
Mess
Hell
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Comfy
Ok
Mess
Hell
Hell 11%
Mess 21%
Ok 17%
Comfy 51%
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Comfy
Ok
Mess
Hell
Hell 11%
Mess 21%
Ok 17%
Comfy 51%
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Comfy
Ok
Mess
Hell
Hell 11%
Mess 21%
Ok 17%
Comfy 51%
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
User Interface 14%
vs.
Hell 11%
Mess 21%
Ok 17%
Comfy 51%
Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
User Interface 14%
vs.
Hell 11%
Mess 21%
Ok 17%
Comfy 51%
0.42
0.16Mess
Hell -0.04
-0.34Comfy
Ok
How do developers navigate code?
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
navigation efficiency
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effortnavigation efficiency =
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effortnavigation efficiency =
Number of navigation events
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effortnavigation efficiency =
Number of navigation events
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
The sum of the navigation costsneeded to reach the edited entities
navigation cost edited entities
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
classpackage protocol
method
source code
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
classpackage
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
classpackage protocol
method
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
classpackage protocol
method
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
classpackage protocol
method
source code
ideal navigation effort
class
package
protocol
method
= 1
= 2
= 3
= 4
ideal navigation effort
ideal navigation effort
= 1
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
The sum of the navigation costsneeded to reach the edited entities
navigation cost edited entities
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
The sum of the navigation costsneeded to reach the edited entities
navigation cost edited entities
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
event
t
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
event viewed entity
t
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
event viewed entity edited entity
t
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
t
edited entity
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
t
edited entity
A B B C
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
edited entity
tA B A.m1 A.m1A.m1 B C B.m2 B.m3 tA B A.m1 A.m1A.m1 B C B.m2 B.m3
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
edited entity
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
edited entity
sequence
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
tA B A.m1 A.m1A.m1 B C B.m2 B.m3
A
BA.m1
A.m1
A.m1 B
C
B.m2
B.m3
edited entity
set
sequence
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
navigation cost
edited entitiessequence
set
unitary
max
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
5.1% 20.6%
unitary max
9.6% 38.7%
sequence
set
ideal navigation effort
real navigation effortnavigation efficiency =
How do developers navigate code?
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
How do developers navigate code?
Not very efficiently
Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
interaction data
interaction data
Tab-based IDEs
Tab-based IDEs
Make this information actionable
Tab-based IDEs
Make this information actionable
@robertominelli
NII
SHONAN MEETING