Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Interaction-Aware
Development Environments
Research Advisor
Prof. Michele Lanza
Dissertation Committee
Prof. Serge Demeyer...
Interaction-Aware
Development Environments
Interaction-Aware
Development Environments
record mine leverage
Interaction-Aware
Development Environments
record mine leverage
understand support
Interactions with the IDE
Interactions with the IDE
Interactions with the IDE
Interactions with the IDE
Interactions with the IDE
Interactions with the IDE
IDE interaction data
Interactions with the IDE
Interactions with the IDE
support software engineering activities
evolve IDEs according to user needs
How Are Java Softwar...
“Interaction-Aware Development Environments
enable novel and in-depth analyses of the behavior
of software developers and ...
The Pharo IDE
workspace
spotter
inspector
debugger
code
browser
finder
senders
browser
implementors

browser
Pharo Object Model
Pharo Object Model
packages
Pharo Object Model
classes
packages
Pharo Object Model
classes protocols
packages
Pharo Object Model
classes protocols
packages selectors
(methods)
Pharo Object Model
source
code
classes protocols
packages selectors
(methods)
Prologue
1
Recording, Modeling, and 

Interpreting Interaction Data
2
2
Recording, Modeling, and 

Interpreting Interaction Data
Modeling and Recording IDE Interactions
Modeling IDE Interactions
Modeling IDE Interactions
interaction
event
Modeling IDE Interactions
meta

event
interaction
event
• Selecting a method or a class in the code browser
• Stepping in ...
Modeling IDE Interactions
meta

event
user input
event
interaction
event
• Pressing a mouse button
• Pressing a keystroke ...
meta

event
user input
event
user interface
event
interaction
event
• Opening or closing a window
• Resizing or moving a w...
DFlow
IDE Interactions
DFlow: Recording IDE Interactions
DFlow
DFlow: Recording IDE Interactions
DFlow
filter
Interesting Interactions
Irrelevant Interactions
DFlow: Recording IDE Interactions
DFlow
Recorder
Visualizer
…
propagate
pub/sub
filter
Interesting Interactions
Irrelevant Interactions
Propagated Interacti...
DFlow: Recording IDE Interactions
PositionEntities
User Input EventMeta Event User Interface Event
Navigation Event Inspec...
sessions
development time
events
windows
1,631
>770h
~9.5M
>40k
developers17
2
Recording, Modeling, and 

Interpreting Interaction Data
Modeling and Recording IDE Interactions
2
Recording, Modeling, and 

Interpreting Interaction Data
Interpreting and Analyzing the Data
Modeling and Recording IDE ...
Interpreting and Analyzing the Data
Interpreting and Analyzing the Data
program
understanding
Interpreting and Analyzing the Data
program
understanding
development

activities
Interpreting and Analyzing the Data
program
understanding
development

activities
navigation

efficiency
Development

Activities
Navigation

Efficiency
program
understanding
development

activities
navigation

efficiency
“Program comprehension takes more than half the time
spent on software maintenance”
program
understanding
“Maintenance acc...
“Program comprehension takes more than half the time
spent on software maintenance”
program
understanding
“Maintenance acc...
Modeling Interaction Histories
t1
NR NR NW NR
t2 t3 t6
NR
t4
NR
t5
t1
N N E N I N
t2 t3 t4 t5 t6
Modeling Interaction Histories
t1
NR NR NW NR
t2 t3 t6
NR
t4
NR
t5
t1
N N E N I N
t2 t3 t4 t5 t6
events are instantaneous!
Modeling Interaction Histories
t1
N N E N I N
t2 t3 t4 t5 t6
UnderstandNavigation Edit Inspect
t1
NR NR NW NR
t2 t3 t6
NR
...
Modeling Interaction Histories
t1
N N N N
t2 t4 t7
N
t5
N
t6
E
t1
N N E N I N
t2 t3 t4 t5 t6
t3
UnderstandNavigation Edit ...
program
understanding
development

activities
navigation

efficiency
time54-88%
56-94% time
program
understanding
development

activities
navigation

efficiency
time54-88%
56-94% time
“Program comprehension occupie...
Interpreting and Analyzing the Data
program
understanding
Interpreting and Analyzing the Data
program
understanding
development

activities
meta events
+ low-level eventsmeta events
Reconstructing Development Activities
Reconstructing Development Activities
events
sprees
t
t
method
saved
search
starts
search
ends
out/in
the IDE
window
activ...
events
sprees
t
t
method
saved
search
starts
search
ends
out/in
the IDE
window
activated
window
activated
active window
>R...
Reconstructing Development Activities
events
sprees
t
t
method
saved
search
starts
search
ends
out/in
the IDE
window
activ...
Reconstructing Development Activities
active window
activities t
A1 A2 A3 A4 A5 A6 A7
Mouse Keyboard
Window Meta
Events
Mo...
Reconstructing Development Activities
activities t
A1 A2 A3 A4 A5 A6 A7
Mouse Keyboard
Window Meta
Events
Mouse Keyboard
A...
Reconstructing Development Activities
activities t
A1 A2 A3 A4 A5 A6 A7
understanding
time(basic)
Mouse Keyboard
Window Me...
understanding
time
editing
time
Reconstructing Development Activities
Reconstructing Development Activities
understanding
time
editing
time
user interface
time
Reconstructing Development Activities
understanding
time
editing
time
user interface
time
navigation
time
Reconstructing Development Activities
understanding
time
editing
time
user interface
time
navigation
time
outside IDE
time
8%
4%
14%
5%
69%
How Do Developers Spend Their Time?
70%
5%
14%
4%
8%
The Impact of Work Fragmentation
The Impact of Work Fragmentation
time spent
outside the IDE
number of times
outside the IDE
The Impact of Work Fragmentation
time spent
outside the IDE
number of times
outside the IDE
understanding
time
user interf...
The Impact of Work Fragmentation
vs.
time spent
outside the IDE
number of times
outside the IDE
understanding
time
user in...
The Impact of Work Fragmentation
time spent
outside the IDE
number of times
outside the IDE
understanding
time
user interf...
The more fragmented is the workflow of developers…
…the more time they need to rearrange 

the UI of the IDE and to unders...
Interpreting and Analyzing the Data
development

activities
program
understanding
program
understanding
development

activities
navigation

