visualizing the evolution of working sets

116
Visualizing the Evolution of Working Set s Roberto Minelli , Andrea Mocci, Michele Lanza @ robertominelli REVEAL @ University of Lugano, Switzerland

Upload: roberto-minelli

Post on 20-Feb-2017

57 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working Sets

Roberto Minelli, Andrea Mocci, Michele Lanza

@robertominelli

REVEAL @ University of Lugano, Switzerland

Page 2: Visualizing the Evolution of Working Sets

Footprints: History-rich tools for information foraging A. Wexelblat, P. Maes

SIGCHI 1999, pp. 270–277

“The information path obtained from navigation in an information space reveals the user’s mental model of the system.”

Page 3: Visualizing the Evolution of Working Sets

Program understanding: Challenge for the 1990s T. A. Corbi

IBM Systems Journal 1989, vol. 28, no. 2, pp. 294–306

“Maintaining the mental model is an essential part of program comprehension”

Page 4: Visualizing the Evolution of Working Sets

Integrated Development Environments

Page 5: Visualizing the Evolution of Working Sets

developer IDE

Page 6: Visualizing the Evolution of Working Sets

developer IDE

Page 7: Visualizing the Evolution of Working Sets

developer IDE

Page 8: Visualizing the Evolution of Working Sets

developer IDE

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

Page 9: Visualizing the Evolution of Working Sets

developer IDE

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

interaction data

Page 10: Visualizing the Evolution of Working Sets

developer 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

interaction data

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

Page 11: Visualizing the Evolution of Working Sets

What is a working set?

Page 12: Visualizing the Evolution of Working Sets

What is a working set?

A group of program entities which a developer has

interacted with during a particular period of time

Page 13: Visualizing the Evolution of Working Sets

What is a working set?

current

The entities interacted

in the last timeframe

(in terms of number of interactions or in a period of time)

A group of program entities which a developer has

interacted with during a particular period of time

Page 14: Visualizing the Evolution of Working Sets

What is a working set?

current past

The entities interacted

in the last timeframe

(in terms of number of interactions or in a period of time)

The entities interacted

in the past

(before the current working set)

A group of program entities which a developer has

interacted with during a particular period of time

Page 15: Visualizing the Evolution of Working Sets
Page 16: Visualizing the Evolution of Working Sets

program entities

nodes

Page 17: Visualizing the Evolution of Working Sets

program entities

class

methodsha

pe

nodes

Page 18: Visualizing the Evolution of Working Sets

program entities

1 event

10+ events

editedcolo

r &

st

roke

nodes

class

methodsha

pe

Page 19: Visualizing the Evolution of Working Sets

program entities

1 event

10+ events

editedcolo

r &

st

roke

size

most recent

past event

nodes

class

methodsha

pe

Page 20: Visualizing the Evolution of Working Sets

interaction flow

edges

Page 21: Visualizing the Evolution of Working Sets

interaction flow

edges

colo

r &

w

idth 1 occurrence

10+ occurrences

Page 22: Visualizing the Evolution of Working Sets
Page 23: Visualizing the Evolution of Working Sets

currentforce-based

Page 24: Visualizing the Evolution of Working Sets

current

past

force-based

radial

Page 25: Visualizing the Evolution of Working Sets

non edited entities

current

past

force-based

radial

Page 26: Visualizing the Evolution of Working Sets

current

past

edited entities

non edited entities

force-based

radial

Page 27: Visualizing the Evolution of Working Sets

Algorithm

For all events…

Page 28: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity nodeYes

No

Page 29: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity node

view contains

edge?

Add new edge

Update edge

Yes

Yes

No

No

Page 30: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Page 31: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Update color, size, and stroke

1 event

10+ events

edited

colo

r &

st

roke

size

most recent

past event

Page 32: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Update color, size, and stroke

Reset TTL (current/past working set)

1 event

10+ events

edited

colo

r &

st

roke

size

most recent

past event

Page 33: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Update color, size, and stroke

Reset TTL (current/past working set)

Update charge (80%)

1 event

10+ events

edited

colo

r &

st

roke

size

most recent

past event

Page 34: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Update color, size, and stroke

Reset TTL (current/past working set)

Update charge (80%)

Update color and width

colo

r &

w

idth 1 occurrence

10+ occurrences

Page 35: Visualizing the Evolution of Working Sets

Algorithm

Update entity node

Update edge

Update color, size, and stroke

