56
First steps towards Self-Adaptive IDEs Roberto Minelli Andrea Mocci and Michele Lanza REVEAL @ University of Lugano http://dflow .inf.usi.ch

First steps towards Self-Adaptive IDEs

  • Upload
    esug

  • View
    141

  • Download
    3

Embed Size (px)

DESCRIPTION

Title: First steps towards Self-Adaptive IDEs Speaker:Roberto Minelli Thu, August 21, 11:30am – 12:00pm Video: https://www.youtube.com/watch?v=p2Vmh1l5-WI Description Abstract: In this talk we present DFlow, an interaction profiler for the Pharo IDE. Our tool silently records how developers interact with UI elements of the IDE and how they manipulate source code. DFlow provides a catalogue of visualizations of the recorded development sessions. By means of the views we can tell development stories and characterize the behavior of developers. Our vision is to use interaction data on-the-fly to mold the shape of the IDE and improve the development experience. Bio: Roberto Minelli is a PhD student at the University of Lugano, Switzerland in the REVEAL research group, under the supervision of Prof. Dr. Michele Lanza.

Citation preview

Page 1: First steps towards Self-Adaptive IDEs

First steps towards!Self-Adaptive IDEs

Roberto Minelli Andrea Mocci and Michele Lanza!

REVEAL @ University of Luganohttp://dflow.inf.usi.ch

Page 2: First steps towards Self-Adaptive IDEs
Page 3: First steps towards Self-Adaptive IDEs
Page 4: First steps towards Self-Adaptive IDEs
Page 5: First steps towards Self-Adaptive IDEs
Page 6: First steps towards Self-Adaptive IDEs
Page 7: First steps towards Self-Adaptive IDEs
Page 8: First steps towards Self-Adaptive IDEs

Interaction data

Page 9: First steps towards Self-Adaptive IDEs

Interaction data

Opening a browser on a method

Inspecting an object at run-time

Editing a method

Opening & closing a window

Popping up a refactoring menu

Adding a classRemoving a method

Page 10: First steps towards Self-Adaptive IDEs

Interaction data is a!valuable information

G. C. Murphy, M. Kersten, and L. Findlater. !How are java software developers using the !

Eclipse IDE? IEEE Software, 2006.

Page 11: First steps towards Self-Adaptive IDEs

IDEs do not exploit!this information

Page 12: First steps towards Self-Adaptive IDEs

Self-Adaptive IDEs

Page 13: First steps towards Self-Adaptive IDEs

Record

Self-Adaptive IDEs

Page 14: First steps towards Self-Adaptive IDEs

Record Process

Self-Adaptive IDEs

Page 15: First steps towards Self-Adaptive IDEs

Record Process

Leverage

Self-Adaptive IDEs

Interaction!data

Page 16: First steps towards Self-Adaptive IDEs

What is it to you?

Page 17: First steps towards Self-Adaptive IDEs

Interaction-based!recommender systems

Page 18: First steps towards Self-Adaptive IDEs

Interaction-based!recommender systems

Adaptive user interfaces

Page 19: First steps towards Self-Adaptive IDEs

Interaction-based!recommender systems

Adaptive

Live/adaptive visualizations

Page 20: First steps towards Self-Adaptive IDEs

Interaction-based!recommender systems

Provide developers with suggestions on how to navigate code more efficiently or how to debug code in a faster way.

Page 21: First steps towards Self-Adaptive IDEs

Adaptive user interfaces

Code browsers that automatically reshape themselves to better support different activities, such as source code navigation.

Page 22: First steps towards Self-Adaptive IDEs

Visualizations

Visualizations that co-evolve with the evolution of the software system. This views can act as a “visual memory” for developers.Li

ve

Page 23: First steps towards Self-Adaptive IDEs

Visualizations

Visualizations that co-evolve with the evolution of the software system. This views can act as a “visual memory” for developers.

Visualizations that depending on context, history, and the type of session, reshape themselves (e.g., changing layout, colors).

