Skip to main content
Log in

Software visualization

  • STATE OF THE ART
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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.

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.

Similar content being viewed by others

References

  1. 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

  2. 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

  3. Averbukh VL (1997) Toward formal definition of conception ‘‘adequacy in visualization’’. In: Proceedings of the 1997 IEEE symposium on visual languages, pp 46–47

  4. Baecker R, DiGiano C, Marcus A (1997) Software visualization for debugging. Commun ACM 40(4):44–54

    Google Scholar 

  5. Ball T, Eick SG (1996) Software visualization in the large. IEEE Comput 29(4):33–43

    Google Scholar 

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. Brown M, Domingue J, Price B, Stasko J (1994) Software visualization: a CHI ‘94 workshop. SIGCHI Bull 26(4):32–35

    Google Scholar 

  15. 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

  16. Burnett M, Cook C, Rothermel G (2004) End-user software engineering. Commun ACM 47(9):53–58

    Google Scholar 

  17. 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

  18. Chuah MC, Eick SG (1997) Glyphs for software visualization. In: Proceedings of the 5th iternational workshop on program comprehension (IWPC’97), pp 183–191

  19. Chuah MC, Eick SG (1998) Information rich glyphs for software management data. IEEE Comput Graph Appl 18(4):24–29

    Google Scholar 

  20. Collins TD (2003) Applying software visualization technology to support the use of evolutionary algorithms. J Vis Lang Comput 14(2):123–150

    Google Scholar 

  21. 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

  22. 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

    Google Scholar 

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. Diehl S (2005) Software visualization. In: Proceedings of the 27th international conference on Software engineering (ICSE’05). ACM Press, New York, pp 718–719

  30. 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

  31. Domingue J, Mulholland P (1997) Staging software visualizations on the web. In: Proceedings of the 1997 IEEE symposium on visual languages, pp 364–371

  32. Domingue J, Sutinen E (2002) Software visualization – editorial. J Vis Lang Comput 13(3):257–258

    Google Scholar 

  33. 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

  34. 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

  35. Ducasse S, Lanza M (2005) The class blueprint: visually supporting the understanding of classes. IEEE Trans Softw Eng 31(1):75–90

    Google Scholar 

  36. 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

  37. 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

  38. 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

    Google Scholar 

  39. Eick SG, Graves TL, Karr AF, Mockus A, Schuster P (2002) Visualizing software changes. IEEE Trans Softw Eng 28(4):396–412

    Google Scholar 

  40. 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

  41. Feijs L, Jong RD (1998) 3D visualization of software architectures. Commun ACM 41(12):73–78

    Google Scholar 

  42. 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

  43. 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

  44. 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)

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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

  51. Hill T, Noble J, Potter J (2002) Scalable visualizations of object-oriented systems with ownership trees. J Vis Lang Comput 13(3):319–339

    Google Scholar 

  52. 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

  53. Hopkins JF, Fishwick PA (2003) The rube framework for software modeling and customized 3-D visualization. J Vis Lang Comput 14:97–117

    Google Scholar 

  54. 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

  55. Hundhausen CD, Douglas SA, Stasko JT (2002) A meta-study of algorithm visualization effectiveness. J Vis Lang Comput 13(3):259–290

    Google Scholar 

  56. Hutchins M, Gallagher K (1998) Improving visual impact analysis. In: Proceedings of the international conference on software maintenance, pp 294–303

  57. 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

  58. Jeffery CL (1999) Program monitoring and visualization: an exploratory approach. Springer, Berlin Heidelberg, New York

  59. 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

  60. 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

  61. Koike H (1993) The role of another spatial dimension in software visualization. ACM Trans Inf Syst 11(3):266–286

    Google Scholar 

  62. 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

    Google Scholar 

  63. Lakoff G, Johnson M (1980) Metaphors we live by. University of Chicago Press, Chicago

  64. 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

  65. Lanza M (2004) CodeCrawler: polymetric views in action. In: Proceedings of the 19th international conference on automated software engineering (ASE’04), pp 394–395

  66. Lanza M, Ducasse S (2003) Polymetric views: a lightweight visual approach to reverse engineering. IEEE Trans Softw Eng 29(9):782–795

    Google Scholar 

  67. 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

  68. Lieberman H, Fry C (2001) Will software ever work? Commun ACM 44(3):122–124

    Google Scholar 

  69. 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

  70. Mackinlay JD (1986) Automating the design of graphical presentations of relational information. ACM Trans Graph 5(2):110–141

    Google Scholar 

  71. 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

  72. 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

  73. 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

  74. 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

  75. 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

  76. 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

  77. 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

  78. 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

  79. Myers BA (1990) Taxonomies of visual programming and program visualization. J Vis Lang Comput 1(1):97–123

    Google Scholar 

  80. 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

  81. 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

  82. 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

  83. 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

  84. 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

    Google Scholar 

  85. 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

  86. Price BA, Baecker RM, Small IS (1993) A principled taxonomy of software visualization. J Vis Lang Comput 4(3):211–266

    Google Scholar 

  87. 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

  88. Reiss SP (2003) JIVE: Visualizing java in action. In: Proceedings of the 25th international conference on software engineering (ICSE’03), pp 820–821

  89. 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

  90. Rilling J, Mudur S (2005) 3D visualization techniques to support slicing-based program comprehension. Comput Graph 29(3):311–329

    Google Scholar 

  91. 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

  92. 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

  93. 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

  94. Roman GC, Cox KC (1993) A taxonomy of program visualization systems. IEEE Comput 26(12):11–24

    Google Scholar 

  95. 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

  96. 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

  97. Shneiderman B (2002) Creativity support tools. Commun ACM 45(10):116–120

    Google Scholar 

  98. 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

  99. Singhal S, Zyda M (1999) Networked virtual environments: design and implementation. ACM Press SIGGRAPH Series, Addison-Wesley, Reading, MA

  100. 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

  101. 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

  102. Snowdon D, Jää-Aro KM (1997) A subjective virtual environment for collaborative information visualization. In: Virtual Reality Universe’97, Santa Clara, CA

  103. 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

  104. 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

  105. 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

  106. 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

  107. Stasko JT, Turner CR (1992) Tidy animations of tree algorithms. In: Proceedings of the 1992 IEEE workshop on visual languages, Seattle, pp 216–218

  108. Stasko JT, Domingue JB, Brown MH, Price BA (eds) (1998) Software visualization. MIT Press, Cambridge, MA

  109. 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

    Google Scholar 

  110. 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

    Google Scholar 

  111. 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

  112. 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

  113. 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

  114. 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

  115. 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

  116. 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

  117. Tufte E (1990) Envisioning information. Graphics Press, Cheshire, UK

  118. 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

  119. 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

  120. 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

  121. 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

  122. 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

  123. 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

  124. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Denis Gračanin.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-005-0019-8

Keywords

Navigation