Caserta and Zendra: “Visualization of the Static Aspects of Software: A Survey”

Software visualization is an active field of research positioned between software engineering and information visualization. Although there exist events like SoftVis and VISSOFT, papers on software visualization are scattered across many conferences and journals—survey articles that summarize and structure recent developments in the field are thus very important. Caserta and Zendra lately published such a survey focusing on visualizing the static structure and evolution of software.

Pierre Caserta, Olivier Zendra: Visualization of the Static Aspects of Software: A Survey. IEEE Trans. Vis. Comput. Graph. 17(7): 913-933 (2011) [PDF]

The authors divide the article into four main sections: code-line-centered visualization, class-centered visualization, architecture visualization, and visualizing software evolution. These sections are themselves subdivided by the specific data represented in the visualization, such as code relationships or software metrics. In total, nearly 200 publications on software visualization and related fields are referenced, the latest being published in 2009 (when also the article was submitted).

In the Introduction, the authors motivate why we need software visualization and provide evidence from the area of software engineering as well as perception and cognition. Related surveys and taxonomy articles are listed. The authors furthermore outline the paper and define its scope, which is illustrated by a table. Besides structuring the content, the table provides a quick overview of important representatives of software visualization techniques and their history. Here, a simplified version of the table:

Type Level Focus Techniques
structure line SeeSoft, Sv3d
class Class Blueprints
archit. orga. treemap, circular treemap, software cities, Sunburst, Solar System, Voronoi Treemap
relat. Dependency Structure Matrix, UML, Geon, Solar System, landscape, Hierarchical Edge Bundling, software cities, 3D clustered graphs
metric Dependency Structure Matrix, UML, Geon, Solar System, landscape, Hierarchical Edge Bundling, software cities, 3D clustered graphs
evolution line Code Flow
class TimeLine
archit. Hierarchical Edge Bundling, Evolution Matrix, RelVis, software cities

The section presenting approaches for visualizing code lines and classes focuses on SeeSoft and Class Blueprints. They are introduced in detail illustrated by figures. In case of SeeSoft, not only the original approach is discussed, but also more recent, enhanced versions of the technique.

By far the longest section is the one on architecture visualization. Different ways to visualize a hierarchy are introduced and examples in software visualization are provided; metaphor-based representations such as software cities are introduced. Relationships in software systems are represented as a graph, which is briefly discussed by the authors. A particular focus are UML class diagrams and 3D representations visualizing relationships in software cities or visually clustering the graph. Considering metric-based approaches, the authors discuss how software metrics can be embedded into UML diagrams and other graph representations as well as in hierarchy representations and software cities.

Finally, the authors present approaches visualizing the evolution of software systems, such as techniques showing changes in single source code documents as well as techniques visualizing the evolution of software architectures. The main subject of this section, however, is the evolution of software metrics.

Review: In my opinion the article presents a good-quality, comprehensive overview of major parts of software visualization. The authors chose a well-fitting structure, which they clearly outline in a table enriched with interesting meta data. While presenting a rich variety of visualization approaches briefly, the text focuses on introducing a mostly well-selected set of techniques in detail. Some more subheadings, however, may have helped to separate these techniques more clearly. What I was expecting, but what is missing in the article is a deep discussion, a form of meta analysis, or a detailed comparison of the introduced approaches. My conclusion is that the main contribution of the article is the well-structured and comprehensive overview on the selected field. I recommend reading it particularly for people who are interested in software visualization, but are new to the field or know the field only partly.

For related publications, please have a look at the list of overview articles and books on software visualization.

Advertisements
This entry was posted in Papers, Research, Summary and tagged , , , , , , , , , , . Bookmark the permalink.

2 Responses to Caserta and Zendra: “Visualization of the Static Aspects of Software: A Survey”

  1. Fabian Beck says:

    I just added two further recent overview articles on software visualization to the list:

    An Overview of 3D Software Visualization. A.R Teyseyre, M.R. Campo. IEEE Trans. Vis. Comput. Graph., 2009.

    A Survey Paper on Software Architecture Visualization. Yasner Ghanam and Sheelagh Carpendale. University of Calgary, Technical Report, 2008.

  2. Thank you very much for the effort put in this site. I’m doing a master degree on software visualization and your site has been very informative.

    I totally agree. This survey paper, along with Teyseyre et al. are amongst the most comprehensive survey papers that I have came across in my extensive search for papers.

    Cheers,
    Mujtaba

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s