mining ide interaction data

Post on 20-Feb-2017

184 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

top related