31
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 Svizzera italiana

Towards Self-Adaptive IDEs [ICSME2014]

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

IDE

IDEInteraction Data

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.

IDEInteraction Data

IDEInteraction Data

> /dev/null

Record &

ProcessLeverage

Interaction Data

Self-Adaptive IDEs

Interaction Data

DFLow

Self-Adaptive IDEs

LeverageRecord & Process

Interaction Data

IDE

Exploit visualizations

Improve user interfaces

Benefit from recommender systems

Exploit visualizations

Improve user interfaces

Benefit from recommender systems

Exploit visualizations

Improve user interfaces

Benefit from recommender systems

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.

Other ideas?

Correlate Interaction Data with Source Code Metrics

Other ideas?

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?

Current state?

PHARO Smalltalk IDE

PHARO Smalltalk IDE

DFlow

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

PHARO Smalltalk IDE

DFlow

Leverage Interaction Data

Live & Adaptive Visualizations

PHARO Smalltalk IDE

DFlow

Leverage Interaction Data

Live & Adaptive Visualizations

Adaptive User Interfaces

PHARO Smalltalk IDE

DFlow

Leverage Interaction Data

Live & Adaptive Visualizations

Adaptive User Interfaces

Interaction-based Recommender Systems