• No results found

The ultimate goal of this work is to assist real-world software architects and developers to interactively gain an overview of changes made to both a software structures’ hierarchy and its relationships over time. To achieve this goal we have been working with Product Line Architects at the Fraunhofer IESE to enhance their SAVE tool [192]. SAVE is a state of-the-art tool for analyzing and visualizing software architectures. Its primary feature is architecture compliance checking, i.e., assessing the degree to which an implementation complies to its intended architecture.

We introduce an additional view of the extracted data, in the previous version eCITY, in order to provide an overview of the archi- tectures evolution. A preliminary experiment was conducted where we explored the evolution of the system hierarchy of the Apache Tom- cat software [58]. The tasks of this experiment were limited to the

changes made to the hierarchical decomposition of the system over a two-month period. Our approach was well received by the experts who found interactively updating a well-known metaphor such as the software city to be both natural and intuitive. However, we quickly identified the need to examine the architectural relationships of the software system and not just its hierarchical decomposition.

Providing the implementation in our current version of the tool, eCITY+, and applying it on a real system such as the Apache Tomcat (see Figure5.1) led us to some useful insight as to what works well and what needs to be further improved. In general, applying HEBs on the top of the city was found useful in gaining an overview or trend of how the individual components are connected to one another. However, due to the multitude of edges found in real systems we need to be careful while applying animations to these edges to determine their evolution.

eCITY+ filters out these edges and allows users to interactively monitor their evolution by selecting components. The resulting visual- ization highlights nodes by interpolating its color and allows users to interactively select a node to show all incoming and outgoing relations. Reserving colors to represent the type of relation limits how eCITY+ represents changes made. An interesting observation was that while interpolating the width to indicate the insertion or removal of an edge shows promise, using luminescence to highlight modifications does not work so well. One idea that we are pursuing is to vary the outline and luminescence in different colors in order to highlight modifications.

Another identified area of improvement in eCITY+ is the efficient handling of multiple edges that may lie on top of each other. Currently, we are experimenting with a combined approach, i.e., on the one hand we may add more control points to some of these edges and relax them for others to create an offset, while on the other we are incorporating interaction techniques to assist users to interactively focus-on and lift each such edge. An example of such might be a combination of the EdgeLens [198] and EdgePlucking [199] techniques.

5.4 Concluding Remarks

In this chapter we presented the eCITY+ tool that focuses on visual- izing the architectural relationships of software systems and not just their hierarchical decomposition.

The goal of this work was to assist architects and developers in examining the evolution of software inter-dependencies for a variety of reasons, such as fixing bugs or to simply get a better impression of the software architecture. As commented by earlier works, meaningful visualizations can be built that represent the hierarchy using an ap- propriate tree structure and overlay the remaining relations. However, we stress on the need to represent these relations in an uncluttered manner and to examine them interactively.

To meet these requirements we have experimented with an edge bundling technique on top of the popular city metaphor to provide an overview of a software system that depicts both the hierarchical decomposition and the architectural relationships. Further, we have looked into exploiting different animation techniques to highlight vari- ous aspects of these relations: particle animation to show the direction of a relation and key frame animation to interactively highlight its evolution.

In informal interviews conducted with experts from visualization, HCI, and software engineering backgrounds we received overall positive feedback about our approach and the usability of our tool. They appreciated the bundling of relations using the streets’ space, as it produces a compact visualization with more information. Further, we received many useful recommendations such as providing an interactive magnifying lens facility to assist the users in extracting the required edge; i.e., a means to pick the specified edge and to interact with it individually.

In future work, we aim to address the above recommendations as well as to research how to improve the tracking of relations in a large software system. Using animations is a powerful tool but one that needs to be handled carefully, especially when dealing with a multitude of edge representations. As such, we need to handle our edge representations better and with care to have a universal approach that may be applied to larger systems. We intend to bring our ideas to maturity and conduct a detailed evaluation study in order to judge the efficiency, effectiveness, usability, and acceptability of our solution.

Visual Analysis in a Collaborative

Environment

The secret is to gang up on the problem, rather than each other

–Thomas Stallkamp1

M

ost software development tools and applications are designed from a single-user perspective and are bound to the desktop. These tools and applications make it hard for developers to analyze and interact with software artifacts collaboratively. In this chapter, we extend the concept of IVA to a scalable large Hi-Res Tiled-Wall display – thereby, enabling a multi-user multi-application collaborative framework.

In recent times, the relatively low costs for setting up large dis- play systems have led to an highly increased usage of such devices. However, it is equally vital to optimally utilize their size and reso- lution to effectively explore data through a combination of diverse visualizations and an applicable means of interaction. In this regards, a lightweight dispatcher framework was developed to facilitate input management, focus management, and the execution of several inter- related yet independent visualizations. The approach is deliberately kept flexible to not only tackle different hardware configurations but

1Founder and principal of Collaborative Management LLC, a private

also the number of visualization applications to be implemented. This shall be demonstrated further through two different case studies that incorporate interrelated visualizations equally well on both a 3x3 Hi-Res Tiled-Wall as well as a single desktop.

This chapter is organized as follows. Motivation and context are provided in Section6.1, related work are examined in Section6.2, the proposed dispatcher framework is described in Section6.3, and the applicability of our framework is demonstrated in Section6.4via two different case studies. Finally, we conclude this chapter in Section6.5.

6.1 Motivation

The comprehension of software for maintainability purposes is often a social activity and involves developers working within a co-located environment (i.e. in the same room and at the same time). In such scenarios, developers typically work in pairs within a larger team to carry out tasks, such as programming, code reviews, refactoring, and visualization of workflows [200].

Additionally, most software development tools are designed from a single-user perspective and are bound to the desktop. This makes it difficult for users to analyze and interact with software artifacts collab- oratively. Further, developers often have to use different applications to explore different software artifacts; for example, in code reviews developers often use different applications to explore test coverage, class dependencies, and class diagrams. It is for these reasons that we propose a multi-user multi-application collaborative framework for use on scalable large Hi-Res displays such as tiled displays.

Innovations in large wall-sized displays have been yielding benefits to visualizations in industry and academia: to cater to a larger au- dience, for more efficient collaborative work, to further immerse the client in virtual reality applications, and to facilitate visualization of large and complex datasets by maintaining both overview and detail views simultaneously [201].

It is these improvements that have led to the growth of large display implementations despite the limitations in size of a single such display and the costs associated with them. The single most influential factor in this progression has been the advent of tiled display systems - a large display consisting of tiled smaller ones driven by clusters of off-the-shelf PC systems. This leads to complete scalability over the

eventual size of the display while keeping the costs relatively low. These facts have led to a number of research projects that have incorporated tiled displays and made it amongst the top ten visualization research topics in recent times [202].

Most existing tiled-display rendering frameworks distribute geome- try and material data to render a single applications graphics database on multiple rendering clients [203,204], while we aim to facilitate the input management, focus management, and the distributed render- ing of several interrelated yet independent applications. The other viable solution would be to have a single scene with various viewports; however, we choose to refrain from this approach to eliminate the possibility of artifacts from one model appearing in the background of another and to a larger extent due to the interaction limitations within these viewports.

In this chapter, we present two different case studies that utilize our framework in order to execute different visualization applications simultaneously, handle interactions between them, and manage input and focus remotely.