• Suitability of information: “a good level of automation is required in order to make the visualizations of any practical worth”.
Albeit its intrinsic importance, SV topic is so broad and complex that several researchers have proposed taxonomies to classify software visualiza- tion research and tools. Next section is devoted to a brief overview of such taxonomies.
5.2
Taxonomies
On one hand, SV taxonomies allow to compare systems; on the other hand, SV taxonomies are useful to understand all the issues that must be taken into account.
Along the years, many researchers come up with valid taxonomies to help classify, quantify and describe different types of software visualization. Each taxonomy emphasizes different SV aspects, for instance specific software characteristics, human activities, and so on.
In this section, an overview of the most important SV taxonomies are presented.
Brown [Bro88] introduced a visualization approach focused on anima- tions. He describes his proposal using three main axes: Content, Transfor- mation and Persistence.
The first is concerned with the way followed for representing the program. This characteristic is divided in Direct (in which the source code is directly represented using graphical artifacts) and Synthetic (in this case a source code abstraction is graphically depicted).
The second refers to the animation process used in the visualization. It can be Discrete (a series of snapshots are shown) or Incremental (a smooth technique is employed to produce the transition between snapshots).
Finally, Persistence is related with the possibility of holding the process history.
Myers [Mye90] introduced a taxonomy for program visualization which identifies six regions arranged in a 2 × 3 matrix as depicted in Figure 5.4. His simple taxonomy has two main axes:
• The kind of object that the visualization system attempts to illustrate. • The type of information shown.
The first component consists of data, code and algorithms, and the sec- ond one is concerned with the static and dynamic information. The combi- nation of these axes produces the following visualization sorts:
• Data-static: it follows the same approach that for static code visual- izations. The main idea consists in presenting in a suitable way the system data objects and their values.
Figure 5.4: Myers taxonomy
• Data-dynamic: similar code-dynamic visualizations, it consists of an- imations aimed at showing the variables and their values at runtime. This topic is concerned with the strategies for depicting how data changes through the time.
• Code-static: visualizations such as flowcharts.
• Code-dynamic: software animations and strategies to show the code segment used in one specific execution.
• Algorithm-static: generation of snapshots of algorithms.
• Algorithm-dynamic: algorithm animations for presenting an integral dynamic view of each component used at runtime.
Price et al introduced a more comprehensive taxonomy in [PBS93]. Their taxonomy is based upon a tree structure where each leaf provides a different and orthogonal classification criterion. Figure 5.5 depicts the two level taxonomy (to see the details about this second level and subjacent levels, please read [PBS93]).
The first level of this taxonomy contains six categories:
• Scope: What is the range of programs that the software visualization system may take as input for visualization? Scope relates to the source program and the specific intent of the software visualizer.
• Content: What subset of information about the software is visualized by the software visualization system? Content describes the particular aspects of the software that is visualized.
• Form: What are the characteristics of the output of the system (the visualization)? Form is concerned with the elements used in the visu- alization (e.g. graphical elements, colors, views, etc.).
• Method: How the implementation is specified and how the system works? Method is concerned with the strategies used to specify the visualization (e.g. fixed, customizable, etc).
5.2. TAXONOMIES 155
Figure 5.6: Roman and Cox taxonomy
• Interaction: How does the user of the system interact with it and con- trol it? Interaction is concerned with the techniques used to control the visualization (e.g. navigation, temporal control mapping, etc). • Effectiveness: How well does the system convey to the user? Effective-
ness gives the characteristics to assess the visualization quality.
Another taxonomy is the one defined by Roman and Cox [RC93], based on their earlier work [RC92], and it uses four criteria based in the SV model depicted in Figure 5.6:
• Scope: What aspect of the program is visualized? Scope describes the program aspects to visualize.
• Abstraction: What kind of information is conveyed by the visualiza- tion? Abstraction describes the visualization specification degree. • Specification Method: How the visualization is constructed? Specifica-
tion method explains which are the mechanisms used by the animator for building the visualization.
• Technique: How is the graphical representation used to convey the information? Technique is concerned with the effectiveness of the information presentation.
Later on, in 2002, Maletic et al in [MMC02], proposed a realignment to the existing taxonomies in order to reflect the new challenges and issues of the recent software, in particular, software engineer tasks of large-scale de- velopment and maintenance. They proposed a five dimensioned taxonomy to classify software visualization systems and these dimensions reflect the why, who, what, where and, how of the software visualization. The authors
5.2. TAXONOMIES 157
Dimension Roman and Cox [RC92] Price et al [PBS93]
Task F.1. Purpose
Audience F.1. Purpose
Target Scope A. Scope
Abstraction B. Content
Representation
Specification Method C. Form Interface D. Method Presentation E. Interaction
F. Effectiveness
Medium Form
Table 5.1: Overview of the relations between the proposed dimensions and the criteria defined in the taxonomies of Roman and Cox and Price et al respectively [MMC02].
argue that this taxonomy accommodates a larger spectrum of software vi- sualization systems than the other taxonomies defined so far (for example, algorithm animation and visual programming tools).
They pose the five dimensions through the following questions: • Tasks: why is the visualization needed?
• Audience: Who will use the visualization? • Target: what is the data source to represent? • Representation: how to represent it?
• Medium: where to represent the visualization?
The authors also discuss how these dimensions could be mapped into the ones presented by Roman and Cox and by Price et al. Table 5.1 displays this mapping. At the end, the authors analyze a set of software visualization systems and categorize them under this taxonomy.
In 2008, Beron et al proposed a new taxonomy towards Program Com- prehension [BdCP+08]. According to the authors, the existing taxonomies do not cover the kind of visualization required by Software Visualization systems concerned with Program Comprehension. In particular, these tax- onomies do not incorporate dimensions to assess the visualizations oriented for both Problem and Program Domains.
The authors proposed an extended taxonomy based on six main dimen- sions:
• Scope: concerned with the Problem Domain characterization. It is divided into the following categories: stimulus/response, concepts/re- lations, subsystem relations, and behavior.
• Specification Method : concerned with how to link the Problem Domain with the Program Domain components. It is divided into the following approaches: ad-hoc, rigorous and formal.
• Kind of Creation: concerned with the strategy used to create the Prob- lem Domain visualization. It is divided into manual, semi-automatic and automatic.
• Abstraction Level : concerned with the level of detail devoted to show the Problem Domain characteristics. It is divided into direct, struc- tural and synthesized.
• Interface: concerned with artifacts used to display the Problem Do- main visualizations. It is divided into kind of interface (textual, graph- ical or hybrid), type of interaction (classical or innovative) and vocab- ulary (textual, iconic or hybrid).
• Cognitive Models: concerned with the cognitive factors. It is divided into Cognitive Model components (internal and external knowledge, mental model, assimilation process and dangling unit), and learning strategies (top-down, bottom-up and hybrid).
Although some of these dimensions are similar to those defined previ- ously for Program Domain, their means are significantly different. Figure 5.7 depicts the complete taxonomy.
More recently, in 2010, Karavirta et al [KKMN10, KKM06] extended the Price’s taxonomy to cope with algorithm animation languages (a formal language description that specifies an algorithm animation). Their extended taxonomy is based on four main dimensions (see Figure 5.8):
• Visualization: concerned with the variety of supported object types (the building blocks used in the animation), and the ways to position and style the objects.
• Dynamics: concerned with level and versatility of the language fea- tures that can be used to modify the visualization and thus create the animation.
• User Interaction: concerned with the level and type of interaction provided to the end user.
• MetaLanguage: concerned with the properties of the language not directly related to algorithm animation but still helpful in the process of creating useful animation content.
The authors consider that this taxonomy is useful for comparing different languages with each other and understanding their strengths and limitations.
5.2. TAXONOMIES 159
Figure 5.8: Karavirta et al taxonomy (parcial)