efficiency
Interpreting and Analyzing the Data
=
ideal navigation effort
real navigation effort
Modeling Navigation Efficiency
=
ideal navigation effort
real navigation effort
Modeling Navigation Efficiency
recorded IDE interactions
=
ideal navigation effort
real navigation effort
Modeling Navigation Efficiency
estimation
recorded IDE interactions
Estimating the Ideal Navigation Effort
ideal navigation effort
real navigation effort
Estimating the Ideal Navigation Effort
ideal navigation effort
real navigation effort
navigation cost
Estimating the Ideal Navigation Effort
ideal navigation effort
real navigation effort
navigation cost involved entities
Navigation Cost
ideal navigation effort
real navigation effort
Navigation Cost
ideal navigation effort
real navigation effort
optimistic
unitary cost
Navigation Cost
ideal navigation effort
real navigation effort
pessimistic
maximum cost
Navigation Cost
ideal navigation effort
real navigation effort
realistic
Δ-cost or UI-aware
Estimating the Ideal Navigation Effort
ideal navigation effort
real navigation effort
navigation cost involved entities
Estimating the Ideal Navigation Effort
ideal navigation effort
real navigation effort
navigation cost involved entities
Involved Entities
ideal navigation effort
real navigation effort
Involved Entities
ideal navigation effort
real navigation effort
edited
Involved Entities
ideal navigation effort
real navigation effort
t
edited
Involved Entities
ideal navigation effort
real navigation effort
t
sequence
edited
Involved Entities
ideal navigation effort
real navigation effort
t
sequence
set
edited
Involved Entities
ideal navigation effort
real navigation effort
t
sequence
set
edited
Involved Entities
ideal navigation effort
real navigation effort
t
sequence
set
sorted set
edited
involved
entities
navigation
cost
optimistic
pessimistic
realistic
sequence
set
sorted set
unitary cost
maximum cost
Δ-cos...
Navigation Efficiency
≈ 5-39%
ideal navigation effort
real navigation effort
Navigation Efficiency
D1 D2 D3 D4 D5 D6
0.00.10.20.30.40.5
≈ 5-39%
ideal navigation effort
real navigation effort
Developers perform

more navigations than needed
Developers perform

more navigations than needed
≈ 13-17x
1
navigation efficiency
- 1
Recording, Modeling, and 

Interpreting Interaction Data
2
Visual Analytics of 

Development Sessions
3
3
Visual Analytics of 

Development Sessions
Visualizing User Interface Interactions
Visualizing Developer Interactions

R...
Track of Windows
Track of Windows
main window
Track of Windows
main window
short window(s)
UI View
Open
Activate
Resize/Move
Close
Minimize/Expand
Minimized Backbone
Track of Windows
UI View
Open
Activate
Resize/Move
Close
Minimize/Expand
Minimized Backbone
Track of Windows
UI View
Open
Activate
Resize/Move
Close
Minimize/Expand
Minimized Backbone
Track of Windows
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
10:20 20:12
Activity Timeline
Navigation
Inspection
Edit
Underst...
storytelling
storytelling classification
storytelling
The Inspection Valley
Implement First, Verify Later
Home Sweet Home
Curing the Window Plague
The Inspection Valley
The Inspection Valley
“[…] developers using a modern IDE are forced to
open views on numerous source artifacts to reveal
[these] hidden relation...
Curing the Window Plague
Curing the Window Plague
storytelling
storytelling classification
classification
classification
dominant track
single-track
multi-track
fragmented
classification
dominant track
track flow
single-track
sequential
multi-track
ping-pong
fragmented
not classifiedfragmented
multi-track
single-track
ping-pong
not classified
sequential
dominant track
track flow
3
Visual Analytics of 

Development Sessions
Visualizing User Interface Interactions
Visualizing Developer Interactions

R...
3
Visual Analytics of 

Development Sessions
Visualizing User Interface Interactions
Visualizing the Evolution of Working ...
What is a Working Set?
A group of program entities which a developer has
interacted with during a particular period of time.
Method
Class
What is...
A group of program entities which a developer has
interacted with during a particular period of time.
Method
Class
What is...
A group of program entities which a developer has
interacted with during a particular period of time.
Method
Class
What is...
Nodes
shape
1 event
10+ events
edited
color&
stroke
recent
old
size
Edges
color&
stroke
1 occurrence
10+ occurrences
past
...
snapshots / session~80
snapshots72,613
snapshots / session
working set (ws) size
current ws size
~80
10
7
snapshots72,613
past ws size3
Visual Patterns
Visual Patterns
snapshot
Visual Patterns
snapshot evolutionary
Visual Patterns
Past: To Edit or Not To Edit
U Can’t Touch This
The Guiding Star
Stay Focused, Stay Foolish!
Moving in Cir...
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
Past: To Edit or Not To Edit
U Can’t Touch This
The Guiding Star
Stay Focused, Stay Foolish!
Moving in Cir...
Visual Patterns
The Past Awakens
Multi-Part Session
Thirst for Knowledge
The Working Funnel
evolutionary
The Past Awakens
part 1 part 2 part 3
no past WS past WS increases the past awakens
(i.e., past WS decreases)
Multi-Part Session
part 1 part 2 part 4part 3
1st task exploration 2nd task wrapping up
The Working Funnel
part 1 part 2 part 4part 3 part 5
The Working Funnel
part 1 part 2 part 3 part 4
Visual Analytics of 

Development Sessions
3
Supporting Developers 

with Interaction Data
4
4
Supporting Developers 

with Interaction Data
The Plague Doctor
The Plague Doctor: A Promising Cure for the Window Plagu...
The Window Plague
Autumn Leaves: Curing the Window Plague in IDEs

D. Röthlisberger, O. Nierstrasz, S. Ducasse. WCRE 2009
AutumnLeaves automatically selects windows unlikely
for future use to be closed or grayed out while
important ones are dis...
The Plague Doctor
The Plague Doctor
The Plague Doctor
The Plague Doctor
young old
age
pinned
extra
low
importance
high
Models & Strategies
models strategies
Models & Strategies
models strategies
entities windows
Models & Strategies
models strategies
closingweightingentities windows
models strategies
closingweightingentities windows
fixed update top # windows
below threshold
Models & Strategies
The Plague Doctor
The Plague Doctor
The Plague Doctor
The Plague Doctor
The Plague Doctor
4
Supporting Developers 

with Interaction Data
The Plague Doctor
The Plague Doctor: A Promising Cure for the Window Plagu...
4
Supporting Developers 

