Skip to main content
Log in

An experiment on the role of graphical elements in architecture visualization

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

The evolution and maintenance of large-scale software systems requires first an understanding of its architecture before delving into lower-level details. Tools facilitating the architecture comprehension tasks by visualization provide different sets of configurable, graphical elements to present information to their users. We conducted a controlled experiment that exemplifies the critical role of such graphical elements when aiming at understanding the architecture. In our setting, a different configuration of graphical elements had significant influence on program comprehension tasks. In particular, a 63% gain in effectiveness in architectural analysis tasks was achieved simply by changing the configuration of the graphical elements of the same tool. Based on the results, we claim that significant effort should be spent on the configuration of architecture visualization tools and that configurability should be a requirement for such tools.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. N(group, task type) denotes the distribution of participant performance for the tasks of type “task type” in group

References

  • Apache (2005) The Jakarta site—Apache Tomcat. http://tomcat.apache.org/index.html

  • Balzer M, Noack A, Deussen O, Lewerentz C (2004) Software landscapes: visualizing the structure of large software systems. In Joint EUROGRAPHICS—IEEE TCVG Symposium on Visualization, pp 261–266

  • Basili VR, Rombach HD (1988) The TAME project: towards improvement-oriented software environments. IEEE Trans Softw Eng 14(6):758–773

    Article  Google Scholar 

  • Bauhaus—Software Reengineering, Programmverstehen und Software Architekturen (2005) http://www.bauhaus-tech.de

  • Bayer J (2004) View-based software documentation, PhD: Fraunhofer IRB Verlag

  • Beyer D, Noack A, Lewerentz C (2003) Simple and efficient relational querying of software structures in proceedings of the 10th working conference on reverse engineering. IEEE Computer Society, p 216

  • Cohen J (1992) A power primer. Psychol Bull 112(1):155–159

    Article  Google Scholar 

  • Corbi TA (1989) Program understanding: challenge for the 1990s. IBM Syst J 28(2):294–306

    Article  Google Scholar 

  • Davis TA, Pestka K, Kaplan A (2003) KScope: a modularized tool for 3D visualization of object-oriented programs. VISSOFT 2003: 2nd Annual “Designfest” on Visualizing Software For Understanding And Analysis. Amsterdam, Netherlands, September 22, 2003

  • Dearman D, Cox A, Fisher M (2005) Adding control-flow to a visual data-flow representation. IWPC, St. Louis, USA, pp 297– 306

  • Erben N, Löhr K-P (2005) SAB—The software architecture browser. VISSOFT 2005 (3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis). Budapest, Hungary, pp 1–6

  • Fjeldstad RK, Hamlen WT (1983) Application program maintenance study: report to our respondents. Proceedings GUIDE 48, Philadelphia

  • Furnas GW (1986) Generalized fisheye views. In: Proceedings of the SIGCHI conference on Human factors in computing systems. ACM Press, Boston, Massachusetts, United States, pp 16–23

  • Hedges LV, Olkin I (1985) Statistical methods for meta-analysis. Academic, San Diego, CA

    MATH  Google Scholar 

  • Holt RC (2002) Introduction to the Grok Programming Language. http://plg.uwaterloo.ca/~holt/papers/grok-intro.doc

  • IEEE (2000) ANSI/IEEE Std. 1471-2000 Recommended practice for architectural description of software-intensive systems

  • Imagix4D (2005) http://www.imagix.com/products/imagix4d.html

  • Java Server Pages (JSP) (2007) http://java.sun.com/products/jsp/

  • Knodel J, Lindvall M, Muthig D, Naab M (2006a) Static evaluation of software architectures. 10th European conference on software maintenance and reengineering. Bari, Italy, pp 279–294

  • Knodel J, Muthig D, Naab M (2006b) Static architecture evaluation of open source reuse candidates. NetObjectDays, Erfurt, Germany

    Google Scholar 

  • Knodel J, Muthig D, Naab M (2006c) Understanding software architectures by visualization—an experiment with graphical elements. Proceedings of the 13th Working Conference on Reverse Engineering (WCRE 2006), pp 39–50

  • Knodel J, Muthig D, Naab M, Zeckzer D (2006d) Towards empirically validated software architecture visualization. In: Proceedings of the 2006 ACM symposium on Software visualization. ACM Press, Brighton, United Kingdom, pp 187–188

  • Kolb R, John I, Knodel J, Muthig D, Meier G, Haury U (2006d) Experiences with product line development of embedded systems at Testo AG. The 10th International Software Product Line Conference (SPLC 2006). Baltimore, USA, pp 172–181

  • Koschke R (2003) Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey. J Softw Maint Evol 15(2):87–109

    Article  Google Scholar 

  • Koschke R, Simon D (2003) Hierarchical reflexion models. Proceedings of the Working Conference on Reverse Engineering, IEEE, pp 36–45

  • Krikhaar R, Postma A, Sellink A, Stroucken M, Verhoef C (1999) A two-phase process for software architecture improvement. International Conference on Software Maintenance (ICSM). Oxford, England, pp 371–380

    Google Scholar 

  • Lanza M (2003) Object-oriented reverse engineering. University of Bern

  • Lehman MM, Belady LA (1985) Program evolution: processes of software change. Academic Press Professional, Inc

    Google Scholar 

  • Lintern R, Michaud J, Storey M-A, Wu X (2003) Plugging-in visualization: experiences integrating a visualization tool with Eclipse. ACM Symposium on Software Visualization. San Diego, CA, USA, pp 47–56 June 11–13, 2003

    Google Scholar 

  • Maletic JI, Leigh J, Marcus A, Dunlap G (2001) Visualizing object-oriented software. Virtual Reality Proceedings of the 9th IEEE International Workshop on Program Comprehension (IWPC’01), Toronto, Canada, pp 26–35, May 12–13, 2001

  • Murphy GC, Notkin D, Sullivan KJ (2001) Software reflexion models: bridging the gap between design and implementation. IEEE Trans Softw Eng 27(4):364–380

    Article  Google Scholar 

  • Naab M, Forster T, Knodel J, Muthig D (2005) Evaluation of graphical elements and their adequacy for the visualization of software architectures (IESE Report 078.05/E). Kaiserslautern

  • Navarro-Prieto R, Canas JJ (2001) Are visual programming languages better? The role of imagery in program comprehension. Int J Hum-Comput Stud 54(6):799–829

    Article  MATH  Google Scholar 

  • Nosek JT, Palvia P (1990) Software maintenance management: changes in the last decade. J Softw Maint 2(3):157–174

    Article  Google Scholar 

  • Pacione MJ (2004) Evaluating a model of software visualisation for software comprehension: department of computer and information sciences. University of Strathclyde, Glasgow, UK

    Google Scholar 

  • Panas T, Löwe W, Assmann U (2003) Towards the unified recovery architecture for reverse engineering. International Conference on Software Engineering Research and Practice. Las Vegas, USA, pp 854–860

  • Rigi (2005) Rigi—a visual tool for understanding legacy systems. http://www.rigi.csc.uvic.ca/

  • Rugaber S (1995) Program comprehension. Encyclopedia Comput Sci Technol 35(20):341–368

    Google Scholar 

  • Rus I, Lindvall M (2002) Knowledge management in software engineering. IEEE Software 19(3):26–38

    Article  Google Scholar 

  • Servlets (2007) Java Servlet Technology. http://java.sun.com/products/servlet/

  • Sim SE, Storey M-AD (2000) A structured demonstration of program comprehension tools. In: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE’00). IEEE Computer Society, p 184)

  • Sim SE, Clarke CLA, Holt RC, Cox AM (1999) Browsing and searching software architectures in proceedings of the IEEE International Conference on Software Maintenance. IEEE Computer Society, p 381

  • Sim SE, Storey M-A, Winter A (2000). A structured demonstration of five program comprehension tools: lessons learnt. In: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE’00). IEEE Computer Society, pp 210

  • Storey M-A, Muller HA (1995) Manipulating and documenting software structures using SHriMP views. In: Proceedings of the International Conference on Software Maintenance. IEEE Computer Society, pp 275

  • Storey M-AD, Wong K, Fracchia FD, Mueller HA (1997) On integrating visualization techniques for effective software exploration. In: Proceedings of the 1997 IEEE Symposium on Information Visualization (InfoVis ‘97). IEEE Computer Society, p 38

  • Storey M-AD, Wong K, Muller HA (1997) How do program understanding tools affect how programmers understand programs. In: Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE ‘97). IEEE Computer Society, p 12

  • Systä T (1999) On the relationships between static and dynamic models in reverse engineering java software. In: Proceedings of the Sixth Working Conference on Reverse Engineering. IEEE Computer Society, p 304

  • Termeer M, Lange CFJ, Telea A, Chaudron MRV (2005) Visual exploration of combined architectural and metric information. VISSOFT 2005 (3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis). Budapest, Hungary, pp 1–6

  • Weggeman M (1999) Wissensmanagement—Der richtige Umgang mit der wichtigsten Unternehmens-Ressource. mitp-Verlag

  • Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslen A (2000) Experimentation in software engineering: an introduction. Kluwer, New York

    MATH  Google Scholar 

  • Wu J, Storey M-A (2000) A multi-perspective software visualization environment. In: Proceedings of the 2000 Conference of the Centre for Advanced Studies on Collaborative research. IBM Press, Mississauga, Ontario, Canada, p 15

