SlideShare a Scribd company logo
1 of 116
Download to read offline
Visualizing the Evolution 

of Working Sets
Roberto Minelli, Andrea Mocci, Michele Lanza
@robertominelli
REVEAL @ University of Lugano, Switzerland
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.”
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”
Integrated
Development
Environments
developer IDE
developer IDE
developer IDE
developer IDE
navigate
userinterface
userinput
edit
inspect
developer IDE
navigate
userinterface
userinput
edit
inspect
interaction
data
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
navigate
userinterface
userinput
edit
inspect
What is a working set?
What is a working set?
A group of program entities which a developer has
interacted with during a particular period of time
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
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
program
entities
nodes
program
entities
class
method
shape
nodes
program
entities
1 event
10+ events
edited
color&
stroke
nodes
class
method
shape
program
entities
1 event
10+ events
edited
color&
stroke
size
most recent
past event
nodes
class
method
shape
interaction
flow
edges
interaction
flow
edges
color&
width
1 occurrence
10+ occurrences
current
force-based
current
past
force-based
radial
non edited
entities
current
past
force-based
radial
current
past
edited
entities
non edited
entities
force-based
radial
Algorithm
For all events…
Algorithm
For all events…
view
contains
entity?
Add new entity node
Update entity nodeYes
No
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
Algorithm
Update entity node
Update edge
Algorithm
Update entity node
Update edge
Update color, size, and stroke
1 event
10+ events
edited
color&
stroke
size
most recent
past event
Algorithm
Update entity node
Update edge
Update color, size, and stroke
Reset TTL (current/past working set)
1 event
10+ events
edited
color&
stroke
size
most recent
past event
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
color&
stroke
size
most recent
past event
Algorithm
Update entity node
Update edge
Update color, size, and stroke
Reset TTL (current/past working set)
Update charge (80%)
Update color and width
color&
width
1 occurrence
10+ occurrences
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%)
color&
width
1 occurrence
10+ occurrences
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
Less charge: node less repulsive
Algorithm
Update entity node Update edge
Update charge (80%) Update strength (120%)
More strength: more attraction for the edges
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
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
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
Algorithm
Apply layout
Apply aging
Algorithm
Apply layout
Apply force-based layout to current ws
Apply aging
Algorithm
Apply layout
Apply force-based layout to current ws
Apply radial layout to past ws
Apply aging
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
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
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
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
Dataset
development sessions914
developers14
snapshots72,631
Visual Patterns
Visual Patterns
snapshot
Emerge by inspecting a
single snapshot of a
development session
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
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
Past: To Edit or Not To Edit
1 event
10+ events
edited
color&
stroke
Past: To Edit or Not To Edit
1 event
10+ events
edited
color&
stroke
Past: To Edit or Not To Edit
1 event
10+ events
edited
color&
stroke
Past: To Edit or Not To Edit
1 event
10+ events
edited
color&
stroke
U Can’t Touch This
1 event
10+ events
edited
color&
stroke
The Guiding Star
The Guiding Star
Stay Focused, Stay Foolish!
Moving in Circles
Moving in Circles
Visual Patterns
snapshot
Emerge by inspecting a
single snapshot of a
development session
Visual Patterns
evolutionary
Consider multiple
subsequent snapshots
during the evolution of a
development session
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 }
The Past Awakens
The Past Awakens
No past WS
Part 1
The Past Awakens
No past WS
Part 1 Part 2
Past WS increases
The Past Awakens
No past WS Past WS increases “The past awakens”
Part 1 Part 2 Part 3
(Past WS decreases)
Multi-Part Session
Multi-Part Session
Part 1
1st Task
Multi-Part Session
Part 1 Part 2
1st Task Exploration
Multi-Part Session
Part 1 Part 2 Part 3
1st Task Exploration 2nd Task
Multi-Part Session
Part 1 Part 2 Part 3 Part 4
1st Task Exploration 2nd Task Wrapping up
Thirst for Knowledge
Thirst for Knowledge
Part 1
Thirst for Knowledge
Part 1 Part 2
Thirst for Knowledge
Part 1 Part 2 Part 3
The Working Funnel (1)
The Working Funnel (1)
Part 1
The Working Funnel (1)
Part 1 Part 2
The Working Funnel (1)
Part 1 Part 2 Part 3
The Working Funnel (1)
Part 1 Part 2 Part 3 Part 4
The Working Funnel (2)
The Working Funnel (2)
Part 1
The Working Funnel (2)
Part 1 Part 2
The Working Funnel (2)
Part 1 Part 2 Part 3
The Working Funnel (2)
Part 1 Part 2 Part 3 Part 4
The Working Funnel (2)
Part 1 Part 2 Part 3 Part 4 Part 5
The Artifact
http://tiny.cc/minelli-artifact
The Artifact
http://tiny.cc/minelli-artifact
The Artifact
http://tiny.cc/minelli-artifact
The Artifact
http://tiny.cc/minelli-artifact
86 MB
The Artifact
http://tiny.cc/minelli-artifact
86 MB
Pharo IDE
The Artifact
http://tiny.cc/minelli-artifact
86 MB
Pharo IDE
Development
sessions (10)
The Artifact
http://tiny.cc/minelli-artifact
86 MB
Pharo IDE
Development
sessions (10)
Instructions
http://tiny.cc/minelli-artifact
$ ./pharo-ui Pharo.image
Open the Shell and execute the
following command to start the IDE:
http://tiny.cc/minelli-artifact
http://tiny.cc/minelli-artifact
http://tiny.cc/minelli-artifact
To run the code, select it (⌘+a) and press ⌘+d

