dflow - a platform to profile developers

41
DFlow – A Platform to Profile Developers Roberto Minelli and Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland http://dflow .inf.usi.ch SmalltalkHub.com: DevFlow

Upload: esug

Post on 20-May-2015

795 views

Category:

Technology


1 download

DESCRIPTION

DFlow - A Platform to Profile Developers Roberto Minelli and Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland http://dflow.inf.usi.ch

TRANSCRIPT

Page 1: DFlow - A Platform to Profile Developers

DFlow – A Platform to Profile Developers

Roberto Minelli and Michele Lanza

REVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland

http://dflow.inf.usi.ch SmalltalkHub.com: DevFlow

Page 2: DFlow - A Platform to Profile Developers

Developers spend a large part of their working time using an Integrated Development Environment

Page 3: DFlow - A Platform to Profile Developers

Integrated Development Environment

Eclipse

Visual Studio

Idea

NetBeansXCode

Page 4: DFlow - A Platform to Profile Developers

Pharo

Squeak

Dolphin

VisualWorks

VA Smalltalk

Page 5: DFlow - A Platform to Profile Developers

Pharo Smalltalk IDE

Page 6: DFlow - A Platform to Profile Developers
Page 7: DFlow - A Platform to Profile Developers

Writing

Page 8: DFlow - A Platform to Profile Developers

Writing

Navigating

Page 9: DFlow - A Platform to Profile Developers

Writing

Navigating

“Programmers spend more time navigating the code than working with it.”

M. Kersten and G.C. Murphy“Mylar: a degree-of-interestmodel for IDEs” AOSD 2005

Page 10: DFlow - A Platform to Profile Developers

Y. Lee, N. Chen, R. Johnson“Drag-and-drop refactoring: intuitive and efficient program transformation” ICSE 2013 “The current support for refactoring

is unintuitive and inefficient.”

D. Roethlisberger, O. Nierstrasz, S. Ducasse“Autumn leaves: Curing the window plague in IDEs” WCRE 2009

“Devs are forced to open multiple windows (tabs).The IDE becomes a crowded workspace.

J. Singer, R. Elves, and M. Storey“Navtracks: supporting navigation in soware maintenance” ICSM 2005

M. Kersten, G. C. Murphy“Mylar: a degree-of-interest model for IDEs” AOSD 2005

Researchers proposed various approaches to beer support browsing through soware.

Page 11: DFlow - A Platform to Profile Developers

To what extent does Pharo support the navigation?

How, when, why do developers use Pharo to navigate the system?

Navigating source codewith the IDE

Page 12: DFlow - A Platform to Profile Developers

DFlow-Web

DFlow-Pharo

DFlowA Platform to Profile Developers

It silently records all the Pharo interactions while the developer is programming.

It enables retrospective analyses through a web-based soware visualization platform.

Page 13: DFlow - A Platform to Profile Developers

DFlow-Pharo: An Extension to the Pharo IDE

Standard Tools

ManagerBrowser

Page 14: DFlow - A Platform to Profile Developers

It’s demo time!

DFlowPHARO

Page 15: DFlow - A Platform to Profile Developers

Event

Entities

Type

Timing information

Page 16: DFlow - A Platform to Profile Developers

Event

Entities

Type

Timing information

Navigation

Inspection

Editing

Handling

Page 17: DFlow - A Platform to Profile Developers

Event

Entities

Type

Timing information Timestamp and duration.

Page 18: DFlow - A Platform to Profile Developers

Event

Entities

Type

Timing information

…the user interacted with

Page 19: DFlow - A Platform to Profile Developers

A. Bergel, Bañados, Robbes, Röthlisberger“SPY: A Flexible Code Profiling Framework”Computer Languages, Systems and Structures 2012

Code Instrumentation

Custom-made Profilers

How do we profile the developer?

Page 20: DFlow - A Platform to Profile Developers

What to do with this

large amount of data?

Page 21: DFlow - A Platform to Profile Developers

It’s demo time!

R. Minelli and M. Lanza“Visualizing the Workflow of Developers.”VISSOFT 2013

DFlow

Page 22: DFlow - A Platform to Profile Developers

All navigation events and one single editing

A debugging session…

1

Page 23: DFlow - A Platform to Profile Developers

2

Page 24: DFlow - A Platform to Profile Developers

Green navigation stacks (browsing the API of a class)

2

Page 25: DFlow - A Platform to Profile Developers

Back edges increase the cognitive weight of a session.

2

Page 26: DFlow - A Platform to Profile Developers

What’snext?

Page 27: DFlow - A Platform to Profile Developers

• Understand and characterize development sessions

• Identify development workflow bolenecks in terms of IDE usage

Reverse

Forward

• Use DFlow data in a run-time context to enhance the IDE

Page 28: DFlow - A Platform to Profile Developers

Forward

1

Page 29: DFlow - A Platform to Profile Developers

DFlow

Forward

Adding a DFlow group

1

Page 30: DFlow - A Platform to Profile Developers

Forward

Into2

Over Through

Page 31: DFlow - A Platform to Profile Developers

Forward

Into Over Through

Into

2

Page 32: DFlow - A Platform to Profile Developers

Forward

Through

Into

Into Over

Over

2

Page 33: DFlow - A Platform to Profile Developers

Forward

Through

Into

Into Over

Over

Over

2

Page 34: DFlow - A Platform to Profile Developers

ForwardInto

Over

Over

Into Over Through

Into

2

Page 35: DFlow - A Platform to Profile Developers

ForwardInto

Over

Over

Into Over Through

Into

Into

2

Page 36: DFlow - A Platform to Profile Developers

Forward

Into Over Through

Into

Over

Over

Into

Into

#inspect

2

Page 37: DFlow - A Platform to Profile Developers

suggest

DFlowREC

Forward

Into

Over

Over

Into

Into

#inspect

…next time

DFlowdata context+

2

Page 38: DFlow - A Platform to Profile Developers

Forward

Adding live visualizations

3

Page 39: DFlow - A Platform to Profile Developers

Forward

You worked here…

…here…

…and also here!

3

Page 40: DFlow - A Platform to Profile Developers

Writing

Navig

ating

To what extent does Pharo support the navigation?

How, when, why do developers use Pharo to navigate the system?

Navigating source codewith the IDE

• Understand and characterize development sessions

• Identify development workflow bolenecks in terms of IDE usage

Reverse

Forward

• Use DFlow data in a run-time context to enhance the IDE

It’s demo time!

DFlow

Page 41: DFlow - A Platform to Profile Developers

Any other idea?Talk to me (or drop me an email)

[email protected]