with Interaction Data
The Plague Doctor
Taming the UI of the IDE
The Plague Doctor: A Promising ...
Chaotic IDE Configurations
Chaotic IDE Configurations
Chaotic IDE Configurations
Chaotic IDE Configurations
Chaotic IDE Configurations
screen
space
Space Occupancy Metrics
Space Occupancy Metrics
screen
space
free
space
Space Occupancy Metrics
screen
space
free
space
no
overlapping
Space Occupancy Metrics
screen
space
free
space
no
overlappinglow overlap
(depth: 2)
Space Occupancy Metrics
screen
space
free
space
no
overlappinglow overlap
(depth: 2)
high overlap
(depth: 4)
Space Occupancy Metrics
no
overlappinglow overlap
(depth: 2)
high overlap
(depth: 4)
free
space
focus
space
screen
space
Space Occupancy Metrics
+ +
+
needed
space+ + =
Space Occupancy Metrics
space overlapping
occupied
free
focus
needed
space
depth
weighted
20.95%
2.76
69.05%
48.22%
51.78%...
Chaos Levels
Chaos Levels
comfy ok
Chaos Levels
comfy ok mess hell
16.98% 21.11% 10.88%51.4%
Chaos Levels
comfy ok mess hell
11%
21%
17%
51%
Developers spend more than 30% of their time 

in highly chaotic IDE configurations…
so
what?
Developers spend more than 30% of their time 

in highly chaotic IDE configurations…
Chaos, UI, and Understanding
8%
4%
14%
5%
69% 70%
5%
14%
4%
8%
I Know What You Did Last Summer

R. Minelli, A. Mocci, M. L...
Chaos, UI, and Understanding
vs.
I Know What You Did Last Summer

R. Minelli, A. Mocci, M. Lanza. ICPC 2015
11%
21%
17%
51%
Chaos, UI, and Understanding
vs.
I Know What You Did Last Summer

R. Minelli, A. Mocci, M. Lanza. ICPC 2015
11%
21%
17%
51...
Chaos, UI, and Understanding
vs.
I Know What You Did Last Summer

R. Minelli, A. Mocci, M. Lanza. ICPC 2015
11%
21%
17%
51...
Chaos, UI, and Understanding
vs.
I Know What You Did Last Summer

R. Minelli, A. Mocci, M. Lanza. ICPC 2015
11%
21%
17%
51...
Developers spend more than 30% of their time 

in highly chaotic IDE configurations…
Developers spend more than 30% of their time 

in highly chaotic IDE configurations…
…and this impacts both 

UI and under...
197
Windows, Focus, and Source Code
code browser debugger send / implement
Windows, Focus, and Source Code
source code
Windows, Focus, and Source Code
code browser debugger send / implement
Taming Strategies
= +
elision layout
Taming Strategies elision:
Taming Strategies elision:
Taming Strategies layout:
Taming Strategies layout:
Taming Strategies in Practice
Taming Strategies in Practice
Taming Strategies in Practice
comfy ok mess hell
11%
21%
17%
51%
16.98% 21.11% 10.88%51.4%
Chaos Levels
comfy ok mess hell
11%
21%
17%
51%
3%
13%
16%
69%
-1.35% -8.08% -8.30%+17.73%
Chaos LevelsTamed (simulation)
Supporting Developers 

with Interaction Data
4
Epilogue
5
The Eye
recommender
systems
crowdsourced 

mental models
adaptive

user interfaces
Our Vision
adaptive

user interfaces
The Eye
developer IDE
DFlow
The Eye
operating
system
The Eye
operating
system
The Eye
operating
system
The Eye
operating
system
The Eye
operating
system
The Eye
recommender
systems
crowdsourced 

mental models
adaptive

user interfaces
Our Vision
adaptive

user interfaces
Interaction-based Recommenders
“[…] tools that provide information items that are
estimated to be valuable for a software ...
Interaction-based Recommenders
“How to establish the context is a general
challenge for recommendation systems.”
Recommend...
Interaction-based Recommenders
Recommendation Systems for Software Engineering

M. P. Robillard, R. J. Walker, T. Zimmerma...
Interaction-based Recommenders
Supporting Software Developers with a Holistic Recommender System

L. Ponzanelli, S. Scalab...
The Eye
recommender
systems
crowdsourced 

mental models
adaptive

user interfaces
Our Vision
adaptive

user interfaces
Live & Adaptive Views
Live & Adaptive Views
live
coevolve with the
system and always
depict its current state
Live & Adaptive Views
live
low high
interactions
no
coevolve with the
system and always
depict its current state
Live & Adaptive Views
live adaptive
coevolve with the
system and always
depict its current state
adapt their “shape”
depen...
Live & Adaptive Views
adaptive
adapt their “shape”
depending on the
context, the history,
and the task at hand
layout, col...
The Eye
recommender
systems
crowdsourced 

mental models
adaptive

user interfaces
Our Vision
adaptive

user interfaces
Adaptive User Interfaces
“Although developers are known to spend much of
their development time reading and analyzing code...
Adaptive User Interfaces
Adaptive User Interfaces
Adaptive User Interfaces
Adaptive User Interfaces
Moldable Tools
Inauguraldissertationder Philosophisch-naturwissenschaftlichen Fakultätder Universität Bern
vorgelegt von
A...
The Eye
recommender
systems
crowdsourced 

mental models
adaptive

user interfaces
adaptive