Reset TTL (current/past working set)

Update charge (80%)

Update color and width

Update strength (120%)

colo

r &

w

idth 1 occurrence

10+ occurrences

Page 36: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Page 37: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Page 38: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Page 39: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Page 40: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Page 41: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

Less charge: node less repulsive

Page 42: Visualizing the Evolution of Working Sets

Algorithm

Update entity node Update edge

Update charge (80%) Update strength (120%)

More strength: more attraction for the edges

Page 43: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity node

view contains

edge?

Add new edge

Update edge

Yes

Yes

No

No

Page 44: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity node

view contains

edge?

Add new edge

Update edge

Apply layout

Yes

Yes

No

No

Page 45: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity node

view contains

edge?

Add new edge

Update edge

Apply layout

Apply aging

Yes

Yes

No

No

Page 46: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply aging

Page 47: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply force-based layout to current ws

Apply aging

Page 48: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply force-based layout to current ws

Apply radial layout to past ws

Apply aging

Page 49: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply force-based layout to current ws

Apply radial layout to past ws

Apply aging

Decrease TTL of nodes in the current ws

Page 50: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply force-based layout to current ws

Apply radial layout to past ws

Apply aging

Decrease TTL of nodes in the current ws

Decrease size of nodes in the current ws size

most recent

past event

Page 51: Visualizing the Evolution of Working Sets

Algorithm

Apply layout

Apply force-based layout to current ws

Apply radial layout to past ws

Apply aging

Decrease TTL of nodes in the current ws

Decrease size of nodes in the current ws

Disconnect nodes with TTL = 0

size

most recent

past event

Page 52: Visualizing the Evolution of Working Sets

Algorithm

For all events…

view contains entity?

Add new entity node

Update entity node

view contains

edge?

Add new edge

Update edge

Apply layout

Apply aging

Yes

Yes

No

No

Page 53: Visualizing the Evolution of Working Sets

Dataset

development sessions914

developers14

snapshots72,631

Page 54: Visualizing the Evolution of Working Sets

Visual Patterns

Page 55: Visualizing the Evolution of Working Sets

Visual Patterns

snapshot

Emerge by inspecting a

single snapshot of a

development session

Page 56: Visualizing the Evolution of Working Sets

Visual Patterns

evolutionary

Consider multiple

subsequent snapshots

during the evolution of a

development session

snapshot

Emerge by inspecting a

single snapshot of a

development session

Page 57: Visualizing the Evolution of Working Sets

Visual Patterns

Past: To Edit or Not To Edit

U Can’t Touch This

The Guiding Star

Stay Focused, Stay Foolish!

Moving in Circles{snapshot

Emerge by inspecting a

single snapshot of a

development session

Page 58: Visualizing the Evolution of Working Sets

Past: To Edit or Not To Edit

1 event

10+ events

editedcolo

r &

st

roke

Page 59: Visualizing the Evolution of Working Sets

Past: To Edit or Not To Edit

1 event

10+ events

editedcolo

r &

st

roke

Page 60: Visualizing the Evolution of Working Sets

Past: To Edit or Not To Edit

1 event

10+ events

editedcolo

r &

st

roke

Page 61: Visualizing the Evolution of Working Sets

Past: To Edit or Not To Edit

1 event

10+ events

editedcolo

r &

st

roke

Page 62: Visualizing the Evolution of Working Sets

U Can’t Touch This

1 event

10+ events

editedcolo

r &

st

roke

Page 63: Visualizing the Evolution of Working Sets

The Guiding Star

Page 64: Visualizing the Evolution of Working Sets

The Guiding Star

Page 65: Visualizing the Evolution of Working Sets

Stay Focused, Stay Foolish!

Page 66: Visualizing the Evolution of Working Sets

Moving in Circles

Page 67: Visualizing the Evolution of Working Sets

Moving in Circles

Page 68: Visualizing the Evolution of Working Sets

Visual Patterns

snapshot

Emerge by inspecting a

single snapshot of a

development session

Page 69: Visualizing the Evolution of Working Sets

Visual Patterns

evolutionary

Consider multiple

subsequent snapshots

during the evolution of a

development session

Page 70: Visualizing the Evolution of Working Sets

Visual Patterns

evolutionary

Consider multiple

subsequent snapshots

during the evolution of a

development session

The Past Awakens

Multi-Part Session

Thirst for Knowledge

The Working Funnel }

Page 71: Visualizing the Evolution of Working Sets

