mining ide interaction data

87
Mining IDE Interaction D ata Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland @robertominelli ܖտ捍 NII SHONAN MEETING

Upload: roberto-minelli

Post on 20-Feb-2017

184 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Mining IDE Interaction Data

Mining IDE Interaction Data

Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland

@robertominelli

NII

SHONAN MEETING

Page 2: Mining IDE Interaction Data
Page 3: Mining IDE Interaction Data

Commit Comments

Source Code Changes

Q&AWebsites

DevelopmentE-Mails

Mobile App Stores

Documentation

PullRequests

Page 4: Mining IDE Interaction Data

?

Page 5: Mining IDE Interaction Data

IDE

Page 6: Mining IDE Interaction Data

developer IDE

Page 7: Mining IDE Interaction Data

developer

nav

igat

e

IDE

Page 8: Mining IDE Interaction Data

developer

nav

igat

e

edit

IDE

Page 9: Mining IDE Interaction Data

developer

nav

igat

e

edit

insp

ect

IDE

Page 10: Mining IDE Interaction Data

developer

nav

igat

e

use

r in

pu

t

edit

insp

ect

IDE

Page 11: Mining IDE Interaction Data

developer

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

IDE

Page 12: Mining IDE Interaction Data

developer

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

IDE

interaction data

Page 13: Mining 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

Page 14: Mining IDE Interaction Data

A novel (MUDdy) source for mining...

Page 15: Mining IDE Interaction Data

...with a lot of untapped potential!

Page 16: Mining IDE Interaction Data

How do developers navigate code?

Page 17: Mining IDE Interaction Data

How do developers navigate code?

How chaotic is the UI of the IDE?

Page 18: Mining IDE Interaction Data

How do developers navigate code?

How chaotic is the UI of the IDE?

How do developers spend their time?

Page 19: Mining IDE Interaction Data

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?

Page 20: Mining IDE Interaction Data
Page 21: Mining IDE Interaction Data

Edited method

Out of the IDE

Window Focus

Window FocusSearch

Events

Mouse

Keyboard

Window

Meta

Page 22: Mining IDE Interaction Data

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

Page 23: Mining IDE Interaction Data
Page 24: Mining IDE Interaction Data

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

Page 25: Mining IDE Interaction Data

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

Page 26: Mining IDE Interaction Data

> 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

Page 27: Mining IDE Interaction Data

> RT > RT

Page 28: Mining IDE Interaction Data

> RT > RT

w1 w2

Page 29: Mining IDE Interaction Data

> RT > RT

w1 w2

Page 30: Mining IDE Interaction Data

> RT > RT

w1 w2

Code Browser Activity

Workspace

Code browser

Finder

Page 31: Mining IDE Interaction Data

> RT > RT

w1 w2Editing time

Code Browser Activity

Workspace

Code browser

Finder

Page 32: Mining IDE Interaction Data

> RT > RT

w1 w2

Understanding time

Code Browser Activity

Editing time

Workspace

Code browser

Finder

Page 33: Mining IDE Interaction Data

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

Page 34: Mining IDE Interaction Data

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

Page 35: Mining IDE Interaction Data

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”

Page 36: Mining IDE Interaction Data

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”

Page 37: Mining IDE Interaction Data

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?

Page 38: Mining IDE Interaction Data

Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza

submitted at ICPC 2016

Page 39: Mining IDE Interaction Data

Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza

submitted at ICPC 2016

No Overlapping

Page 40: Mining IDE Interaction Data

Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza

submitted at ICPC 2016

Low Overlapping

No Overlapping

Page 41: Mining IDE Interaction Data

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

Page 42: Mining IDE Interaction Data

Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza

submitted at ICPC 2016

Free Space

Overlapping Space

Page 43: Mining IDE Interaction Data

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

Page 44: Mining IDE Interaction Data

Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza

submitted at ICPC 2016

Comfy

Ok

Mess

Hell

Page 45: Mining IDE Interaction Data

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%

Page 46: Mining IDE Interaction Data

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%

Page 47: Mining IDE Interaction Data

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%

Page 48: Mining IDE Interaction Data

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%

Page 49: Mining IDE Interaction Data

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

Page 50: Mining IDE Interaction Data

How do developers navigate code?

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

Page 51: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

navigation efficiency

Page 52: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

real navigation effortnavigation efficiency =

Page 53: Mining IDE Interaction Data

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

Page 54: Mining IDE Interaction Data

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

Page 55: Mining IDE Interaction Data

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

Page 56: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

Page 57: Mining IDE Interaction Data

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

Page 58: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

Page 59: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

classpackage

Page 60: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

classpackage protocol

method

Page 61: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

classpackage protocol

method

Page 62: Mining IDE Interaction Data

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

Page 63: Mining IDE Interaction Data

ideal navigation effort

class

package

protocol

method

= 1

= 2

= 3

= 4

Page 64: Mining IDE Interaction Data

ideal navigation effort

Page 65: Mining IDE Interaction Data

ideal navigation effort

= 1

Page 66: Mining IDE Interaction Data

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

Page 67: Mining IDE Interaction Data

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

Page 68: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

event

t

Page 69: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

event viewed entity

t

Page 70: Mining IDE Interaction Data

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

Page 71: Mining IDE Interaction Data

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

ideal navigation effort

t

edited entity

Page 72: Mining IDE Interaction Data

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

Page 73: Mining IDE Interaction Data

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

Page 74: Mining IDE Interaction Data

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

Page 75: Mining IDE Interaction Data

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

Page 76: Mining IDE Interaction Data

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

Page 77: Mining IDE Interaction Data

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

Page 78: Mining IDE Interaction Data

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 =

Page 79: Mining IDE Interaction Data

How do developers navigate code?

Measuring Navigation Efficiency in the IDE R. Minelli, A. Mocci, M. Lanza

IWESEP 2015, pp. to appear

Page 80: Mining IDE Interaction Data

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

Page 81: Mining IDE Interaction Data
Page 82: Mining IDE Interaction Data

interaction data

Page 83: Mining IDE Interaction Data

interaction data

Page 84: Mining IDE Interaction Data
Page 85: Mining IDE Interaction Data

Tab-based IDEs

Page 86: Mining IDE Interaction Data

Tab-based IDEs

Make this information actionable

Page 87: Mining IDE Interaction Data

Tab-based IDEs

Make this information actionable

@robertominelli

NII

SHONAN MEETING