Live

Ada

ptiv

e

Page 24: First steps towards Self-Adaptive IDEs

…now

Page 25: First steps towards Self-Adaptive IDEs

DFlow

An interaction profiler for the Pharo IDE

http://dflow.inf.usi.ch~RobertoMinelli/DevFlow

Page 26: First steps towards Self-Adaptive IDEs

DFlowhttp://dflow.inf.usi.ch

~RobertoMinelli/DevFlow

An interaction profiler for the Pharo IDE

Page 27: First steps towards Self-Adaptive IDEs
Page 28: First steps towards Self-Adaptive IDEs
Page 29: First steps towards Self-Adaptive IDEs
Page 30: First steps towards Self-Adaptive IDEs
Page 31: First steps towards Self-Adaptive IDEs
Page 32: First steps towards Self-Adaptive IDEs

R Minelli, A Mocci, M Lanza and L Baracchi!Visualizing Developer Interactions!

VISSOFT, 2014.

R Minelli, L Baracchi, A Mocci and M Lanza Visual Storytelling of Development Session!

ICSME ERA, 2014

Page 33: First steps towards Self-Adaptive IDEs
Page 34: First steps towards Self-Adaptive IDEs

tr1

tr2

tr3

tr4

Inspectvalley

The “Inspect Valley”

Open Activate Resize/move Close Minimize / Expand

Page 35: First steps towards Self-Adaptive IDEs

tr1

tr2

tr3

tr4

Inspectvalley

The “Inspect Valley”

Open Activate Resize/move Close Minimize / Expand

Page 36: First steps towards Self-Adaptive IDEs

tr1

tr2

tr3

tr4

Inspectvalley

The “Inspect Valley”

Open Activate Resize/move Close Minimize / Expand

What about the GTInspector?

Page 37: First steps towards Self-Adaptive IDEs

Home sweet home

The mechanics of commit

Open Activate Resize/move Close Minimize / Expand

Page 38: First steps towards Self-Adaptive IDEs

Home sweet home

Navigation Inspection Understanding Edit

Categories

Classes

Methods

Page 39: First steps towards Self-Adaptive IDEs

Killing bugs and windows (a.k.a. Window Plague)

Open Activate Resize/move Close Minimize / Expand

Page 40: First steps towards Self-Adaptive IDEs

Killing bugs and window (a.k.a. Window Plague)

Open Activate Resize/move Close Minimize / Expand

Window plague

Page 41: First steps towards Self-Adaptive IDEs
Page 42: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

Weneedyou!

Page 43: First steps towards Self-Adaptive IDEs

at most!

50%

Page 44: First steps towards Self-Adaptive IDEs

at least!

50%

Page 45: First steps towards Self-Adaptive IDEs

at least!

50%up to!

85%

Page 46: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to install

Gofer new smalltalkhubUser: ‘RobertoMinelli’ project: 'DevFlow'; package: 'ConfigurationOfDevFlow'; load.!ConfigurationOfDevFlow loadAsUser.

Page 47: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to install

Gofer new smalltalkhubUser: ‘RobertoMinelli’ project: 'DevFlow'; package: 'ConfigurationOfDevFlow'; load.!ConfigurationOfDevFlow loadAsUser.

Startup script available @

Page 48: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to install

Gofer new smalltalkhubUser: ‘RobertoMinelli’ project: 'DevFlow'; package: 'ConfigurationOfDevFlow'; load.!ConfigurationOfDevFlow loadAsUser.

Startup script available @

Page 49: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Page 50: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Start

Page 51: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Start Pause

Page 52: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Start Pause

Resume

Page 53: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Start Pause

Resume Stop

Page 54: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.ch

How to use

Start Pause

Resume Stop

Page 55: First steps towards Self-Adaptive IDEs

dflow.inf.usi.ch

Page 56: First steps towards Self-Adaptive IDEs

http://dflow.inf.usi.chdflow.inf.usi.ch