Powering Real-Time Decisions with Continuous Data Streams
Mining IDE Interaction Data
1. Mining IDE Interaction Data
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
@robertominelli
NII
SHONAN MEETING
19. 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?
24. 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
25. 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
26. > 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
31. > RT > RT
w1 w2Editing time
Code Browser
Activity
Workspace
Code browser
Finder
32. > RT > RT
w1 w2
Understanding
time
Code Browser
Activity
Editing time
Workspace
Code browser
Finder
33. 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
34. 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
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”
36. 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”
37. 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?
38. Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
39. Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
No
Overlapping
40. Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Low
Overlapping
No
Overlapping
41. 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
42. Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Free Space
Overlapping Space
43. 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
44. Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
submitted at ICPC 2016
Comfy
Ok
Mess
Hell
45. 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%
46. 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%
47. 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%
48. 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%
49. 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
50. How do developers
navigate code?
Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
51. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
navigation efficiency
52. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effort
navigation efficiency =
53. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effort
navigation efficiency =
Number of
navigation events
54. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
real navigation effort
navigation efficiency =
Number of
navigation events
55. 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 costs
needed to reach the edited entities
navigation cost edited entities
56. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
57. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
class
package protocol
method
source
code
58. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
59. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
class
package
60. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
class
package protocol
method
61. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
class
package protocol
method
62. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
class
package protocol
method
source
code
66. 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 costs
needed to reach the edited entities
navigation cost edited entities
67. 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 costs
needed to reach the edited entities
navigation cost edited entities
68. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
event
t
69. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
event viewed entity
t
70. 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
71. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
t
edited entity
72. 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
73. 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
74. 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
75. 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
76. 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
B
A.m1
A.m1
A.m1 B
C
B.m2
B.m3
edited entity
set
sequence
77. Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
ideal navigation effort
navigation cost
edited entities
sequence
set
unitary
max
78. 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 effort
navigation efficiency =
79. How do developers
navigate code?
Measuring Navigation Efficiency in the IDE
R. Minelli, A. Mocci, M. Lanza
IWESEP 2015, pp. to appear
80. 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