Upload
roberto-minelli
View
35
Download
2
Tags:
Embed Size (px)
Citation preview
Towards Self-Adaptive IDEs
Roberto Minelli and Michele Lanza REVEAL @ Faculty of Informatics, University of Lugano, Switzerland
R E V E A L
Universitàdella Svizzeraitaliana
Interaction Data
Opening a code browser
Inspecting an object at run-time
Editing a method
Opening & closing a window
Popping up a refactoring menu
Adding a class
Removing a method
Removing a class
Interaction Data
Evolve the environments according to user needs
Enhance how developers navigate code
G. C. Murphy, M. Kersten, and L. Findlater. How are java software developers using the Eclipse IDE? IEEE Software, 2006.
T. Frey, M. Gelhausen, and G. Saake. Categorization of concerns: A categorical program comprehension model. PLATEAU 2011.
Live and Adaptive
Visualizations
Views In-Sync With The Workflow Of Developers Visualizations that co-evolve with the evolution of the software system. These views can act as a “visual memory” for developers.
Live and Adaptive
Visualizations
Views In-Sync With The Workflow Of Developers Visualizations that co-evolve with the evolution of the software system. These views can act as a “visual memory” for developers.
Adaptive Visualizations Views that are able, depending on the context, the history, and the type of session, to completely reshape themselves (e.g., changing layout, color scheme).
Adaptive
User Interfaces
Enhancing Code Browsers Browsers that automatically reshape themselves to better support different activities, such as source code navigation.
Adaptive
User Interfaces
Enhancing Code Browsers Browsers that automatically reshape themselves to better support different activities, such as source code navigation.
Repositioning Frequently Used UI Elements IDE understand when UI elements (e.g., menu) are used frequently and reposition them in a more convenient place.
Interaction-Based
Recommender Systems
Navigation Recommendations IDEs detect “navigation patterns” from fine-grained interaction histories to provide developers with suggestions on how to navigate code more efficiently.
Interaction-Based
Recommender Systems
Navigation Recommendations IDEs detect “navigation patterns” from fine-grained interaction histories to provide developers with suggestions on how to navigate code more efficiently.
Debugger Recommendations IDEs leverage previous debugging histories to provide developers with suggestions on how to debug easily.
Correlate Interaction Data with Source Code Metrics
Leverage Information from Multiple-Sources
Other ideas?
Correlate Interaction Data with Source Code Metrics
Leverage Information from Multiple-Sources
Engage Developers with Game Elements
Other ideas?
PHARO Smalltalk IDE
DFlow
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00
category Pill
Class Blue Class Red
foo bar baz
category X
Class Y
m1 m2 m3
0
300
600
1680
900
1200
360
Understand
PHARO Smalltalk IDE
DFlow
Visualize
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00
category Pill
Class Blue Class Red
foo bar baz
category X
Class Y
m1 m2 m30
300
600
1680
900
1200
360
Classify
Track Flow
Dominant Tracks
PHARO Smalltalk IDE
DFlow
Leverage Interaction Data
Live & Adaptive Visualizations
Adaptive User Interfaces