The Past Awakens

Page 72: Visualizing the Evolution of Working Sets

The Past Awakens

No past WS

Part 1

Page 73: Visualizing the Evolution of Working Sets

The Past Awakens

No past WS

Part 1 Part 2

Past WS increases

Page 74: Visualizing the Evolution of Working Sets

The Past Awakens

No past WS Past WS increases “The past awakens”

Part 1 Part 2 Part 3

(Past WS decreases)

Page 75: Visualizing the Evolution of Working Sets

Multi-Part Session

Page 76: Visualizing the Evolution of Working Sets

Multi-Part Session

Part 1

1st Task

Page 77: Visualizing the Evolution of Working Sets

Multi-Part Session

Part 1 Part 2

1st Task Exploration

Page 78: Visualizing the Evolution of Working Sets

Multi-Part Session

Part 1 Part 2 Part 3

1st Task Exploration 2nd Task

Page 79: Visualizing the Evolution of Working Sets

Multi-Part Session

Part 1 Part 2 Part 3 Part 4

1st Task Exploration 2nd Task Wrapping up

Page 80: Visualizing the Evolution of Working Sets

Thirst for Knowledge

Page 81: Visualizing the Evolution of Working Sets

Thirst for Knowledge

Part 1

Page 82: Visualizing the Evolution of Working Sets

Thirst for Knowledge

Part 1 Part 2

Page 83: Visualizing the Evolution of Working Sets

Thirst for Knowledge

Part 1 Part 2 Part 3

Page 84: Visualizing the Evolution of Working Sets

The Working Funnel (1)

Page 85: Visualizing the Evolution of Working Sets

The Working Funnel (1)

Part 1

Page 86: Visualizing the Evolution of Working Sets

The Working Funnel (1)

Part 1 Part 2

Page 87: Visualizing the Evolution of Working Sets

The Working Funnel (1)

Part 1 Part 2 Part 3

Page 88: Visualizing the Evolution of Working Sets

The Working Funnel (1)

Part 1 Part 2 Part 3 Part 4

Page 89: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Page 90: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Part 1

Page 91: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Part 1 Part 2

Page 92: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Part 1 Part 2 Part 3

Page 93: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Part 1 Part 2 Part 3 Part 4

Page 94: Visualizing the Evolution of Working Sets

The Working Funnel (2)

Part 1 Part 2 Part 3 Part 4 Part 5

Page 95: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

Page 96: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

Page 97: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

Page 98: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

86 MB

Page 99: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

86 MB

Pharo IDE

Page 100: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

86 MB

Pharo IDE

Development

sessions (10)

Page 101: Visualizing the Evolution of Working Sets

The Artifact

http://tiny.cc/minelli-artifact

86 MB

Pharo IDE

Development

sessions (10)

Instructions

Page 102: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

$ ./pharo-ui Pharo.image

Open the Shell and execute the

following command to start the IDE:

Page 103: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

Page 104: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

Page 105: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

To run the code, select it (⌘+a) and press ⌘+dYou can also right click and press 'Do It'

Page 106: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

Demo

Page 107: Visualizing the Evolution of Working Sets

http://tiny.cc/minelli-artifact

1 : 0macOS Sierra Pharo IDE

Page 108: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working SetsrobertominelliRoberto Minelli, Andrea Mocci, Michele Lanza

Page 109: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working SetsrobertominelliRoberto Minelli, Andrea Mocci, Michele Lanza

Page 110: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working SetsrobertominelliRoberto Minelli, Andrea Mocci, Michele Lanza

Page 111: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working SetsrobertominelliRoberto Minelli, Andrea Mocci, Michele Lanza

Page 112: Visualizing the Evolution of Working Sets

Visualizing the Evolution of Working SetsrobertominelliRoberto Minelli, Andrea Mocci, Michele Lanza

Page 113: Visualizing the Evolution of Working Sets

Roberto Minelli [email protected] @robertominelli minellir! "#

Page 114: Visualizing the Evolution of Working Sets

COMINGSoonON THE JOB MARKET

Roberto Minelli [email protected] @robertominelli minellir! "#

Summer 2017

Page 115: Visualizing the Evolution of Working Sets

ARE YOU

HIRING?

Roberto Minelli [email protected] @robertominelli minellir! "#

Page 116: Visualizing the Evolution of Working Sets

Roberto Minelli [email protected] @robertominelli minellir! "#

CONTACT

ME!