user interfaces
Our Vision
Crowdsourced Mental Models
Crowdsourced Mental Models
Crowdsourced Mental Models
Crowdsourced Mental Models
Crowdsourced Mental Models
Crowdsourced Mental Models
)=f( , , , ,
5
Epilogue
Our Vision
Conclusions
5
Epilogue
Our Vision
Conclusions
Part 1: Prologue
What is interaction data?
The Pharo IDE
Part 1: Prologue
Part 2: Interpreting
Modeling and recording IDE interactions
Interpreting and analyzing interaction histories
Part 2: Interpreting
Part 3: Visualizing
Visualizing UI interactions
Visualizing the evolution of working sets
Visualizing other aspects of development
Part 3: Vis...
Part 4: Supporting
The Plague Doctor
Measuring and taming the chaos in the IDE
Part 4: Supporting
Part 5: Epilogue
Our vision
Part 5: Epilogue
“Interaction-Aware Development Environments
enable novel and in-depth analyses of the behavior
of software developers and ...
“Interaction-Aware Development Environments
enable novel and in-depth analyses of the behavior
of software developers and ...
“Interaction-Aware Development Environments
enable novel and in-depth analyses of the behavior
of software developers and ...
Visualizing the Evolution of Working Sets

R. Minelli, A. Mocci, M. Lanza. VISSOFT 2016
Taming the IDE with Fine-grained I...
“The journey is more important
than the end or the start.”
Interaction-Aware Development Environments
Interaction-Aware Development Environments
Interaction-Aware Development Environments
Interaction-Aware Development Environments
Prochain SlideShare
Chargement dans…5
×
Prochain SlideShare
What to Upload to SlideShare
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

0

Partager

Télécharger pour lire hors ligne

Interaction-Aware Development Environments

Télécharger pour lire hors ligne

Slides used for my PhD dissertation defense (13 November 2017).

Thesis: “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.”
— Roberto Minelli, 2017

Abstract:
Nowadays, software development is largely carried out using Integrated Development Environments, or IDEs. An IDE is a collection of tools and facilities to support the most diverse software engineering activities, such as writing code, debugging, and program comprehension. The fact that they are integrated enables developers to find all the tools needed for the development in the same place. Each activity is composed of many basic events, such as clicking on a menu item in the IDE, opening a new user interface to browse the source code of a method, or adding a new statement in the body of a method. While working, developers generate thousands of these interactions, that we call fine-grained IDE interaction data. In essence, this data captures the behavior of developers inside the IDE, but it is largely neglected by modern development environments. We believe that this data is a valuable source of information that can be leveraged to enable retrospective analyses and to offer novel support to developers.

In this dissertation we propose the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify their workflow. We formulate our thesis as follows: Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE. For example, by monitoring how developers navigate source code, the IDE could suggest the program entities that are potentially relevant for a particular task.

Our research focuses on three main directions:

1. Modeling and Persisting Interaction Data.
2. Interpreting Interaction Data.
3. Supporting Developers with Interaction Data.

Dissertation Committee:
– Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor)
– Dr. Andrea Mocci, Università della Svizzera italiana, Switzerland (Research Co-Advisor)
– Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Serge Demeyer, University of Antwerp, Belgium (External Member)
– Prof. Radu Marinescu, University of Timisoara, Romania (External Member)

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à aimer ceci

