27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ified from this path to determine the test’s Result, in which<br />

each criterion has its own standard to verify whether the test<br />

has been completely or partially met. The instrumentation<br />

sends to the tool, during a test execution, information about<br />

each visited portion of code. This information is stored to<br />

be used in each visual representation. By these two analysis<br />

steps (static and dynamic analyses), the tool gathers data to<br />

generate visual representations [7].<br />

At Control layer, the data obtained from Reading Module<br />

(to generate visual presentations – all presentations are<br />

generated at the same time) are organized by the Integration<br />

Module, which provides mechanisms to coordinate the<br />

visualizations. These mechanisms capture user interactions<br />

in visual presentations to reflect the related events into another<br />

view. From each captured event, caused by an user interaction<br />

in a specific visualization, the Integration Module<br />

obtains data about the selected program unit (class, method,<br />

aspect or advice). An event is then sent to the Visualization<br />

layer, informing the new visual representation state (i.e.,<br />

highlighted items), performing, this way, the coordination,<br />

using the data structures stored in the Dataset layer (i.e., the<br />

list containing information provided by the instrumentation,<br />

the hierarchical structure, the node and edge tables and the<br />

graph data structure).<br />

The Visualization layer is responsible for providing<br />

CFG, TreeMap and Hyperbolic visual presentations, highlighting<br />

AOP features (i.e., aspects and its crosscuts) depending<br />

on the visualization in question. This layer receives<br />

data from the Control layer (i.e., events captured from user<br />

interactions and data obtained from the Dataset layer) to<br />

generate and update each visual representation.<br />

From the working together of these three layers, the developed<br />

Software Visualization tool uses the proposed coordinated<br />

visual mapping to visualize Java and AspectJ compiled<br />

programs. The next section presents an application<br />

and descriptions of the coordinated multiple views from<br />

SoftV iz OAH .<br />

(a) Hyperbolic projection<br />

(b) Treemap visualization<br />

4 Applications<br />

In this section we show an application of SoftV iz OAH :<br />

we performed a visual exploration of the Aspect-Oriented<br />

program of an on-line music store simulation, coded in AspectJ<br />

by Lesiecki [16].<br />

Figure 4(b) shows a Control Flow Graph visual representation<br />

used to present methods, advices or test case executions.<br />

In this visual representation, basic code blocks<br />

are represented by rectangles outlined by a continuous line;<br />

code blocks advised by aspects (advices) are represented by<br />

rectangles outlined by a dashed line; the respective pointcuts<br />

are represented by the advice sequence in the graph;<br />

and method returns are represented by rectangles outlined<br />

by a double line. Inside each rectangle a number indi-<br />

(c) List of Methods/Advices<br />

Figure 3. Coordination from Hyperbolic to<br />

TreeMap view and Methods/Advices List<br />

cates the code block execution sequence. Normal code sequences<br />

are represented by continuous lines, and automatic<br />

generated code sequence (as exceptions) are represented by<br />

dashed lines. When a test case is applied, each rectangle is<br />

171

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

Saved successfully!

Ooh no, something went wrong!