Download references

Acknowledgement

We would like to thank Marcus Ciolkowski and Sonnhild Namingha for their comments and feedback on earlier drafts of this work. Furthermore, we appreciated the valuable feedback and comments of the anonymous reviewers.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matthias Naab.

Additional information

Editors:

Massimiliano Di Penta and Susan Sim

Appendix A—Experimental Tasks

Appendix A—Experimental Tasks

  1. 1.

    Open the view “Initial System”. What are the main subsystems in the example? Write down the package names.

Filter task, 0 points

  1. 2.

    Which of these subsystems seems to be the biggest one (hot spot)? Why do you assume this?

Basic task, 2 points

  1. 3.

    Which pairs of main subsystems have reciprocal calls and thus a cyclic dependency on this level?

Basic task, 1 point

  1. 4.

    Navigate to the children of the top-level systems and try to get a high-level understanding of the system.

There is the component org.apache.catalina.mbeans: Has this component mainly incoming or outgoing relations?

Basic task, 1 point

  1. 5.

    How many source files (.java) do belong to the component org.apache.catalina.connector?

Basic task, 1 point

  1. 6.

    To which components does org.apache.catalina.util have call relations?

Basic task, 2 points

  1. 7.

    Open the view “Catalina Task System” and switch to manual layout.

Please create a new view that contains all components of the subsystem org.apache.catalina, but without the subsystem itself. Name this new view “catalina_#”. (Selection of components uses regular expressions (arbitrary sequence of characters: “.*”)

Basic task, 1 point

  1. 8.

    Reorder the layout of org.apache.catalina in your new view in manual layout mode according to the following ideas.

The objective is to reorder the architecture of this package into a three-layer architecture. The grouping is done according to the ratio of incoming to outgoing relations of a component.

Service Layer: #in/#out → 0

Processing Layer: #in/#out ≈ 1

Library Layer: #in/#out → ∞

Transfer task, 4 points

  1. 9.

    Please create a JPEG image of the diagram showing all the top-level systems and their relations. Save this image with the name “layers_#.jpg” in the actual workspace (location can be seen in the title bar of Eclipse).

Filter task, 0 points

  1. 10.

    Open the view “Tomcat Task System”. Looking at the static architectural view only: How does the processing of the network protocol TCP (org.apache.tomcat.util.net) differ from the processing of the web protocol HTTP (org.apache.tomcat.util.http)?

Transfer task, 3 points

Rights and permissions

Reprints and permissions

About this article

Cite this article

Knodel, J., Muthig, D. & Naab, M. An experiment on the role of graphical elements in architecture visualization. Empir Software Eng 13, 693–726 (2008). https://doi.org/10.1007/s10664-008-9069-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-008-9069-5

Keywords

Navigation