A Survey Paper On Software Architecture Visualization: January 2008
A Survey Paper On Software Architecture Visualization: January 2008
net/publication/252768952
CITATIONS READS
25 2,244
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Yaser Ghanam on 19 May 2014.
Amongst the different cognitive models mentioned in this 4.1. Multiplicity of view
paper are two fundamental models. The first model is the With regards to the multiplicity of view, two schools of
bottom-up comprehension model, where software thoughts can be identified. On the one hand, the first
understanding is constructed from mentally grouping school asserts that any visualization should support
smaller elements into higher level abstractions. The top- multiple views of the architecture at different levels of
down comprehension model; however, states that detail in order to satisfy the audience’s different interests
software understanding is constructed through a high [18, 21, 22]. That is, for the visualization to be deemed
level comprehension of the domain of the software useful, it has to provide a means of looking at the
followed by a mapping of this domain into smaller different aspects of a software architecture through
building components. Some research suggests that people different views, and possibly via multiple windows. For
are actually capable of using either model according to instance, if one view provides an insight into the internal
certain cues. Whereas an integrated model suggests that structure of software entities composing the architecture,
people can simultaneously activate both models at any another view should, on a higher level, focus on the
given time to gain an understanding of the software at relationships and communication between these entities.
different levels of abstraction. The implications of the
work in [13] and other efforts in the same field by Storey The other school of thought; on the other hand, believes
such as [14] and [15], have been influential on recent and that a carefully designed single view of the visualization
current research [6, 10, 16, 17, 18]. When designing a might be more effective and meaningful in conveying the
software visualization tool, Storey states that it is essential multiple aspects of the architecture than the multiple view
to determine whether the tool better support a top-down approach [10, 14]. For example, the tool can provide
approach, a bottom-up approach or a hybrid of both. different levels of detail in a single view (e.g. internal
structures of entities along with the relationships between
Li et al. [19] had another interesting view on what defines them) and leave it up to the viewers to draw their own
an effective visualization based on the challenge of mental maps at the level of interest to them.
complexity in software architectures. According to [19],
in addition to the data complexity represented in the huge 4.1.1. Multiple-view visualization
number of nodes and edges, there is a visual complexity Lanza et al. [23, 24] introduced a software visualization
associated with the limitations of the human brain tool called CodeCrawler (CC). Through a 2D
capabilities and short-term memory capacity. Therefore, visualization of reverse-engineered object oriented
Li et al. proposed the use of a clustered graph model to software systems, CC offers the advantage of having
reduce the data complexity, and, consequently, the visual multiple views of the same architecture. The multiplicity
complexity. In this model, three requirements are to be of views aims to uncover the different aspects of the
satisfied in order to deem the view of the architecture architectural design and emphasize specific metrics in the
effective: an adequate information supply (a non- software system. In general, CC represents the
distorting level of abstraction), mental map requirements architecture in a polymeric view in which entities
(the context of previous views should be preserved), and a (classes, methods … etc) are represented as nodes and
constant visual complexity. Also, the algorithm for laying relationships as edges connecting these nodes. The node’s
out the visual elements should ensure a non-overlapping size, position and color are used to represent the metrics
distribution of nodes, the ability to produce compact of interest in the software system. There are four different
output and a way to preserve the mental map. Young et al. views that CC has to offer: 1) coarse-grained view by
which the system complexity is emphasized, 2) fine-
grained view which hierarchically represents the class
blueprint in the architecture, 3) coupling view which, as
the name suggests, underscores coupling amongst
modules in the architecture, and 4) evolutionary view
which helps track changes of the architecture over time.
Figure 3 shows the four different views. Lanza et al.
explain, in great detail, the algorithm followed to layout
the class blueprint visualization in a separate paper [25].
2002
2003
2004
2005
2006
2007
frame indicates single-view. Each box contains either the
letter “A” for abstract metaphor or “R” for real metaphor.
Year
As seen in Figure 15, the most obvious trend in software
Metaphor View Multiplicity Dimensionality
architecture visualization (SAV) is the use of real A → Abstract ____ single-view 2D
metaphors as opposed to abstract ones. By 2005, most of R→ real ------- multi-view YY 3D
the proposed efforts focused on delivering visualizations YY VE
that make use of real-life objects to represent software Figure 15 - Some papers on SAV from 2001 to 2007
entities. This trend has been most probably supported by
the advancement in graphics-related technologies 5.2. Open research questions
(software and hardware) rather than empirical evidence of In Section 2 of this paper, we mentioned that the
the advantages of using a real metaphor in software questions research has been trying to answer can be
visualizations. Literature lacks empirical evaluation of summarized by: Who is the audience? What do they want
what the added benefit is when utilizing a “city” metaphor to know? How can the visualization satisfy their needs?
for example. There have been evaluations that tested And we also mentioned some efforts to identify criteria
utilization of space and other visual attributes, but none for good visualizations.
(from the set covered) touched on the cognitive aspect of
the effectiveness of these real metaphors. It is fairly reasonable to assume that research efforts have
successfully identified the different groups of audience
and their various interests. This conclusion can be drawn
from the fact that recent papers have (in most of the suggested, visualization efforts should be evaluated such
cases) designed and structured their work to target a well- as expressiveness, user interaction, visual complexity and
defined audience. navigation techniques.
Having said that, it is important to mention that these The fourth part of this paper focused on recent software
efforts have failed in evaluating how their work directly architecture visualization tools and techniques. We
influenced the targeted audience. Some people did defined three taxonomies to differentiate between the
evaluate their work against some criteria and heuristics. various efforts. The first taxonomy is dimensionality. We
But as mentioned before, there has not been enough noticed that there is an obvious and justifiable trend to
evaluation that considers human factors in architecture make use of the third dimension as a way to reduce the
visualization. Therefore, it is not guaranteed that the tools visual complexity. In the second taxonomy, multiplicity
and techniques being developed satisfy the audiences’ of views, we noticed no specific trends but different
needs even though they might fully satisfy design opinions about whether a single-view or a multiple-view
principles. is more effective in representing the multiple aspects of
the software architecture. The most obvious trend in
Moreover, it is not sufficient to rely on our guesses or use
literature was related to the third taxonomy which is
the “coolness” factor to decide whether a specific
metaphors. There is an increasing tendency to utilize real
metaphor should be used or not. There is a need to study
metaphors as opposed to abstract ones as a means to
how effective and expressive an abstract or a real
amplify cognition. But with no empirical evidence of the
metaphor is. This is still an open question that requires a
added benefits of these real metaphors, this tendency is
huge amount of effort to answer. Not only do we need to
yet to be scientifically justified.
address the cognitive influence of these metaphors on the
viewer’s comprehension of the architecture, but we also Open research questions in the field of software
need to study the correlation between the complexity of architecture visualization are mainly related to the
the metaphor and the viewer’s ability to form the intended validation of the effectiveness of the tools and approaches
mental map. This issue was also raised by Knodel et al. proposed. There is an evident lack of empirical evidence
[38] who confirmed that there are no empirical evidences which is an important step towards understanding the
of the benefits of some visualization concepts in software value of the research done in this field.
architecture. Therefore, [38] introduced an approach that
This survey paper was limited to recent and key research
explicitly integrated architecture development with the
efforts. A more longitudinal literature survey is needed in
selection, use and empirical validation of visualization
order to come up with more valid and reliable
metaphors. The approach is a composition of defined
generalizations about trends and patterns in software
roles (i.e. stakeholders & visualization experts),
architecture visualization research.
processing steps (i.e. selection of architectural
perspectives), and products (i.e. architectural view). This
ACKNOWLEDGMENTS
approach was validated through several industrial projects
and proved to be successful. We thank Dr. Carpendale for reviewing the credibility of
the resources used in this literature review and making
6. CONCLUSION sure the paper collection sufficiently covers the topic of
interest.
Software visualization is a broad topic that has
increasingly been extended to cover many aspects of
REFERENCES
software engineering and software systems. Two main
conferences lead research in this area: “The ACM 1. Price, B.A., Baecker, R., and Small, I.S. (1998) A
Symposium on Software Visualization (SOFTVIS)” and principled taxonomy of software visualisation. Journal
“The IEEE International Workshop on Visualizing of Visual Languages and Computing. 4(3), pp. 211-
Software for Understanding and Analysis (VISSOFT)”. 266.
Other conferences like SIGGRAPH and INFOVIS are 2. Petre, M., and de Quincey, E. (2006) A gentle
also valuable venues for this discipline. overview of software visualization. The Computer
This paper talked about a specific area in software Society of India Communications (CSIC) & Autumn
visualization concerned with visualizing software 2006 PPIG newsletter.
architecture. To begin with, we defined the field and its 3. ACM Symposium on Software Visualization.
position within the scope of software visualization. Then, Available at http://www.st.uni-
we discussed the three main axes around which all efforts trier.de/~diehl/softvis/org/softvis08, last accessed Feb
in this field orbit, namely: the audience, their needs and 20, 2008.
the tools and techniques to satisfy these needs. After that,
we mentioned the attributes against which, as researchers
4. L. Bass, P. Clements, and R. Kazman. (2003) Software 17. Tilley, S. and Huang, S. (2002) Documenting software
Architecture in Practice. Addison – Wesley Inc. systems with views III: towards a task-oriented
5. D'Ambros, M., and Lanza, M. (2007) BugCrawler: classification of program visualization techniques. The
Visualizing Evolving Software Systems. The 11th 20th Annual international Conference on Computer
European Conference on Software Maintenance and Documentation, 2002, pp. 226-233.
Reengineering, 2007, pp.333-334. 18. Sawant, A., and Bali, N. (2007) DiffArchViz: A Tool
to Visualize Correspondence between Multiple
6. Gračanin, D., Matković, K., and Eltoweissy, M. Representations of Software Architecture. The 4th
(2005) Software visualization. Innovations in Systems IEEE International Workshop on Visualizing Software
and Software Engineering, 1(2), pp. 221-230, Springer for Understanding and Analysis, 2007, pp.121-128.
London. 19. Li, W., Eades, P., and Hong, S. (2005) Navigating
7. Maletic, J., Marcus, A., and Coollard, M. (2002). A software architectures with constant visual complexity.
Task Oriented View of Software Visualization. IEEE IEEE Symposium on Visual Languages and Human-
Workshop of Visualizing Software for Understanding Centric Computing, 2005, pp. 225-232.
and Analysis, 2002, pp. 32-40. 20. Young, P., and Munro, M. (2003) Visualising software
8. Mackinlay, J. (1986) Automating the design of in virtual reality. IEEE First International Workshop
graphical presentation of relational information. ACM on Visualizing Software for Understanding and
Transaction on Graphics, 5(2), pp. 110-141. Analysis, 2003.
9. McNair, A., German, D., Weber-Jahnke, J. (2007) 21. Reiss, S., and Renieris, M. (2003) The BLOOM
Visualizing Software Architecture Evolution Using Software Visualization System. Software Visualization
Change-Sets. The 14th Working Conference on – From Theory to Practice, MIT Press, 2003.
Reverse Engineering, 2007, pp.130-139. 22. Kruchten, P. (1995) The “4+1” view model of
10. Panas, T., Epperly, T., Quinlan, D., Saebjornsen, A., architecture. IEEE Software, 12(6), pp. 42-50.
and Vuduc, R. (2007) Communicating Software 23. Lanza, M., Ducasse, S., Gall, H., and Pinzger, M.
Architecture using a Unified Single-View (2005) CodeCrawler - an information visualization
Visualization. The 12th IEEE International tool for program comprehension. The 27th
Conference on Engineering Complex Computer International Conference on Software Engineering,
Systems, 2007, pp. 217-228. 2005, pp. 672-673.
11. Alam S., and Dugerdil P. (2007) EvoSpaces: 3D 24. Lanza, M. (2003) CodeCrawler - A Lightweight
Visualization of Software Architecture. The 19th Software Visualization Tool. The 2nd International
International Conference on Software Engineering & Workshop on Visualizing Software for Understanding
Knowledge Engineering, 2007. and Analysis, 2003, pp. 51 - 52.
12. Boccuzzo, S., and Gall, H. (2007) CocoViz: Towards 25. Lanza, M., and Ducasse, S. (2001) The Class
Cognitive Software Visualizations. The 4th IEEE Blueprint - A Visualization of the Internal Structure of
International Workshop on Visualizing Software for Classes. Software Visualization Workshop (OOPSLA,
Understanding and Analysis, 2007, pp.72-79. 2001).
13. Storey, M., Fracchia, F., and Muller, H. (1997) 26. Michaud, J., Storey, M., and Muller, H. (2001)
Cognitive design elements to support the construction Integrating information sources for visualizing Java
of a mental model during software visualization. The programs. IEEE International Conference on Software
Fifth International Workshop on Program Maintenance, 2001, pp.250-258.
Comprehension, 1997, pp.17-28. 27. Lintern, R., Michaud, J., Storey, M., and Wu, X.
14. Storey, M., Best, C., and Michand, J. (2001) SHriMP (2003) Plugging-in visualization: experiences
views: an interactive environment for exploring Java integrating a visualization tool with Eclipse. The ACM
programs. The 9th International Workshop on Symposium on Software Visualization, 2003, p. 47.
Program Comprehension, 2001, pp.111-112. 28. Voinea, L., Lukkien, J., and Telea, A. (2007) Visual
15. Storey, M., Best, C., Michaud, J., Rayside, D., Litoiu, assessment of software evolution. Science of
M., and Musen, M. (2002) SHriMP views: an Computer Programming, pp. 222-248.
interactive environment for information visualization 29. Ware, C., Hui, D., and Franck, G. (1993) Visualizing
and navigation. In CHI '02 Extended Abstracts on object oriented software in three dimensions. The IBM
Human Factors in Computing Systems, 2002. Center for Advanced Studies Conference, 1993, pp.
16. Marcus, A., Feng, L., and Maletic, J. (2003) 3D 612-660.
Representations for Software Visualization. The 1st 30. Jones, J., Harrold, M., and Stasko, J. (2001)
ACM Symposium on Software Visualization, 2003, pp. Visualization for Fault Localization. The ICSE
27-36. Workshop on Software Visualization, 2001, pp. 71-75.
31. Balzer, M., Noack, A., Deussen, O., and Lewerentz, C.
(2004) Software landscapes: Visualizing the structure
of large software systems. The ACM Symposium on
Software Visualization, 2004, pp. 261-266.
32. Balzer, M., and Deussen, O. (2004) Hierarchy Based
3D Visualization of Large Software Structures. IEEE
Visualization, 2004.
33. Balzer, M., Deussen, O., and Lewerentz, C. (2005)
Voronoi treemaps for the visualization of software
metrics. The ACM Symposium on Software
Visualization, 2005, pp. 165-172.
34. Löwe, W., and Panas, T. (2005) Rapid Construction of
Software Comprehension Tools. International Journal
of Software Engineering & Knowledge Engineering,
15(6), pp. 905-1023.
35. Wettel, R., and Lanza, M. (2007) Program
Comprehension through Software Habitability. The
15th IEEE International Conference on Program
Comprehension, 2007, pp.231-240.
36. Ham, F. (2003) Using Multilevel Call Matrices in
Large Software Projects. IEEE Symposium on
Information Visualization, 2003, p. 29.
37. Lewerentz, C., and Simon, F. (2002) Metrics-based
3D visualization of large object-oriented programs.
The First International Workshop on Visualizing
Software for Understanding and Analysis, 2002, pp.
70-77.
38. Knodel, J., Muthig, D., Naab, M., and Zeckzer, D.
(2006) Towards Empirically Validated Software
Architecture Visualization. IESE-Report 071.06/E.