The Plague Doctor: A Promising Cure for the Window Plague [ICPC2015]

46
The Plague Doctor A Promising Cure for the Window Plague Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland @robertominelli

Transcript of The Plague Doctor: A Promising Cure for the Window Plague [ICPC2015]

The Plague DoctorA Promising Cure for the Window Plague

Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland @robertominelli

Software is complex

Organized in hierarchies

Contains complex relationships

Integrated Development Environments

flat

flat

unused

overlappingflat

unused

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

importance

importance

candidates

pinned

importance

candidates

DFLOW

Smalltalk IDE

Recorder Analyzer …

HTTP

DFLOW

Server

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

Strategies

Models

Program EntityWindow Interaction

Strategies

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

WeightingClosing

Models

Program EntityWindow Interaction

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

IDE developer

interactions

Models Strategies

IDE developer

interactions

Models

plague doctor

IDE developer

interactions

Models

plague doctor

IDE developer

interactions

Models

plague doctor

IDE developer

interactions

Models

plague doctor

updates UI colors

(suggests to) close windows

StrategiesModels

It is only for window based IDEs

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)

http://tiny.cc/plaguedoc

Fine-tuning the existing strategies

Evaluation

http://tiny.cc/plaguedoc

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

http://tiny.cc/plaguedoc

@robertominelli

http://tiny.cc/plaguedoc

@robertominelli

Free Hugs

Wed, 12:10 @ ICSE

NIER: New Dimensions