Interaction-Aware Development Environments

  1. 1. Interaction-Aware Development Environments Research Advisor Prof. Michele Lanza Dissertation Committee Prof. Serge Demeyer Prof. Radu Marinescu Prof. Matthias Hauswirth Prof. Cesare Pautasso Research Co-Advisor Dr. Andrea Mocci R E V E A L @robertominelli Roberto Minelli Un iversità della Svizzera italian a Software Institute
  2. 2. Interaction-Aware Development Environments
  3. 3. Interaction-Aware Development Environments record mine leverage
  4. 4. Interaction-Aware Development Environments record mine leverage understand support
  5. 5. Interactions with the IDE
  6. 6. Interactions with the IDE
  7. 7. Interactions with the IDE
  8. 8. Interactions with the IDE
  9. 9. Interactions with the IDE
  10. 10. Interactions with the IDE
  11. 11. IDE interaction data Interactions with the IDE
  12. 12. Interactions with the IDE support software engineering activities evolve IDEs according to user needs How Are Java Software Developers Using the Eclipse IDE?
 G. C. Murphy, M. Kersten, L. Findlater. IEEE Software 2006 Categorization of Concerns: A Categorical Program Comprehension Model
 T. Frey, M. Gelhausen, G. Saake. PLATEAU 2011 IDE interaction data
  13. 13. “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.” —Roberto Minelli, 2017 Our Thesis
  14. 14. The Pharo IDE
  15. 15. workspace spotter inspector debugger code browser finder
  16. 16. senders browser implementors
 browser
  17. 17. Pharo Object Model
  18. 18. Pharo Object Model packages
  19. 19. Pharo Object Model classes packages
  20. 20. Pharo Object Model classes protocols packages
  21. 21. Pharo Object Model classes protocols packages selectors (methods)
  22. 22. Pharo Object Model source code classes protocols packages selectors (methods)
  23. 23. Prologue 1
  24. 24. Recording, Modeling, and 
 Interpreting Interaction Data 2
  25. 25. 2 Recording, Modeling, and 
 Interpreting Interaction Data Modeling and Recording IDE Interactions
  26. 26. Modeling IDE Interactions
  27. 27. Modeling IDE Interactions interaction event
  28. 28. Modeling IDE Interactions meta
 event interaction event • Selecting a method or a class in the code browser • Stepping in a debugger • Adding or removing a method from a class
  29. 29. Modeling IDE Interactions meta
 event user input event interaction event • Pressing a mouse button • Pressing a keystroke on the keyboard • Moving the mouse
  30. 30. meta
 event user input event user interface event interaction event • Opening or closing a window • Resizing or moving a window Modeling IDE Interactions
  31. 31. DFlow IDE Interactions DFlow: Recording IDE Interactions
  32. 32. DFlow DFlow: Recording IDE Interactions
  33. 33. DFlow filter Interesting Interactions Irrelevant Interactions DFlow: Recording IDE Interactions
  34. 34. DFlow Recorder Visualizer … propagate pub/sub filter Interesting Interactions Irrelevant Interactions Propagated Interactions DFlow: Recording IDE Interactions
  35. 35. DFlow: Recording IDE Interactions PositionEntities User Input EventMeta Event User Interface Event Navigation Event Inspect Event Edit Event Attributes Window Event Attributes Mouse Event Key Combination Keystroke Event Mouse Moved Mouse Button Mouse Wheel Direction Window Collapsed Window ExpandedWindow Moved Window Resized Window Activated Window Closed Window LabelledWindow Opened Button IDStart Point End Point Old Label New Label Initial Position Initial Extent Old Position New Position Old Size New Size Event
  36. 36. sessions development time events windows 1,631 >770h ~9.5M >40k developers17
  37. 37. 2 Recording, Modeling, and 
 Interpreting Interaction Data Modeling and Recording IDE Interactions
  38. 38. 2 Recording, Modeling, and 
 Interpreting Interaction Data Interpreting and Analyzing the Data Modeling and Recording IDE Interactions Measuring Navigation Efficiency in the IDE
 R. Minelli, A. Mocci, M. Lanza. IWESEP 2016 Quantifying Program Comprehension with Interaction Data
 R. Minelli, A. Mocci, M. Lanza, T. Kobayashi. QSIC 2014 I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015
  39. 39. Interpreting and Analyzing the Data
  40. 40. Interpreting and Analyzing the Data program understanding
  41. 41. Interpreting and Analyzing the Data program understanding development
 activities
  42. 42. Interpreting and Analyzing the Data program understanding development
 activities navigation
 efficiency
  43. 43. Development
 Activities Navigation
 Efficiency program understanding development
 activities navigation
 efficiency
  44. 44. “Program comprehension takes more than half the time spent on software maintenance” program understanding “Maintenance accounts for 55 to 95% of the total costs of a software system” “Program comprehension occupies half of the time of developers” Principles of Software Engineering and Design
 M. Zelkowitz, A. Shaw, J. Gannon. Prentice Hall. 1979 Leveraging Legacy System Dollars for E-Business 
 L. Erlikh. IT Professional. 2000 Application Program Maintenance Study: Report to Our Respondents 
 R. K. Fjeldstad, W. T. Hamlen. GUIDE 48. 1983
  45. 45. “Program comprehension takes more than half the time spent on software maintenance” program understanding “Maintenance accounts for 55 to 95% of the total costs of a software system” “Program comprehension occupies half of the time of developers” Principles of Software Engineering and Design
 M. Zelkowitz, A. Shaw, J. Gannon. Prentice Hall. 1979 Leveraging Legacy System Dollars for E-Business 
 L. Erlikh. IT Professional. 2000 Application Program Maintenance Study: Report to Our Respondents 
 R. K. Fjeldstad, W. T. Hamlen. GUIDE 48. 1983
  46. 46. Modeling Interaction Histories t1 NR NR NW NR t2 t3 t6 NR t4 NR t5 t1 N N E N I N t2 t3 t4 t5 t6
  47. 47. Modeling Interaction Histories t1 NR NR NW NR t2 t3 t6 NR t4 NR t5 t1 N N E N I N t2 t3 t4 t5 t6 events are instantaneous!
  48. 48. Modeling Interaction Histories t1 N N E N I N t2 t3 t4 t5 t6 UnderstandNavigation Edit Inspect t1 NR NR NW NR t2 t3 t6 NR t4 NR t5
  49. 49. Modeling Interaction Histories t1 N N N N t2 t4 t7 N t5 N t6 E t1 N N E N I N t2 t3 t4 t5 t6 t3 UnderstandNavigation Edit Inspect
  50. 50. program understanding development
 activities navigation
 efficiency time54-88% 56-94% time
  51. 51. program understanding development
 activities navigation
 efficiency time54-88% 56-94% time “Program comprehension occupies half of the time of developers” Application Program Maintenance Study: Report to Our Respondents 
 R. K. Fjeldstad, W. T. Hamlen. GUIDE 48. 1983 more than
  52. 52. Interpreting and Analyzing the Data program understanding
  53. 53. Interpreting and Analyzing the Data program understanding development
 activities
  54. 54. meta events
  55. 55. + low-level eventsmeta events Reconstructing Development Activities
  56. 56. Reconstructing Development Activities events sprees t t method saved search starts search ends out/in the IDE window activated window activated active window >RT >RT >RT DOI MS1 MS2 MS3 MS4 MS5KS1 KS2 KS3 KS4 activities t A1 A2 A3 A4 A5 A6 A7 RT = 1s Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows
  57. 57. events sprees t t method saved search starts search ends out/in the IDE window activated window activated active window >RT >RT >RT DOI MS1 MS2 MS3 MS4 MS5KS1 KS2 KS3 KS4 activities t A1 A2 A3 A4 A5 A6 A7 RT = 1s Mouse Keyboard Window Meta Events Reconstructing Development Activities Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows 5 M 175k 32 k
  58. 58. Reconstructing Development Activities events sprees t t method saved search starts search ends out/in the IDE window activated window activated active window >RT >RT >RT DOI MS1 MS2 MS3 MS4 MS5KS1 KS2 KS3 KS4 activities t A1 A2 A3 A4 A5 A6 A7 RT = 1s Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows
  59. 59. Reconstructing Development Activities active window activities t A1 A2 A3 A4 A5 A6 A7 Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows method saved search starts search ends out/in the IDE window activated window activated
  60. 60. Reconstructing Development Activities activities t A1 A2 A3 A4 A5 A6 A7 Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows active window method saved search starts search ends out/in the IDE window activated window activated editing time
  61. 61. Reconstructing Development Activities activities t A1 A2 A3 A4 A5 A6 A7 understanding time(basic) Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows active window method saved search starts search ends out/in the IDE window activated window activated editing time
  62. 62. understanding time editing time Reconstructing Development Activities
  63. 63. Reconstructing Development Activities understanding time editing time user interface time
  64. 64. Reconstructing Development Activities understanding time editing time user interface time navigation time
  65. 65. Reconstructing Development Activities understanding time editing time user interface time navigation time outside IDE time
  66. 66. 8% 4% 14% 5% 69% How Do Developers Spend Their Time? 70% 5% 14% 4% 8%
  67. 67. The Impact of Work Fragmentation
  68. 68. The Impact of Work Fragmentation time spent outside the IDE number of times outside the IDE
  69. 69. The Impact of Work Fragmentation time spent outside the IDE number of times outside the IDE understanding time user interface time vs.
  70. 70. The Impact of Work Fragmentation vs. time spent outside the IDE number of times outside the IDE understanding time user interface time
  71. 71. The Impact of Work Fragmentation time spent outside the IDE number of times outside the IDE understanding time user interface time vs.
  72. 72. The more fragmented is the workflow of developers… …the more time they need to rearrange 
 the UI of the IDE and to understand code
  73. 73. Interpreting and Analyzing the Data development
 activities program understanding
  74. 74. program understanding development
 activities navigation
 efficiency Interpreting and Analyzing the Data
  75. 75. = ideal navigation effort real navigation effort Modeling Navigation Efficiency
  76. 76. = ideal navigation effort real navigation effort Modeling Navigation Efficiency recorded IDE interactions
  77. 77. = ideal navigation effort real navigation effort Modeling Navigation Efficiency estimation recorded IDE interactions
  78. 78. Estimating the Ideal Navigation Effort ideal navigation effort real navigation effort
  79. 79. Estimating the Ideal Navigation Effort ideal navigation effort real navigation effort navigation cost
  80. 80. Estimating the Ideal Navigation Effort ideal navigation effort real navigation effort navigation cost involved entities
  81. 81. Navigation Cost ideal navigation effort real navigation effort
  82. 82. Navigation Cost ideal navigation effort real navigation effort optimistic unitary cost
  83. 83. Navigation Cost ideal navigation effort real navigation effort pessimistic maximum cost
  84. 84. Navigation Cost ideal navigation effort real navigation effort realistic Δ-cost or UI-aware
  85. 85. Estimating the Ideal Navigation Effort ideal navigation effort real navigation effort navigation cost involved entities
  86. 86. Estimating the Ideal Navigation Effort ideal navigation effort real navigation effort navigation cost involved entities
  87. 87. Involved Entities ideal navigation effort real navigation effort
  88. 88. Involved Entities ideal navigation effort real navigation effort edited
  89. 89. Involved Entities ideal navigation effort real navigation effort t edited
  90. 90. Involved Entities ideal navigation effort real navigation effort t sequence edited
  91. 91. Involved Entities ideal navigation effort real navigation effort t sequence set edited
  92. 92. Involved Entities ideal navigation effort real navigation effort t sequence set edited
  93. 93. Involved Entities ideal navigation effort real navigation effort t sequence set sorted set edited
  94. 94. involved entities navigation cost optimistic pessimistic realistic sequence set sorted set unitary cost maximum cost Δ-cost UI-aware ideal navigation effort real navigation effort Estimating the Ideal Navigation Effort
  95. 95. Navigation Efficiency ≈ 5-39% ideal navigation effort real navigation effort
  96. 96. Navigation Efficiency D1 D2 D3 D4 D5 D6 0.00.10.20.30.40.5 ≈ 5-39% ideal navigation effort real navigation effort
  97. 97. Developers perform
 more navigations than needed
  98. 98. Developers perform
 more navigations than needed ≈ 13-17x 1 navigation efficiency - 1
  99. 99. Recording, Modeling, and 
 Interpreting Interaction Data 2
  100. 100. Visual Analytics of 
 Development Sessions 3
  101. 101. 3 Visual Analytics of 
 Development Sessions Visualizing User Interface Interactions Visualizing Developer Interactions
 R. Minelli, A. Mocci, M. Lanza, L. Baracchi. VISSOFT 2014
  102. 102. Track of Windows
  103. 103. Track of Windows main window
  104. 104. Track of Windows main window short window(s)
  105. 105. UI View Open Activate Resize/Move Close Minimize/Expand Minimized Backbone Track of Windows
  106. 106. UI View Open Activate Resize/Move Close Minimize/Expand Minimized Backbone Track of Windows
  107. 107. UI View Open Activate Resize/Move Close Minimize/Expand Minimized Backbone Track of Windows
  108. 108. 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 10:20 20:12 Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit Pause Implicit Pause Commit UI View Open Activate Resize/Move Close Minimize/Expand Minimized Backbone Visualizing UI Interactions
  109. 109. storytelling
  110. 110. storytelling classification
  111. 111. storytelling The Inspection Valley Implement First, Verify Later Home Sweet Home Curing the Window Plague
  112. 112. The Inspection Valley
  113. 113. The Inspection Valley
  114. 114. “[…] developers using a modern IDE are forced to open views on numerous source artifacts to reveal [these] hidden relationships, leading to a crowded workspace with many opened windows or tabs.” Curing the Window Plague Autumn Leaves: Curing the Window Plague in IDEs
 D. Röthlisberger, O. Nierstrasz, S. Ducasse. WCRE 2009
  115. 115. Curing the Window Plague
  116. 116. Curing the Window Plague
  117. 117. storytelling
  118. 118. storytelling classification
  119. 119. classification
  120. 120. classification dominant track single-track multi-track fragmented
  121. 121. classification dominant track track flow single-track sequential multi-track ping-pong fragmented
  122. 122. not classifiedfragmented multi-track single-track ping-pong not classified sequential dominant track track flow
  123. 123. 3 Visual Analytics of 
 Development Sessions Visualizing User Interface Interactions Visualizing Developer Interactions
 R. Minelli, A. Mocci, M. Lanza, L. Baracchi. VISSOFT 2014
  124. 124. 3 Visual Analytics of 
 Development Sessions Visualizing User Interface Interactions Visualizing the Evolution of Working Sets Visualizing Developer Interactions
 R. Minelli, A. Mocci, M. Lanza, L. Baracchi. VISSOFT 2014 Visualizing the Evolution of Working Sets
 R. Minelli, A. Mocci, M. Lanza. VISSOFT 2016
  125. 125. What is a Working Set?
  126. 126. A group of program entities which a developer has interacted with during a particular period of time. Method Class What is a Working Set?
  127. 127. A group of program entities which a developer has interacted with during a particular period of time. Method Class What is a Working Set? current
  128. 128. A group of program entities which a developer has interacted with during a particular period of time. Method Class What is a Working Set? current past
  129. 129. Nodes shape 1 event 10+ events edited color& stroke recent old size Edges color& stroke 1 occurrence 10+ occurrences past working set current working set start end Visualizing the Evolution of Working Sets Method Class
  130. 130. snapshots / session~80 snapshots72,613
  131. 131. snapshots / session working set (ws) size current ws size ~80 10 7 snapshots72,613 past ws size3
  132. 132. Visual Patterns
  133. 133. Visual Patterns snapshot
  134. 134. Visual Patterns snapshot evolutionary
  135. 135. Visual Patterns Past: To Edit or Not To Edit U Can’t Touch This The Guiding Star Stay Focused, Stay Foolish! Moving in Circlessnapshot
  136. 136. U Can’t Touch This 1 event 10+ events edited color& stroke
  137. 137. The Guiding Star
  138. 138. The Guiding Star
  139. 139. Stay Focused, Stay Foolish!
  140. 140. Moving in Circles
  141. 141. Moving in Circles
  142. 142. Visual Patterns Past: To Edit or Not To Edit U Can’t Touch This The Guiding Star Stay Focused, Stay Foolish! Moving in Circlessnapshot
  143. 143. Visual Patterns The Past Awakens Multi-Part Session Thirst for Knowledge The Working Funnel evolutionary
  144. 144. The Past Awakens part 1 part 2 part 3 no past WS past WS increases the past awakens (i.e., past WS decreases)
  145. 145. Multi-Part Session part 1 part 2 part 4part 3 1st task exploration 2nd task wrapping up
  146. 146. The Working Funnel part 1 part 2 part 4part 3 part 5
  147. 147. The Working Funnel part 1 part 2 part 3 part 4
  148. 148. Visual Analytics of 
 Development Sessions 3
  149. 149. Supporting Developers 
 with Interaction Data 4
  150. 150. 4 Supporting Developers 
 with Interaction Data The Plague Doctor The Plague Doctor: A Promising Cure for the Window Plague
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 (ERA)
  151. 151. The Window Plague Autumn Leaves: Curing the Window Plague in IDEs
 D. Röthlisberger, O. Nierstrasz, S. Ducasse. WCRE 2009
  152. 152. AutumnLeaves automatically selects windows unlikely for future use to be closed or grayed out while important ones are displayed more prominently. Autumn Leaves: Curing the Window Plague in IDEs
 D. Röthlisberger, O. Nierstrasz, S. Ducasse. WCRE 2009 Autumn Leaves
  153. 153. The Plague Doctor
  154. 154. The Plague Doctor
  155. 155. The Plague Doctor
  156. 156. The Plague Doctor young old age pinned extra low importance high
  157. 157. Models & Strategies models strategies
  158. 158. Models & Strategies models strategies entities windows
  159. 159. Models & Strategies models strategies closingweightingentities windows
  160. 160. models strategies closingweightingentities windows fixed update top # windows below threshold Models & Strategies
  161. 161. The Plague Doctor
  162. 162. The Plague Doctor
  163. 163. The Plague Doctor
  164. 164. The Plague Doctor
  165. 165. The Plague Doctor
  166. 166. 4 Supporting Developers 
 with Interaction Data The Plague Doctor The Plague Doctor: A Promising Cure for the Window Plague
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 (ERA)
  167. 167. 4 Supporting Developers 
 with Interaction Data The Plague Doctor Taming the UI of the IDE The Plague Doctor: A Promising Cure for the Window Plague
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 (ERA) Taming the IDE with Fine-grained Interaction Data
 R. Minelli, A, Mocci, R. Robbes, M. Lanza. ICPC 2016
  168. 168. Chaotic IDE Configurations
  169. 169. Chaotic IDE Configurations
  170. 170. Chaotic IDE Configurations
  171. 171. Chaotic IDE Configurations
  172. 172. Chaotic IDE Configurations
  173. 173. screen space Space Occupancy Metrics
  174. 174. Space Occupancy Metrics screen space free space
  175. 175. Space Occupancy Metrics screen space free space no overlapping
  176. 176. Space Occupancy Metrics screen space free space no overlappinglow overlap (depth: 2)
  177. 177. Space Occupancy Metrics screen space free space no overlappinglow overlap (depth: 2) high overlap (depth: 4)
  178. 178. Space Occupancy Metrics no overlappinglow overlap (depth: 2) high overlap (depth: 4) free space focus space screen space
  179. 179. Space Occupancy Metrics + + + needed space+ + =
  180. 180. Space Occupancy Metrics space overlapping occupied free focus needed space depth weighted 20.95% 2.76 69.05% 48.22% 51.78% 32.66% 96.83%
  181. 181. Chaos Levels
  182. 182. Chaos Levels comfy ok
  183. 183. Chaos Levels comfy ok mess hell
  184. 184. 16.98% 21.11% 10.88%51.4% Chaos Levels comfy ok mess hell 11% 21% 17% 51%
  185. 185. Developers spend more than 30% of their time 
 in highly chaotic IDE configurations…
  186. 186. so what? Developers spend more than 30% of their time 
 in highly chaotic IDE configurations…
  187. 187. Chaos, UI, and Understanding 8% 4% 14% 5% 69% 70% 5% 14% 4% 8% I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015
  188. 188. Chaos, UI, and Understanding vs. I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 11% 21% 17% 51%
  189. 189. Chaos, UI, and Understanding vs. I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 11% 21% 17% 51% not statistically significant statistically significant comfy ok -0.34 -0.04
  190. 190. Chaos, UI, and Understanding vs. I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 11% 21% 17% 51% comfy ok -0.34 -0.04 mess hell 0.16 0.42 not statistically significant statistically significant
  191. 191. Chaos, UI, and Understanding vs. I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 11% 21% 17% 51% comfy ok -0.34 -0.04 mess hell 0.16 0.42 comfy ok -0.27 0.05 mess hell 0.11 0.26 not statistically significant statistically significant
  192. 192. Developers spend more than 30% of their time 
 in highly chaotic IDE configurations…
  193. 193. Developers spend more than 30% of their time 
 in highly chaotic IDE configurations… …and this impacts both 
 UI and understanding time!
  194. 194. 197
  195. 195. Windows, Focus, and Source Code
  196. 196. code browser debugger send / implement Windows, Focus, and Source Code
  197. 197. source code Windows, Focus, and Source Code code browser debugger send / implement
  198. 198. Taming Strategies = + elision layout
  199. 199. Taming Strategies elision:
  200. 200. Taming Strategies elision:
  201. 201. Taming Strategies layout:
  202. 202. Taming Strategies layout:
  203. 203. Taming Strategies in Practice
  204. 204. Taming Strategies in Practice
  205. 205. Taming Strategies in Practice
  206. 206. comfy ok mess hell 11% 21% 17% 51% 16.98% 21.11% 10.88%51.4% Chaos Levels
  207. 207. comfy ok mess hell 11% 21% 17% 51% 3% 13% 16% 69% -1.35% -8.08% -8.30%+17.73% Chaos LevelsTamed (simulation)
  208. 208. Supporting Developers 
 with Interaction Data 4
  209. 209. Epilogue 5
  210. 210. The Eye recommender systems crowdsourced 
 mental models adaptive
 user interfaces Our Vision adaptive
 user interfaces
  211. 211. The Eye developer IDE DFlow
  212. 212. The Eye operating system
  213. 213. The Eye operating system
  214. 214. The Eye operating system
  215. 215. The Eye operating system
  216. 216. The Eye operating system
  217. 217. The Eye recommender systems crowdsourced 
 mental models adaptive
 user interfaces Our Vision adaptive
 user interfaces
  218. 218. Interaction-based Recommenders “[…] tools that provide information items that are estimated to be valuable for a software engineering task in a given context.” Recommendation Systems for Software Engineering
 M. P. Robillard, R. J. Walker, T. Zimmermann.. IEEE Software 2010
  219. 219. Interaction-based Recommenders “How to establish the context is a general challenge for recommendation systems.” Recommendation Systems for Software Engineering
 M. P. Robillard, R. J. Walker, T. Zimmermann.. IEEE Software 2010
  220. 220. Interaction-based Recommenders Recommendation Systems for Software Engineering
 M. P. Robillard, R. J. Walker, T. Zimmermann.. IEEE Software 2010 fine-grained IDE interactions “How to establish the context is a general challenge for recommendation systems.”
  221. 221. Interaction-based Recommenders Supporting Software Developers with a Holistic Recommender System
 L. Ponzanelli, S. Scalabrino, G. Bavota, A. Mocci, R. Oliveto, M. Di Penta, M. Lanza. ICSE 2017
  222. 222. The Eye recommender systems crowdsourced 
 mental models adaptive
 user interfaces Our Vision adaptive
 user interfaces
  223. 223. Live & Adaptive Views
  224. 224. Live & Adaptive Views live coevolve with the system and always depict its current state
  225. 225. Live & Adaptive Views live low high interactions no coevolve with the system and always depict its current state
  226. 226. Live & Adaptive Views live adaptive coevolve with the system and always depict its current state adapt their “shape” depending on the context, the history, and the task at hand
  227. 227. Live & Adaptive Views adaptive adapt their “shape” depending on the context, the history, and the task at hand layout, colors, etc. live coevolve with the system and always depict its current state
  228. 228. The Eye recommender systems crowdsourced 
 mental models adaptive
 user interfaces Our Vision adaptive
 user interfaces
  229. 229. Adaptive User Interfaces “Although developers are known to spend much of their development time reading and analyzing code, mainstream IDEs do not do a good job of supporting program comprehension. IDEs are basically glorified text editors.” —Oscar Nierstrasz The Death of Object-Oriented Programming
 O. Nierstrasz. FASE 2016
  230. 230. Adaptive User Interfaces
  231. 231. Adaptive User Interfaces
  232. 232. Adaptive User Interfaces
  233. 233. Adaptive User Interfaces
  234. 234. Moldable Tools Inauguraldissertationder Philosophisch-naturwissenschaftlichen Fakultätder Universität Bern vorgelegt von Andrei Chiş von Rumänien Leiter der Arbeit: Prof. Dr. Oscar Nierstrasz Institut für Informatik Adaptive User Interfaces Moldable Tools
 A. Chiş. PhD Dissertation. 2016
  235. 235. The Eye recommender systems crowdsourced 
 mental models adaptive
 user interfaces adaptive
 user interfaces Our Vision
  236. 236. Crowdsourced Mental Models
  237. 237. Crowdsourced Mental Models
  238. 238. Crowdsourced Mental Models
  239. 239. Crowdsourced Mental Models
  240. 240. Crowdsourced Mental Models
  241. 241. Crowdsourced Mental Models )=f( , , , ,
  242. 242. 5 Epilogue Our Vision Conclusions
  243. 243. 5 Epilogue Our Vision Conclusions
  244. 244. Part 1: Prologue
  245. 245. What is interaction data? The Pharo IDE Part 1: Prologue
  246. 246. Part 2: Interpreting
  247. 247. Modeling and recording IDE interactions Interpreting and analyzing interaction histories Part 2: Interpreting
  248. 248. Part 3: Visualizing
  249. 249. Visualizing UI interactions Visualizing the evolution of working sets Visualizing other aspects of development Part 3: Visualizing
  250. 250. Part 4: Supporting
  251. 251. The Plague Doctor Measuring and taming the chaos in the IDE Part 4: Supporting
  252. 252. Part 5: Epilogue
  253. 253. Our vision Part 5: Epilogue
  254. 254. “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.” —Roberto Minelli, 2017
  255. 255. “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.” —Roberto Minelli, 2017 FeedBaG++Corporate Research
  256. 256. “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.” —Roberto Minelli, 2017 MSRFeedBaG++Corporate Research SANER
  257. 257. Visualizing the Evolution of Working Sets
 R. Minelli, A. Mocci, M. Lanza. VISSOFT 2016 Taming the IDE with Fine-grained Interaction Data
 R. Minelli, A, Mocci, R. Robbes, M. Lanza. ICPC 2016 Blended, Not Stirred: Multi-Concern Visualization of Large Software Systems
 T. dal Sasso, R. Minelli, A. Mocci, M. Lanza. VISSOFT 2015 The Plague Doctor: A Promising Cure for the Window Plague
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 (ERA) I Know What You Did Last Summer
 R. Minelli, A. Mocci, M. Lanza. ICPC 2015 Free Hugs — Praising Developers For Their Actions
 R. Minelli, A. Mocci, M. Lanza. ICSE 2015 (NIER) Towards Self-Adaptive IDEs
 R. Minelli. ICSME 2014 (DocSym) Quantifying Program Comprehension with Interaction Data
 R. Minelli, A. Mocci, M. Lanza, T. Kobayashi. QSIC 2014 Visual Storytelling of Development Sessions
 R. Minelli, L. Baracchi, A. Mocci, M. Lanza. ICSME 2014 (ERA) Visualizing Developer Interactions
 R. Minelli, A. Mocci, M. Lanza, L. Baracchi. VISSOFT 2014 Conference Visualizing the Workflow of Developers
 R. Minelli, M. Lanza. VISSOFT 2013 Software Analytics for Mobile Applications - Insights & Lessons Learned
 R. Minelli, M. Lanza. CSMR 2013 Measuring Navigation Efficiency in the IDE
 R. Minelli, A. Mocci, M. Lanza. IWESEP 2016 SODA: The Stack Overflow Dataset Almanac
 N. Latorre, R. Minelli, A, Mocci, L. Ponzanelli, M. Lanza. MUD 2015 DFlow - Towards the Understanding of the Workflow of Developers
 R. Minelli, M. Lanza. SATToSE 2013 UrbanIt: Visualizing Repositories Everywhere
 A. Ciani, R. Minelli, A. Mocci, M. Lanza. ICSME 2015 SAMOA - A Visual Software Analytics Platform for Mobile Applications
 R. Minelli, M. Lanza. ICSM 2013 Workshop Tool Demo
  258. 258. “The journey is more important than the end or the start.”

Slides used for my PhD dissertation defense (13 November 2017). Thesis: “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.” — Roberto Minelli, 2017 Abstract: Nowadays, software development is largely carried out using Integrated Development Environments, or IDEs. An IDE is a collection of tools and facilities to support the most diverse software engineering activities, such as writing code, debugging, and program comprehension. The fact that they are integrated enables developers to find all the tools needed for the development in the same place. Each activity is composed of many basic events, such as clicking on a menu item in the IDE, opening a new user interface to browse the source code of a method, or adding a new statement in the body of a method. While working, developers generate thousands of these interactions, that we call fine-grained IDE interaction data. In essence, this data captures the behavior of developers inside the IDE, but it is largely neglected by modern development environments. We believe that this data is a valuable source of information that can be leveraged to enable retrospective analyses and to offer novel support to developers. In this dissertation we propose the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify their workflow. We formulate our thesis as follows: Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE. For example, by monitoring how developers navigate source code, the IDE could suggest the program entities that are potentially relevant for a particular task. Our research focuses on three main directions: 1. Modeling and Persisting Interaction Data. 2. Interpreting Interaction Data. 3. Supporting Developers with Interaction Data. Dissertation Committee: – Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor) – Dr. Andrea Mocci, Università della Svizzera italiana, Switzerland (Research Co-Advisor) – Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member) – Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member) – Prof. Serge Demeyer, University of Antwerp, Belgium (External Member) – Prof. Radu Marinescu, University of Timisoara, Romania (External Member)

Vues

Nombre de vues

245

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

1

Actions

Téléchargements

5

Partages

0

Commentaires

0

Mentions J'aime

0

×