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.
Similar content being viewed by others
Notes
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
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
Corbi TA (1989) Program understanding: challenge for the 1990s. IBM Syst J 28(2):294–306
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
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
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
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
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
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
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
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
Nosek JT, Palvia P (1990) Software maintenance management: changes in the last decade. J Softw Maint 2(3):157–174
Pacione MJ (2004) Evaluating a model of software visualisation for software comprehension: department of computer and information sciences. University of Strathclyde, Glasgow, UK
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
Rus I, Lindvall M (2002) Knowledge management in software engineering. IEEE Software 19(3):26–38
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
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
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
Corresponding author
Additional information
Editors:
Massimiliano Di Penta and Susan Sim
Appendix A—Experimental Tasks
Appendix A—Experimental Tasks
-
1.
Open the view “Initial System”. What are the main subsystems in the example? Write down the package names.
Filter task, 0 points
-
2.
Which of these subsystems seems to be the biggest one (hot spot)? Why do you assume this?
Basic task, 2 points
-
3.
Which pairs of main subsystems have reciprocal calls and thus a cyclic dependency on this level?
Basic task, 1 point
-
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
-
5.
How many source files (.java) do belong to the component org.apache.catalina.connector?
Basic task, 1 point
-
6.
To which components does org.apache.catalina.util have call relations?
Basic task, 2 points
-
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
-
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
-
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
-
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
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-008-9069-5