30.01.2014 Views

Annual Report 2010 - Fachgruppe Informatik an der RWTH Aachen ...

Annual Report 2010 - Fachgruppe Informatik an der RWTH Aachen ...

Annual Report 2010 - Fachgruppe Informatik an der RWTH Aachen ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Stacksplorer: Un<strong>der</strong>st<strong>an</strong>ding Dynamic Program Behavior<br />

J<strong>an</strong>-Peter Krämer, Thorsten Karrer, Jonath<strong>an</strong> Diehl, J<strong>an</strong> Borchers<br />

To thoroughly comprehend application behavior, programmers need to un<strong>der</strong>st<strong>an</strong>d the<br />

interactions of objects at runtime. Today, these interactions are often poorly visualized in<br />

common IDEs except during live debugging. In <strong>an</strong> exploratory user study we could confirm,<br />

that programmers are often unsatisfied with available tools for code browsing, because the<br />

common file-based representation of source code does not reflect how methods call each<br />

other at runtime to create the application behavior developers intended.<br />

The information about potential call stacks c<strong>an</strong> mostly be obtained from the source code.<br />

Stacksplorer introduces a novel visualization technique for this information <strong>an</strong>d allows to<br />

navigate through these potential call stacks. It is realized as a plugin for Xcode, Apple’s<br />

st<strong>an</strong>dard IDE.<br />

The figure below shows the user interface of Stacksplorer. The central editor is equivalent to<br />

Xcode’s st<strong>an</strong>dard editor, retaining all its features <strong>an</strong>d functionality. The method, in which the<br />

cursor is placed, is called focus method. The left column shows methods calling the focus<br />

method, the right column shows all methods called from the focus method.<br />

Besides navigating through a class by scrolling vertically in the editor, our design allows<br />

navigating horizontally through the call stack, by clicking a method in one of the side<br />

columns. For example, navigating to a method that calls the focus method, will cause all 3<br />

columns to shift to the right. The method that was selected moves to the center <strong>an</strong>d opens in<br />

the central editor, the previous focus method appears in the list of called methods to the right,<br />

<strong>an</strong>d the left column is updated with new information. Import<strong>an</strong>t paths through the code may<br />

also be stored for later reference.<br />

Initial results of a user study, which tests qu<strong>an</strong>titatively if users c<strong>an</strong> solve tasks faster using<br />

Stacksplorer th<strong>an</strong> without it <strong>an</strong>d qualitatively how satisfied users are with our plugin, indicate,<br />

that our visualization technique is highly appreciated <strong>an</strong>d helps users to perform mainten<strong>an</strong>ce<br />

tasks in large software more efficiently.<br />

345

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!