Upload
roberto-minelli
View
54
Download
0
Tags:
Embed Size (px)
Citation preview
The Plague DoctorA Promising Cure for the Window Plague
Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland @robertominelli
overlappingflat
unused5%
8%
14%
70%
4%
"I Know What You Did Last Summer An Investigation of How Developers Spend Their Time.” Roberto Minelli, Andrea Mocci and Michele Lanza. In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension)
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
The Window Plague in the IDE
“Developers using a modern IDE are forced to open views on numerous source artifacts, leading to a crowded workspace with many open windows or tabs.”
“They often lose the overview in such a cluttered workspace as IDEs provide little support to get rid of unused windows.”
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
“Developers using a modern IDE are forced to open views on numerous source artifacts, leading to a crowded workspace with many open windows or tabs.”
“They often lose the overview in such a cluttered workspace as IDEs provide little support to get rid of unused windows.”
The Window Plague in the IDE
DFLOW
Smalltalk IDE
Recorder Analyzer …
HTTP
DFLOW
Server
MetaOpening a Finder UI Selecting a package, method, or class in the code browser Opening a system browser on a method or a class electing a method in the Finder UI Starting a search in the Finder UI Inspecting an object Browsing a compiled method Do-it/Print-it on a piece of code (e.g., workspace) Stepping into/Stepping Over/Proceeding in a debugger Run to selection in a debugger Entering/exiting from an active debugger Browsing full stack/stack trace in a debugger Browsing hierarchy, implementors or senders of a class Browsing the version control system Browse versions of a method Creating/removing a class Adding/removing instance variables from a class Adding/removing a method from a class Automatically creating accessors for a class
User Interface
Low-Level
Opening/closing a window Activating a window, i.e., window in focus Resizing/moving/minimize/maximize a window class
Mouse button up/down Scroll wheel up/down Mouse move Mouse-out/in Keystroke pressed
Models
Program Entity Window InteractionAssociates a weight to each class or method observed during a development session
Awindow during a development session
Models
Program Entity Window InteractionAssociates a weight to each class or method a development session
Associates a weight to each open window during a development session
Window weight
Models
Program Entity Window InteractionAssociates a weight to each class or method a development session
Awindow during a development session
Strategies
Weighting ClosingDetermines how the weight models are updated
Determinescandidate for closure
Strategies
Weighting ClosingDetermines how the weight models are updated
Determinescandidate for closure
Fixed Update
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
Entities Viewing Modifying Creating Removing
Windows Opening Moving Resizing Focusing Typing
Strategies
Weighting ClosingDetermines how the weight models
Determines which windows are candidate for closure
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
Fixed Update
Entities ViewingModifyingCreatingR
WindowsOpeningMovingResizingFocusT
Strategies
ClosingDetermines which windows are candidate for closure
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
Weight Below Threshold
WeightingDetermines how the weight models
Fixed Update
Entities ViewingModifyingCreatingR
WindowsOpeningMovingResizingFocusT
Strategies
ClosingDetermines which windows are candidate for closure
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse.
In Proceedings of WCRE 2009 (16th Working ` on Reverse Engineering)
Weight Below Threshold
Max # Windows per Type
WeightingDetermines how the weight models
Fixed Update
Entities ViewingModifyingCreatingR
WindowsOpeningMovingResizingFocusT
It is only for window based IDEs
–No. The default weighting and closing strategies can be applied directly to tab-based IDEs such as Eclipse
It is the same as Autumn Leaves
"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse. In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering)
It is the same as Autumn Leaves
–No. It can exploit more/better data
It is extensible It is customizable
It is available
http://tiny.cc/plaguedoc"Autumn Leaves: Curing the Window Plague in IDEs.” D. Röthlisberger, O. Nierstrasz, S. Ducasse. In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering)
Fine-tuning the existing strategies
Novel strategies
Exploiting more interactions
Evaluation
http://tiny.cc/plaguedoc
Fine-tuning the existing strategies
Novel strategies
Self-Adaptation
Exploiting more interactions
Evaluation
http://tiny.cc/plaguedoc