You can also right click and press 'Do It'
http://tiny.cc/minelli-artifact
Demo
http://tiny.cc/minelli-artifact
1 : 0macOS Sierra Pharo IDE
Visualizing the Evolution of Working Sets
robertominelliRoberto Minelli, Andrea Mocci, Michele Lanza
Visualizing the Evolution of Working Sets
robertominelliRoberto Minelli, Andrea Mocci, Michele Lanza
Visualizing the Evolution of Working Sets
robertominelliRoberto Minelli, Andrea Mocci, Michele Lanza
Visualizing the Evolution of Working Sets
robertominelliRoberto Minelli, Andrea Mocci, Michele Lanza
Visualizing the Evolution of Working Sets
robertominelliRoberto Minelli, Andrea Mocci, Michele Lanza
Roberto Minelli
roberto.minelli@usi.ch @robertominelli minellir! "#
COMING
SoonON THE JOB MARKET
Roberto Minelli
roberto.minelli@usi.ch @robertominelli minellir! "#
Summer 2017
ARE YOU
HIRING?
Roberto Minelli
roberto.minelli@usi.ch @robertominelli minellir! "#
Roberto Minelli
roberto.minelli@usi.ch @robertominelli minellir! "#
CONTACT
ME!

More Related Content

Similar to Visualizing the Evolution of Working Sets

Story points considered harmful - or why the future of estimation is really i...
Story points considered harmful - or why the future of estimation is really i...Story points considered harmful - or why the future of estimation is really i...
Story points considered harmful - or why the future of estimation is really i...
Vasco Duarte
 
Aggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
Aggregating Ad Events with Kafka Streams and Interactive Queries at InvidiAggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
Aggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
HostedbyConfluent
 

Similar to Visualizing the Evolution of Working Sets (20)

Bayesian Autoencoders (BAE) & Honest Thoughts on research
Bayesian Autoencoders (BAE) & Honest Thoughts on research Bayesian Autoencoders (BAE) & Honest Thoughts on research
Bayesian Autoencoders (BAE) & Honest Thoughts on research
 
Woop - Workflow Optimizer
Woop - Workflow OptimizerWoop - Workflow Optimizer
Woop - Workflow Optimizer
 
The Ring programming language version 1.5.1 book - Part 6 of 180
The Ring programming language version 1.5.1 book - Part 6 of 180The Ring programming language version 1.5.1 book - Part 6 of 180
The Ring programming language version 1.5.1 book - Part 6 of 180
 
