dflow - a platform to profile developers
DESCRIPTION
DFlow - A Platform to Profile Developers Roberto Minelli and Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland http://dflow.inf.usi.chTRANSCRIPT
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
Developers spend a large part of their working time using an Integrated Development Environment
Integrated Development Environment
Eclipse
Visual Studio
Idea
NetBeansXCode
Pharo
Squeak
Dolphin
VisualWorks
VA Smalltalk
Pharo Smalltalk IDE
Writing
Writing
Navigating
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
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.
To what extent does Pharo support the navigation?
How, when, why do developers use Pharo to navigate the system?
Navigating source codewith the IDE
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.
DFlow-Pharo: An Extension to the Pharo IDE
Standard Tools
ManagerBrowser
It’s demo time!
DFlowPHARO
Event
Entities
Type
Timing information
Event
Entities
Type
Timing information
Navigation
Inspection
Editing
Handling
Event
Entities
Type
Timing information Timestamp and duration.
Event
Entities
Type
Timing information
…the user interacted with
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?
What to do with this
large amount of data?
It’s demo time!
R. Minelli and M. Lanza“Visualizing the Workflow of Developers.”VISSOFT 2013
DFlow
All navigation events and one single editing
A debugging session…
1
2
Green navigation stacks (browsing the API of a class)
2
Back edges increase the cognitive weight of a session.
2
What’snext?
• 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
Forward
1
DFlow
Forward
Adding a DFlow group
1
Forward
Into2
Over Through
Forward
Into Over Through
Into
2
Forward
Through
Into
Into Over
Over
2
Forward
Through
Into
Into Over
Over
Over
2
ForwardInto
Over
Over
Into Over Through
Into
2
ForwardInto
Over
Over
Into Over Through
Into
Into
2
Forward
Into Over Through
Into
Over
Over
Into
Into
#inspect
2
suggest
DFlowREC
Forward
Into
Over
Over
Into
Into
#inspect
…next time
DFlowdata context+
2
Forward
Adding live visualizations
3
Forward
You worked here…
…here…
…and also here!
3
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
Any other idea?Talk to me (or drop me an email)