Visualization and Evolution of Software Architectures

OASIcs : OpenAccess Series in Informatics, Oct 2012

Software systems are an integral component of our everyday life as we find them in tools and embedded in equipment all around us. In order to ensure smooth, predictable, and accurate operation of these systems, it is crucial to produce and maintain systems that are highly reliable. A well-designed and well-maintained architecture goes a long way in achieving this goal. However, due to the intangible and often complex nature of software architecture, this task can be quite complicated. The field of software architecture visualization aims to ease this task by providing tools and techniques to examine the hierarchy, relationship, evolution, and quality of architecture components. In this paper, we present a discourse on the state of the art of software architecture visualization techniques. Further, we highlight the importance of developing solutions tailored to meet the needs and requirements of the stakeholders involved in the analysis process.

Article PDF cannot be displayed. You can download it here:

http://drops.dagstuhl.de/opus/volltexte/2012/3739/pdf/4.pdf

Visualization and Evolution of Software Architectures

Visualization and Evolution of Software Architectures Taimur Khan1 , Henning Barthel2 , Achim Ebert1 , and Peter Liggesmeyer2 1 2 Computer Graphics and HCI Group University of Kaiserslautern, Germany {tkhan,ebert}@informatik.uni-kl.de Fraunhofer IESE Kaiserslautern, Germany {Henning.Barthel,Peter.Liggesmeyer}@informatik.uni-kl.de Abstract Software systems are an integral component of our everyday life as we find them in tools and embedded in equipment all around us. In order to ensure smooth, predictable, and accurate operation of these systems, it is crucial to produce and maintain systems that are highly reliable. A well-designed and well-maintained architecture goes a long way in achieving this goal. However, due to the intangible and often complex nature of software architecture, this task can be quite complicated. The field of software architecture visualization aims to ease this task by providing tools and techniques to examine the hierarchy, relationship, evolution, and quality of architecture components. In this paper, we present a discourse on the state of the art of software architecture visualization techniques. Further, we highlight the importance of developing solutions tailored to meet the needs and requirements of the stakeholders involved in the analysis process. 1998 ACM Subject Classification D.2.11 Software Architectures Keywords and phrases Sofware architecture visualization, software comprehension, software maintenance, software evolution, human perception Digital Object Identifier 10.4230/OASIcs.VLUDS.2011.25 1 Motivation The field of software visualization is centered on visual representations aimed at making the software more comprehensible. These representations are a necessity for analysts to examine software systems due to their “complex, abstract, and difficult to observe” nature [53]. These difficulties are further compounded in large-scale software systems where it becomes increasingly difficult for analysts to examine the systems’ behavior and properties, due to the systems’ scale. Software visualization focuses on various aspects of software systems, such as source code, software structure, runtime behavior, component interaction, or software evolution, to unravel patterns and behaviors through the different software development stages [1]. Due to the diverse nature of these data sets, different types of visualizations can be found in literature. However, for the focus of this research we highlight the visualization of software architecture as well as software architecture evolution. The visualization of software architecture is an essential component of software visualization. “Not only are architects interested in this visualization but also developers, testers, project managers, and even customers” [32]. From the perspective of a software analyst, © Taimur Khan, Henning Barthel, Achim Ebert, and Peter Liggesmeier; licensed under Creative Commons License ND Proceedings of IRTG 1131 – Visualization of Large and Unstructured Data Sets Workshop 2011. Editors: Christoph Garth, Ariane Middel, Hans Hagen; pp. 25–42 OpenAccess Series in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany 26 Visualization and Evolution of Software Architectures (a) General node-link diagram (b) As found in SAVE [23] Figure 1 General and tool specific node-link diagram. software architecture focuses on the structure of a software system – the focal point of which is to examine composing entities, their metrics, and relationships [11]. Additionally, recent studies have shown an increased interest in not only the visual exploration of software modules, their structure, and interrelations, but also in the evolution of these modules [19]. The key feature of software architecture visualization is to uncover visual metaphors that are both efficient and effective in depicting the software architecture of a system and to encode software code metrics within these representations. Several questions need to be addressed in finding such solutions, such as: who is the end-user of the architecture visualization [50], what needs to be analyzed through the visualization [52], and how can appropriate visualization metaphors and interaction techniques be chosen [2]. 2 Visualizing Software Architectures One of the core topics in the field of software visualization is a means to effectively visualize, navigate, and explore the software architecture of a system [31, 32, 34]. Generally, objectoriented software tends to be structured hierarchically – with packages containing subpackages, which in turn contain classes that hold methods and attributes. It is this hierarchy and relationships between software components that are of interest when it comes to software architecture visualization [15]. In this section, we explore representations of the global architecture of a system, such as tree, graph, and diagram model depictions. Further, we also investigate representations that highlight relationships between components as well as the importance of visualizing software metrics. 2.1 Architecture Representations Tree structures are an ideal way of representing the hierarchical structure of software architecture. However, research in this area has shown the need to move forward from wellknown techniques such as node-link layouts to more sophisticated ones to handle the larger hierarchies found in software systems nowadays [70]. Fig. 1 shows both a generic node-link diagram as well as one found in a commercial tool. Inspection of these representations shows that they quickly become too large and utilize available screen space far too poorly for proper investigation. Further, the amount of textual information represented in the nodes as well as the way relationships are depicted should be revisited to avoid visual clutter and information overload [41]. This section inspects several 2D visual representations [10] that may not be specific to just software visualization, but have been effectively applied to highlight the hierarchal structure of a software system [70, 4]. Here, it is important to note that a lot of these representations T. Khan, H. Barthel, A. Ebert, and P. Liggesmeier (a) Rectangular TreeMap 27 (b) Circular TreeMap Figure 2 Rectangular and Circular TreeMaps from [57]. have been extended to 3D visualizations [2, 6, 49]. While 3D approaches have been shown to display larger hierarchies and minimize clutter [58], they have also suffered from the well documented drawbacks of 3D visualizations, such as: object occlusion, cumbersome view adjustments, performance issues, as well as poor readability of 3D texts [48, 17]. Due to these drawbacks and the requirements of our stakeholders, this survey focuses mostly on 2D representations. The Treemap visualization (Fig. 2a), first introduced by Johnson and Schneiderman [39], is an effective means to visualize an entire software hierarchy. It is essentially a space-filling t (...truncated)


This is a preview of a remote PDF: http://drops.dagstuhl.de/opus/volltexte/2012/3739/pdf/4.pdf
Article home page: http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=3739

Taimur Khan, Henning Barthel, Achim Ebert, Peter Liggesmeyer. Visualization and Evolution of Software Architectures, OASIcs : OpenAccess Series in Informatics, 2012, pp. 25-42, 27, DOI: 10.4230/OASIcs.VLUDS.2011.25