Story points considered harmful - or why the future of estimation is really i...
Story points considered harmful - or why the future of estimation is really i...Story points considered harmful - or why the future of estimation is really i...
Story points considered harmful - or why the future of estimation is really i...
 
The Ring programming language version 1.5.3 book - Part 7 of 184
The Ring programming language version 1.5.3 book - Part 7 of 184The Ring programming language version 1.5.3 book - Part 7 of 184
The Ring programming language version 1.5.3 book - Part 7 of 184
 
The Ring programming language version 1.5.4 book - Part 7 of 185
The Ring programming language version 1.5.4 book - Part 7 of 185The Ring programming language version 1.5.4 book - Part 7 of 185
The Ring programming language version 1.5.4 book - Part 7 of 185
 
Machine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedMachine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data Demystified
 
The Ring programming language version 1.10 book - Part 90 of 212
The Ring programming language version 1.10 book - Part 90 of 212The Ring programming language version 1.10 book - Part 90 of 212
The Ring programming language version 1.10 book - Part 90 of 212
 
Enterprise-architects as practical futurists
Enterprise-architects as practical futuristsEnterprise-architects as practical futurists
Enterprise-architects as practical futurists
 
Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]
 
Understanding Deep Learning
Understanding Deep LearningUnderstanding Deep Learning
Understanding Deep Learning
 
The Ring programming language version 1.5.1 book - Part 9 of 180
The Ring programming language version 1.5.1 book - Part 9 of 180The Ring programming language version 1.5.1 book - Part 9 of 180
The Ring programming language version 1.5.1 book - Part 9 of 180
 
Aggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
Aggregating Ad Events with Kafka Streams and Interactive Queries at InvidiAggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
Aggregating Ad Events with Kafka Streams and Interactive Queries at Invidi
 
Deep recommendations in PyTorch
Deep recommendations in PyTorchDeep recommendations in PyTorch
Deep recommendations in PyTorch
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
 
Solving Iterative Design Problems with TactonWorks
Solving Iterative Design Problems with TactonWorksSolving Iterative Design Problems with TactonWorks
Solving Iterative Design Problems with TactonWorks
 
Dssg talk CNN intro
Dssg talk CNN introDssg talk CNN intro
Dssg talk CNN intro
 
Easydd program
Easydd programEasydd program
Easydd program
 
Data Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science EnthusiastsData Visualization: A Quick Tour for Data Science Enthusiasts
Data Visualization: A Quick Tour for Data Science Enthusiasts
 
Data Visualization
Data VisualizationData Visualization
Data Visualization
 

More from Roberto Minelli

Interaction-Aware Development Environments
Interaction-Aware Development EnvironmentsInteraction-Aware Development Environments
Interaction-Aware Development Environments
Roberto Minelli
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
Roberto Minelli
 

More from Roberto Minelli (15)

SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
 
DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!
 
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani

 
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED

 
Interaction-Aware Development Environments
Interaction-Aware Development EnvironmentsInteraction-Aware Development Environments
Interaction-Aware Development Environments
 
Mining IDE Interaction Data
Mining IDE Interaction DataMining IDE Interaction Data
Mining IDE Interaction Data
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development Environments
 
The Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window PlagueThe Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window Plague
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
 
Free Hugs — Praising developers for their actions [ICSE2015]
Free Hugs — Praising developers for their actions  [ICSE2015]Free Hugs — Praising developers for their actions  [ICSE2015]
Free Hugs — Praising developers for their actions [ICSE2015]
 
Quantifying Program Comprehension with Interaction Data [QSIC2014]
Quantifying Program Comprehension with Interaction Data [QSIC2014]Quantifying Program Comprehension with Interaction Data [QSIC2014]
Quantifying Program Comprehension with Interaction Data [QSIC2014]
 
Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014]
 
Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]
 
Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]
 
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
 

Recently uploaded

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Visualizing the Evolution of Working Sets