Abstract
The field of software visualization (SV) investigates approaches and techniques for static and dynamic graphical representations of algorithms, programs (code), and processed data. SV is concerned primarily with the analysis of programs and their development. The goal is to improve our understanding of inherently invisible and intangible software, particularly when dealing with large information spaces that characterize domains like software maintenance, reverse engineering, and collaborative development. The main challenge is to find effective mappings from different software aspects to graphical representations using visual metaphors. This paper provides an overview of the SV research, describes current research directions, and includes an extensive list of recommended readings.
Similar content being viewed by others
References
Amari H, Okada M (1999) A three-dimensional visualization tool for software fault analysis of a distributed system. In: Proceedings of the IEEE systems, man, and cybernetics conference (SMC’99), 4:194–1999
Asokan R (2003) Automatic visualization of the version history of a software system in three dimensions. Master’s thesis, Virginia Polytechnic Institute and State University, Falls Church, VA
Averbukh VL (1997) Toward formal definition of conception ‘‘adequacy in visualization’’. In: Proceedings of the 1997 IEEE symposium on visual languages, pp 46–47
Baecker R, DiGiano C, Marcus A (1997) Software visualization for debugging. Commun ACM 40(4):44–54
Ball T, Eick SG (1996) Software visualization in the large. IEEE Comput 29(4):33–43
Ball T, Kim JM, Porter AA, Siy HP (1997) If your version control system could talk . . . . In: Proceedings of the ICSE workshop on process modelling and empirical studies of software engineering
Baloian N, Breuer H, Luther W (2005) Algorithm visualization using concept keyboards. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 7–16
Balzer M, Deussen O (2004) Hierarchy based 3D visualization of large software structures. In: Proceedings of the conference on visualization (VIS’04). IEEE Press, Washington, DC, p 598.4
Balzer M, Deussen O, Lewerentz C (2005) Voronoi treemaps for the visualization of software metrics. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 164–172,214
Bassil S, Keller RK (2001) Software visualization tools: survey and analysis. In: Proceedings of the 9th international workshop on program comprehension (IWPC 2001), Toronto, pp 7–17
Bieman JM, Andrews AA, Yang HJ (2003) Understanding change-proneness in OO software through visualization. In: Proceedings of the 11th IEEE international workshop on program comprehension (IWPC’03), pp 44–53
Boisvert C (2004) Supporting program development comprehension by visualising iterative design. In: Proceedings of the 8th international conference on information visualisation (IV’04), pp 717–722
Bril RJ, Postma A, Krikhaar RL (2003) Embedding architectural support in industry. In: Proceedings of the international conference on software maintenance (ICSM’03), pp 348–357
Brown M, Domingue J, Price B, Stasko J (1994) Software visualization: a CHI ‘94 workshop. SIGCHI Bull 26(4):32–35
Burch M, Diehl S, Weissgerber P (2005) Visual data mining in software archives. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 37–46
Burnett M, Cook C, Rothermel G (2004) End-user software engineering. Commun ACM 47(9):53–58
Cattaneo G, Faruolo P, Petrillo UF, Italiano GF (2004) JIVE: Java interactive software visualization environment. In: Proceedings of the 2004 IEEE symposium on visual languages and human centric computing (VLHCC’04), pp 41–43
Chuah MC, Eick SG (1997) Glyphs for software visualization. In: Proceedings of the 5th iternational workshop on program comprehension (IWPC’97), pp 183–191
Chuah MC, Eick SG (1998) Information rich glyphs for software management data. IEEE Comput Graph Appl 18(4):24–29
Collins TD (2003) Applying software visualization technology to support the use of evolutionary algorithms. J Vis Lang Comput 14(2):123–150
Conti G, Abdullah K (2004) Passive visual fingerprinting of network attack tools. In: Proceedings of the 2004 ACM workshop on visualization and data mining for computer security (VizSEC/DMSEC’04), pp 45–54
Costagliola G, Deufemia V, Polese G (2004) A framework for modeling and implementing visual notations with applications to software engineering. ACM Trans Softw Eng Methodol 13(4):431–487
Cox P, Gauvin S, Rau-Chaplin A (2005) Adding parallelism to visual data flow programs. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 135–144
Cross II JH, Hendrix TD, Barowski LA, Mathias KS (1998) Scalable visualizations to support reverse engineering: a framework for evaluation. In: Proceedings of the 5th working conference on reverse engineering, pp 201–209
Cross II JH, Hendrix TD, Mathias KS, Barowski LA (1999) Software visualization and measurement in software engineering education: an experience report. In: Proceedings of the 29th ASEE/IEEE conference on frontiers in education, pp 12b1/5–12b1/10
De Pauw W, Reiss SP, Stasko JT (2001) ICSE workshop on software visualization. In: Proceedings of the 23rd international conference on software engineering (ICSE’01), pp 758–759
Deng Y, Kothari S, Namara Y (2001) Program slice browser. In: Proceedings of the 9th international workshop on program comprehension (IWPC’01), pp 50–59
Diehl S (ed) (2002) Proceedings of the international seminar on software visualization, Dagstuhl Castle, Germany, 20–25 May 2001. Revised papers. Lecture notes in computer science, vol 2269. Springer, Berlin Heidelberg New York
Diehl S (2005) Software visualization. In: Proceedings of the 27th international conference on Software engineering (ICSE’05). ACM Press, New York, pp 718–719
Diehl S, Kerren A (2002) Reification of program points for visual execution. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), pp 100–109
Domingue J, Mulholland P (1997) Staging software visualizations on the web. In: Proceedings of the 1997 IEEE symposium on visual languages, pp 364–371
Domingue J, Sutinen E (2002) Software visualization – editorial. J Vis Lang Comput 13(3):257–258
Dong J, Yang S, Zhang K (2005) VisDP: A web service for visualizing design patterns on demand. In: Proceedings of the international conference on information technology: coding and computing (ITCC’05), 2:385–391
Douglas S, Hundhausen C, McKeown D (1995) Toward empirically-based software visualization languages. In: Proceedings of the 11th IEEE international symposium on visual languages, pp 342–349
Ducasse S, Lanza M (2005) The class blueprint: visually supporting the understanding of classes. IEEE Trans Softw Eng 31(1):75–90
Ducasse S, Lanza M, Bertuli R (2004) High-level polymetric views of condensed run-time information. In: Proceedings of the 8th European conference on software maintenance and reengineering (CSMR’04), pp 309–318
Dwyer T (2001) Three dimensional UML using force directed layout. In: Proceedings of the Australian symposium on information visualisation 2001, Sydney, Australia, pp 77–85
Eick SG, Steffen JL, Summer EE Jr (1992) Seesoft: a tool for visualizing line oriented software statistics. IEEE Trans Softw Eng 18(11):957–968
Eick SG, Graves TL, Karr AF, Mockus A, Schuster P (2002) Visualizing software changes. IEEE Trans Softw Eng 28(4):396–412
Favre JM, Cervantes H (2002) Visualization of component-based software. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), pp 51–60
Feijs L, Jong RD (1998) 3D visualization of software architectures. Commun ACM 41(12):73–78
Fiutem R, Merlo E, Antonio G, Tonella P (1996) Understanding the architecture of software systems. In: Proceedings of the 4th workshop on program comprehension (WPC’06), pp 187–196
Gall H, Hajek K, Jazayeri M (1998) Detection of logical coupling based on product release history. In: Proceedings of the international conference on software maintenance (ICSM’98). IEEE Press, Washington, DC, p 190
Gall H, Jazayeri M, Riva C (1999) Visualizing software release histories: The use of color and third dimension. In: Proceedings of the IEEE international conference on software maintenance (ICSM’99)
Gestwicki P, Jayaraman B (2005) Methodology and architecture of JIVE. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 95–104
Ghosh S, Bawa N, Craig G, Kalgaonkar K (2001) A test management and software visualization framework for heterogeneous distributed applications. In: Proceedings of the 6th IEEE international symposium on high assurance systems engineering (HASE’01), pp 106–116
Girba T, Lanza M, Ducasse S (2005) Characterizing the evolution of class hierarchies. In: Proceedings of the 9th European conference on software maintenance and reengineering (CSMR’05), pp 2–11
Grimstead IJ, Avis NJ, Walker DW (2005) Visualization across the pond: How a wireless PDA can collaborate with million-polygon datasets via 9,000 km of cable. In: Proceeding of the 10th international conference on 3D web technology (Web3D 2005), pp 47–56,187
Grissom S, McNally MF, Naps T (2003) Algorithm visualization in CS education: comparing levels of student engagement. In: Proceedings of the 2003 ACM symposium on software visualization (SoftVis’03), pp 87–94
Hendrix D, Cross II JH, Barowski LA (2004) An extensible framework for providing dynamic data structure visualizations in a lightweight IDE. In: Proceedings of the 35th technical symposium on computer science education (SIGCSE’04), pp 387–391
Hill T, Noble J, Potter J (2002) Scalable visualizations of object-oriented systems with ownership trees. J Vis Lang Comput 13(3):319–339
Hopfner M, Seipel D, von Gudenberg JW (2003) Comprehending and visualizing software based on XML-representations and call graphs. In: Proceedings of the 11th IEEE international workshop on program comprehension (IWPC’03), pp 290–291
Hopkins JF, Fishwick PA (2003) The rube framework for software modeling and customized 3-D visualization. J Vis Lang Comput 14:97–117
Huang S, Tilley S (2003) Workshop on graphical documentation for programmers: assessing the efficacy of UML diagrams for program understanding. In: Proceedings of the 11th IEEE international workshop on program comprehension, pp 281–282
Hundhausen CD, Douglas SA, Stasko JT (2002) A meta-study of algorithm visualization effectiveness. J Vis Lang Comput 13(3):259–290
Hutchins M, Gallagher K (1998) Improving visual impact analysis. In: Proceedings of the international conference on software maintenance, pp 294–303
Irwin W, Churcher N (2003) Object oriented metrics: precision tools and configurable visualisations. In: Proceedings of the 9th international software metrics symposium, pp 112–123
Jeffery CL (1999) Program monitoring and visualization: an exploratory approach. Springer, Berlin Heidelberg, New York
Jerding DF, Sasko JT, Ball T (1996) Visualizing message patterns in object-oriented. Technical report GIT-GVU-96-15, Graphics, Visualization, and Usability Center, College of Computing, Georgia Institute of Technology, Atlanta
Knight C, Munro M (1999) Comprehension with[in] virtual environment visualisations. In: Proceedings of the 7th international workshop on program comprehension, Pittsburgh, PA, pp 4–11
Koike H (1993) The role of another spatial dimension in software visualization. ACM Trans Inf Syst 11(3):266–286
LaFollette P, Korsh J, Sangwan R (2000) A visual interface for effortless animation of C/C++ programs. J Vis Lang Comput 11(1):27–48
Lakoff G, Johnson M (1980) Metaphors we live by. University of Chicago Press, Chicago
Lanza M (2003) CodeCrawler: lessons learned in building a software visualization tool. In: Proceedings of the 7th European conference on software maintenance and reengineering (CSMR’03), pp 409–418
Lanza M (2004) CodeCrawler: polymetric views in action. In: Proceedings of the 19th international conference on automated software engineering (ASE’04), pp 394–395
Lanza M, Ducasse S (2003) Polymetric views: a lightweight visual approach to reverse engineering. IEEE Trans Softw Eng 29(9):782–795
Lewerentz C, Simon F (2002) Metrics-based 3D visualization of large object-oriented programs. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), Paris, pp 70–77
Lieberman H, Fry C (2001) Will software ever work? Commun ACM 44(3):122–124
Lintern R, Michaud J, Storey MA, Wu X (2003) Plugging-in visualization: experiences integrating a visualization tool with Eclipse. In: Proceedings of the 2003 ACM symposium on software visualization (SoftVis ‘03). ACM Press, New York, pp 47–56
Mackinlay JD (1986) Automating the design of graphical presentations of relational information. ACM Trans Graph 5(2):110–141
Maletic JI, Leigh J, Marcus A, Dunlap G (2001) Visualizing object-oriented software in virtual reality. In: Proceedings of the 9th international workshop on program comprehension (IWPC’01), Toronto, pp 26–35
Maletic JI, Marcus A, Collard ML (2002) A task oriented view of software visualization. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), pp 32–40
Maletic JI, Marcus A, Feng L (2003) Source viewer 3D (sv3D): a framework for software visualization. In: Proceedings of the 25th international conference on software engineering (ICSE’03), pp 812–813
Malloy BA, Power JF (2005) Exploiting UML dynamic object modeling for the visualization of C++ programs. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 105–114
Marcus A, Feng L, Maletic JI (2003a) 3D representations for software visualization. In: Proceedings of the 2003 ACM symposium on software visualization (SoftVis’03). ACM Press, New York, pp 27–36
Marcus A, Feng L, Maletic JI (2003b) Comprehension of software analysis data using 3D visualization. In: Proceedings of the 11th IEEE international workshop on program comprehension (IWPC’03), pp 105–114
Marcus A, Comorski D, Sergeyev A (2005) Supporting the evolution of a software visualization tool through usability studies. In: Proceedings of the 13th international workshop on program comprehension (IWPC’05), pp 307–316
Marks RM, Wilkie FG (2004) Visualising object-oriented source code complexity using XML. In: Proceedings of the 9th IEEE international conference on engineering complex computer systems navigating complexity in the e-Engineering age, pp 161–170
Myers BA (1990) Taxonomies of visual programming and program visualization. J Vis Lang Comput 1(1):97–123
Noack A, Lewerentz C (2005) A space of layout styles for hierarchical graph models of software systems. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis ‘05). ACM Press, New York, pp 155–164
Pacione MJ (2004) Software visualisation for object-oriented program comprehension. In: Proceedings of the 26th international conference on software engineering (ICSE’04), pp 63–65
Pacione MJ, Roper M, Wood M (2004) A novel software visualisation model to support software comprehension. In: Proceedings of the 11th working conference on reverse engineering (WCRE’04), pp 70–79
Panas T, Lincke R, Löwe W (2005) Online-configuration of software visualizations with Vizz3D. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 173–182
Parker G, Franck G, Ware C (1998) Visualization of large nested graphs in 3D: Navigation and interaction. J Vis Lang Comput 9(3):299–317
Price BA, Small IS, Baecker R (1992) A taxonomy of software visualization. In: Proceedings of the 25th Hawaii international conference on system sciences, 2:597–606
Price BA, Baecker RM, Small IS (1993) A principled taxonomy of software visualization. J Vis Lang Comput 4(3):211–266
Reiss SP (2002) A visual query language for software visualization. In: Proceedings of the IEEE 2002 symposia on human centric computing languages and environments (HCC’02), pp 80–82
Reiss SP (2003) JIVE: Visualizing java in action. In: Proceedings of the 25th international conference on software engineering (ICSE’03), pp 820–821
Reiss SP (2005) Tool demonstration: JIVE and JOVE: Java as it happens. In: Proceedings of the 25th international conference on software engineering (ICSE’03), pp 820–821
Rilling J, Mudur S (2005) 3D visualization techniques to support slicing-based program comprehension. Comput Graph 29(3):311–329
Rilling J, Mudur SP (2002) On the use of metaballs to visually map source code structures and analysis results onto 3D space. In: Proceedings of the 9th working conference on reverse engineering (WCRE’02), pp 299–308
Rilling J, Seffah A, Bouthlier C (2002) The CONCEPT project: applying source code analysis to reduce information complexity of static and dynamic visualization techniques. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), pp 90–99
Roman GC, Cox KC (1992) Program visualization: the art of mapping programs to pictures. In: Proceedings of the 14th international conference on Software engineering. ACM Press, Melbourne, pp 412–420
Roman GC, Cox KC (1993) A taxonomy of program visualization systems. IEEE Comput 26(12):11–24
Ruthruff J, Creswick E, Burnett M, Cook C, Prabhakararao S, M Fisher I, Main M (2003) End-user software visualizations for fault localization. In: Proceedings of the 2003 ACM symposium on software visualization (SoftVis’03). ACM Press, New York, pp 123–132
Seemann J, von Gudenberg JW (1998) Visualization of differences between versions of object-oriented software. In: Proceedings of the 2nd Euromicro conference on software maintenance and reengineering, pp 201–204
Shneiderman B (2002) Creativity support tools. Commun ACM 45(10):116–120
Simon F, Steinbrückner F, Lewerentz C (2001) Metrics based refactoring. In: Proceedings of the 5th European conference on software maintenance and reengineering, pp 30–38
Singhal S, Zyda M (1999) Networked virtual environments: design and implementation. ACM Press SIGGRAPH Series, Addison-Wesley, Reading, MA
Smith G, Mariani J (1997) Using subjective views to enhance 3D applications. In: Proceedings of the ACM symposium on virtual reality software and technology. ACM Press, New York, pp 139–146
Smith MP, Munro M (2002) Runtime visualisation of object oriented software. In: Proceedings of the 1st international workshop on visualizing software for understanding and analysis (VISSOFT’02), pp 81–89
Snowdon D, Jää-Aro KM (1997) A subjective virtual environment for collaborative information visualization. In: Virtual Reality Universe’97, Santa Clara, CA
Snowdon D, Greenhalgh C, Benford S (1995) What you see is not what I see: subjectivity in virtual environments. In: Framework for immersive virtual environments (FIVE’95), QMW University of London, UK
Stasko JT (1992) Three-dimensional computation visualization. Technical report GIT-GVU-94-33, Graphics, Visualization, and Usability Center, College of Computing, Georgia Institute of Technology, Atlanta
Stasko JT, Muthukumarasamy J (1996) Visualizing program executions on large data sets. In: Proceedings of the 1996 IEEE symposium on visual languages, pp 166–173
Stasko JT, Patterson C (1992) Understanding and characterizing software visualization systems. In: Proceedings of the 1992 IEEE workshop on visual languages, Seattle, pp 3–10
Stasko JT, Turner CR (1992) Tidy animations of tree algorithms. In: Proceedings of the 1992 IEEE workshop on visual languages, Seattle, pp 216–218
Stasko JT, Domingue JB, Brown MH, Price BA (eds) (1998) Software visualization. MIT Press, Cambridge, MA
Stefik M, Bobrow DG, Foster G, Lanning S, Tatar D (1987a) WYSIWIS revised: early experiences with multiuser interfaces. ACM Trans Inf Sys 5(2):147–167
Stefik M, Foster G, Bobrow DG, Kahn K, Lanning S, Suchman L (1987b) Beyond the chalkboard: computer support for collaboration and problem solving in meetings. Commun ACM 30(1):32–47
Storey MAD, Fracchia FD, Müller HA (1997a) Cognitive design elements to support the construction of a mental model during software visualization. In: Proceedings of the 5th international workshop on program comprehension (IWPC 1997), Dearborn, MI, pp 17–28
Storey MAD, Wong K, Fracchia FD, Müller HA (1997b) On integrating visualization techniques for effective software exploration. In: Proceedings of the 1997 IEEE symposium on information visualization, Phoenix, AZ, pp 38–45
Storey MAD, Čubranić D, German DM (2005) On the use of visualization to support awareness of human activities in software development: a survey and a framework. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 193–202
Telea A, Maccari A, Riva C (2002) An open visualization toolkit for reverse architecting. In: Proceedings of the 10th international workshop on program comprehension (IWPC’02), pp 3–10
Tilley S, Huang S (2002) On selecting software visualization tools for program understanding in an industrial context. In: Proceedings of the 10th international workshop on program comprehension (IWPC’02), pp 285–288
Tudoreanu ME (2003) Designing effective program visualization tools for reducing user’s cognitive effort. In: Proceedings of the 2003 ACM symposium on software visualization (SoftVis’03). ACM Press, New York, pp 105–114
Tufte E (1990) Envisioning information. Graphics Press, Cheshire, UK
van Ham F (2003) Using multilevel call matrices in large software projects. In: Proceedings of the 2003 IEEE symposium on information visualization (INFOVIS’03), pp 227–232
Vityaev E, Kovalerchuk B (2002) Inverse visualization in data mining. In: Proceedings of the 2002 international conference on imaging science, systems, and technology, pp 133–137
Voinea L, Telea A, van Wijk JJ (2005) CVSscan: visualization of code evolution. In: Proceedings of the 2005 ACM symposium on software visualization (SoftVis’05). ACM Press, New York, pp 47–56
Ware C, Hui D, Franck G (1993) Visualizing object oriented software in three dimensions. In: Proceedings of the 1993 IBM Centre for Advanced Studies conference (CASCON’93), Toronto, pp 612–660
Yoo I (2002) Visualizing windows executable viruses using self-organizing maps. In: Proceedings of the 2004 ACM workshop on visualization and data mining for computer security (VizSEC/DMSEC’04), pp 82–89
Young P, Munro M (1998) Visualizing software in virtual reality. In: Proceedings of the 6th international workshop on program comprehension (IWPC’98), Ischia, pp 19–26
Zernik D (1995) Visualizing programs using graphs. In: Proceedings of the 18th convention of electrical and electronics engineers in Israel, pp 1.3.3/1–1.3.3/4
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Gračanin, D., Matković, K. & Eltoweissy, M. Software visualization. Innovations Syst Softw Eng 1, 221–230 (2005). https://doi.org/10.1007/s11334-005-0019-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-005-0019-8