Abstract
We report on the state-of-the-art of software visualization. To ensure reproducibility, we adopted the Systematic Literature Review methodology. That is, we analyzed 1440 entries from IEEE Xplore and ACM Digital Library databases. We selected 105 relevant full papers published in 2013–2019, which we classified based on the aspect of the software system that is supported (i.e., structure, behavior, and evolution). For each paper, we extracted main dimensions that characterize software visualizations, such as software engineering tasks, roles of users, information visualization techniques, and media used to display visualizations. We provide researchers in the field an overview of the state-of-the-art in software visualization and highlight research opportunities. We also help developers to identify suitable visualizations for their particular context by matching software visualizations to development concerns and concrete details to obtain available visualization tools.
Graphic abstract






Similar content being viewed by others
Notes
Last visit, Mar. 27, 2019.
Last visit, Jan. 27, 2020.
References
Alexandru CV, Proksch S, Behnamghader P, Gall HC (2019) Evo-Clocks: software evolution at a glance. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 12–22
Anquetil N, Etien A, Andreo G, Ducasse S (2019) Decomposing god classes at siemens. In: IEEE international conference on software maintenance and evolution (ICSME), IEEE, pp 169–180
Anslow C, Marshall S, Noble J, Biddle R (2013) SourceVis: Collaborative software visualization for co-located environments. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Barik T, Lubick K, Christie S, Murphy-Hill E (2014) How developers visualize compiler messages: a foundational approach to notification construction. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 87–96
Beck F, Burch M, Diehl S, Weiskopf D (2017a) A taxonomy and survey of dynamic graph visualization. Comput Gr Forum 36(1):133–159
Beck F, Siddiqui HA, Bergel A, Weiskopf D (2017b) Method execution reports: generating text and visualization to describe program behavior. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Benomar O, Sahraoui H, Poulin P (2013) Visualizing software dynamicities with heat maps. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Bergel A, Beck F (2017) Guest editorial of the special section on software visualization. Inf Softw Technol 87:221–222
Burch M, Munz T, Beck F, Weiskopf D (2015) Visualizing work processes in software engineering with developer rivers. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 116–124
Cao N, Sun J, Lin YR, Gotz D, Liu S, Qu H (2010) Facetatlas: multifaceted visualization for rich text corpora. IEEE Trans Visual Comput Gr 16(6):1172–1181
Cao N, Lin YR, Sun X, Lazer D, Liu S, Qu H (2012) Whisper: tracing the spatiotemporal process of information diffusion in real time. IEEE Trans Visual Comput Gr 18(12):2649–2658
Clark B, Sharif B (2017) iTraceVis: Visualizing eye movement data within eclipse. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 22–32
Diehl S (2007) Software visualization: visualizing the structure, behaviour, and evolution of software. Springer Science & Business Media, Berlin
Doray F, Dagenais M (2017) Diagnosing performance variations by comparing multi-level execution traces. IEEE Trans Parallel Distrib Syst 28(2):462–474
Dugerdil P, Niculescu M (2014) Visualizing software structure understandability. In: Australian software engineering conference (ASWEC), IEEE, pp 110–119
Duhoux B, Mens K, Dumas B (2018) Feature visualiser: an inspection tool for context-oriented programmers. In: International workshop on context-oriented programming: advanced modularity for run-time composition, ACM, pp 15–22
Emerson J, Churcher N, Deaker C (2013) From toy to tool: Extending tag clouds for software and information visualisation. In: Australian software engineering conference (ASWEC), IEEE, pp 155–164
Ens B, Rea D, Shpaner R, Hemmati H, Young JE, Irani P (2014) ChronoTwigger: A visual analytics tool for understanding source and test co-evolution. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 117–126
Feiner J, Andrews K (2018) RepoVis: Visual overviews and full-text search in software repositories. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–11
Feist MD, Santos EA, Watts I, Hindle A (2016) Visualizing project evolution through abstract syntax tree analysis. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 11–20
Fittkau F, Krause A, Hasselbring W (2015a) Hierarchical software landscape visualization for system comprehension: a controlled experiment. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 36–45
Fittkau F, Zirkelbach C, Krause A, Hasselbring W (2015b) Explorviz. https://www.explorviz.net/, accessed February 25, 2020
Fronza I, Janes A, Sillitti A, Succi G, Trebeschi S (2013) Cooperation wordle using pre-attentive processing techniques. In: international workshop on cooperative and human aspects of software engineering (CHASE), IEEE, pp 57–64
Garzón-Rodriguez LP, Diosa HA, Rojas-Galeano S (2015) Deconstructing GAs into visual software components. In: Annual conference on genetic and evolutionary computation, ACM, pp 1125–1132
Geisler G (1998) Making information more accessible: a survey of information visualization applications and techniques. https://www.cs.nmt.edu/~viz/papers/Geisler.pdf
Gouveia C, Campos J, Abreu R (2013) Using HTML5 visualizations in software fault localization. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Greene GJ, Fischer B (2015) Interactive tag cloud visualization of software version control repositories. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 56–65
Greene GJ, Esterhuizen M, Fischer B (2017) Visualizing and exploring software version control repositories using interactive tag clouds over formal concept lattices. Inf Softw Technol 87:223–241
Grznár F, Kapec P (2013) Visualizing dynamics of object oriented programs with time context. In: Spring conference on computer graphics, ACM, pp 65–72
Hao R, Feng Y, Jones JA, Li Y, Chen Z (2019) CTRAS: Crowdsourced test report aggregation and summarization. In: IEEE/ACM international conference on software engineering (ICSE), IEEE, pp 900–911
Hawes N, Marshall S, Anslow C (2015) CodeSurveyor: Mapping large-scale software to aid in code comprehension. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 96–105
Hollmann N, Hanenberg S (2017) An empirical study on the readability of regular expressions: textual versus graphical. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 74–84
Homer M, Noble J (2014a) Combining tiled and textual views of code. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Homer M, Noble J (2014b) Tiled grace. https://homepages.ecs.vuw.ac.nz/~mwh/minigrace/tiled/, accessed February 25, 2020
Isaacs KE, Gamblin T (2018) Preserving command line workflow for a package management system using ascii dag visualization. IEEE Trans Vis Comput Gr 25(9):2804–2820
Isaacs KE, Bremer PT, Jusufi I, Gamblin T, Bhatele A, Schulz M, Hamann B (2014) Combing the communication hairball: visualizing parallel execution traces using logical time. IEEE Trans Vis Comput Gr 20(12):2349–2358
Karran B, Trumper J, Döllner J (2013) Synctrace: Visual thread-interplay analysis. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–10
Khaloo P, Maghoumi M, Taranta E, Bettner D, Laviola J (2017) Code Park: A new 3D code visualization tool. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 43–53
Khan T, Barthel H, Ebert A, Liggesmeyer P (2015) Visual analytics of software structure and metrics. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 16–25
Kienle HM, Muller HA (2007) Requirements of software visualization tools: A literature survey. In: IEEE international workshop on visualizing software for understanding and analysis (VISSOFT), IEEE, pp 2–9
Kitchenham BA, Pfleeger SL, Pickard LM, Jones PW, Hoaglin DC, Emam KE, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Software Eng 22(8):721–734. https://doi.org/10.1109/TSE.2002.1027796
Kobayashi K, Kamimura M, Yano K, Kato K, Matsuo A (2013) SArF map: visualizing software architecture from feature and layer viewpoints. In: IEEE international conference on program comprehension (ICPC), IEEE, pp 43–52
Kulesz D, Scheurich J, Beck F (2014) Integrating anomaly diagnosis techniques into spreadsheet environments. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 11–19
Kumar S (2016) A review of recent trends and issues in visualization. Int J Comput Sci Eng (IJCSE) 8(3):41–54
Lebeuf C, Voyloshnikova E, Herzig K, Storey MA (2018) Understanding, debugging, and optimizing distributed software builds: a design study. In: IEEE international conference on software maintenance and evolution (ICSME), IEEE, pp 496–507
Lessa IDM, Carneiro GDF, Monteiro MP, e Abreu FB (2015) A concern visualization approach for improving MATLAB and octave program comprehension. In: Brazilian symposium on software engineering (SBES), IEEE, pp 130–139
Liu S, Cui W, Wu Y, Liu M (2014) A survey on information visualization: recent advances and challenges. Vis Comput 30(12):1373–1393
Liu S, Wang X, Liu M, Zhu J (2017) Towards better analysis of machine learning models: a visual analytics perspective. Vis Inform 1(1):48–56
Maletic JI, Marcus A, Collard ML (2002) A task oriented view of software visualization. In: International workshop on visualizing software for understanding and analysis (VISSOFT), IEEE, pp 32–40
Martinez J, Ziadi T, Mazo R, Bissyandé TF, Klein J, Le Traon Y (2014) Feature relations graphs: a visualisation paradigm for feature constraints in software product lines. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 50–59
Mattila AL, Ihantola P, Kilamo T, Luoto A, Nurminen M, Väätäjä H (2016) Software visualization today: systematic literature review. In: International academic mindtrek conference, ACM, pp 262–271
McNabb L, Laramee RS (2017) Survey of surveys (SoS)-mapping the landscape of survey papers in information visualization. Comput Gr Forum 36(3):589–617
Merino L, Ghafari M, Nierstrasz O (2016) Towards actionable visualisation in software development. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 61–70
Merino L, Ghafari M, Anslow C, Nierstrasz O (2018a) A systematic literature review of software visualization evaluation. J Syst Softw 144:165–180
Merino L, Ghafari M, Nierstrasz O (2018b) Towards actionable visualization for software developers. J Softw Evol Process 30(2):e1923
Merino L, Kozlova E, Nierstrasz O, Weiskopf D (2019) VISON: an ontology-based approach for software visualization tool discoverability. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 45–55
Middleton J, Murphy-Hill E (2016) Perquimans: a tool for visualizing patterns of spreadsheet function combinations. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 51–60
Minelli R, Lanza M (2013a) Samoa. http://samoa.inf.usi.ch/. Accessed February 25, 2020
Minelli R, Lanza M (2013b) Software analytics for mobile applications–insights and lessons learned. In: European conference on software maintenance and reengineering (CSMR), IEEE, pp 144–153
Minelli R, Mocci A, Lanza M, Baracchi L (2014) Visualizing developer interactions. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 147–156
Molnar AJ (2015) JETracer a framework for Java GUI event tracing. In: International conference on evaluation of novel approaches to software engineering (ENASE), IEEE, pp 207–214
Mumtaz H, Latif S, Beck F, Weiskopf D (2019) Exploranative code quality documents. IEEE Trans Vis Comput Gr 26(1):1129–1139
Munzner T (2008) Process and pitfalls in writing information visualization research papers. In: International conference on information visualisation (IV), Springer, pp 134–153
Nguyen HTP, Bhatele A, Jain N, Kesavan S, Bhatia H, Gamblin T, Ma K, Bremer P (2019) Visualizing hierarchical performance profiles of parallel codes using callflow. IEEE transactions on visualization and computer graphics, pp 1–1, https://doi.org/10.1109/TVCG.2019.2953746
Ogami K, Kula RG, Hata H, Ishio T, Matsumoto K (2017) Using high-rising cities to visualize performance in real-time. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 33–42
Palepu VK, Jones JA (2015) Revealing runtime features and constituent behaviors within software. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 86–95
Perrie J, Xie J, Nayebi M, Fokaefs M, Lyons K, Stroulia E (2019) City on the river: visualizing temporal collaboration. In: International conference on computer science and software engineering, pp 82–91
Porkoláb Z, Brunner T, Krupp D, Csordás M (2018) Codecompass: an open software comprehension framework for industrial usage. In: International conference on program comprehension (ICPC), ACM, pp 361–369
Qian J, Chapin A, Papoutsaki A, Yang F, Nelissen K, Huang J (2018) Remotion: a motion-based capture and replay platform of mobile device interaction for remote usability testing. ACM Interact Mobile Wearable Ubi Technol 2(2):77
Rabbi F, Lamo Y, Yu IC, Kristensen LM (2016) WebDPF: A web-based metamodelling and model transformation environment. In: International conference on model-driven engineering and software development (MODELSWARD), IEEE, pp 87–98
Rodrigues-Jr J, Zaina L, Oliveira M, Brandoli B, Traina A (2015) A survey on information visualization in light of vision and cognitive sciences. arXiv preprint arXiv:150507079
Rozenberg D, Beschastnikh I, Kosmale F, Poser V, Becker H, Palyart M, Murphy GC (2016) Comparing repositories visually with repograms. In: IEEE/ACM working conference on mining software repositories (MSR), IEEE, pp 109–120
Rüdel MO, Ganser J, Koschke R (2018) A controlled experiment on spatial orientation in VR-based software cities. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 21–31
Rufiange S, Melançon G (2014) Animatrix: a matrix-based visualization of software evolution. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 137–146
Sandoval Alcocer JP, Bergel A, Ducasse S, Denker M (2013) Performance evolution blueprint: understanding the impact of software evolution on performance. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–9
Sandoval Alcocer JP, Beck F, Bergel A (2019) Performance evolution matrix: visualizing performance variations along software versions. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 1–11
Scarle S, Walkinshaw N (2015) Visualising software as a particle system. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 66–75
Schneider T, Tymchuk Y, Salgado R, Bergel A (2016) CuboidMatrix: Exploring dynamic structural connections in software components using space-time cube. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 116–125
Sensalire M, Ogao P, Telea A (2008) Classifying desirable features of software visualization tools for corrective maintenance. In: ACM symposium on software visualization (SOFTVIS), ACM, pp 87–90
Shahin M, Liang P, Babar MA (2014) A systematic review of software architecture visualization techniques. J Syst Softw 94:161–185
Sirkiä T (2018) Jsvee & Kelmu: creating and tailoring program animations for computing education. J Softw Evol Process 30(2):e1924
Slater J, Anslow C, Dietrich J, Merino L (2019) CorpusVis–visualizing software metrics at scale. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 99–109
Sommerville I (2011) Software engineering. Person Education Ltd, New York
Steinbeck M, Koschke R, Rüdel MO (2019) Movement patterns and trajectories in three-dimensional software visualization. In: International working conference on source code analysis and manipulation (SCAM), IEEE, pp 163–174
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: ACM symposium on software visualization (SOFTVIS), ACM, pp 193–202
Sun GD, Wu YC, Liang RH, Liu SX (2013) A survey of visual analytics techniques and applications: state-of-the-art research and future challenges. J Comput Sci Technol 28(5):852–867
Tang T, Rubab S, Lai J, Cui W, Yu L, Wu Y (2018) iStoryline: Effective convergence to hand-drawn storylines. IEEE Trans Vis Comput Gr
Toosi AN, Son J, Buyya R (2018) CLOUDS-Pi: a low-cost Raspberry-Pi based micro data center for software-defined cloud computing. IEEE Cloud Comput 5(5):81–91
Toprak S, Wichmann A, Schupp S (2014) Lightweight structured visualization of assembler control flow based on regular expressions. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 97–106
Trumper J, Döllner J, Telea A (2013) Multiscale visual comparison of execution traces. In: IEEE international conference on program comprehension (ICPC), IEEE, pp 53–62
Tymchuk Y, Merino L, Ghafari M, Nierstrasz O (2016) Walls, pillars and beams: A 3D decomposition of quality anomalies. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 126–135
Ulan M, Hönel S, Martins RM, Ericsson M, Löwe W, Wingkvist A, Kerren A (2018) Quality models inside out: Interactive visualization of software metrics by means of joint probabilities. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 65–75
Urli S, Bergel A, Blay-Fornarino M, Collet P, Mosser S (2015) A visual support for decomposing complex feature models. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 76–85
Vincur J, Navrat P, Polasek I (2017) VR City: Software analysis in virtual reality environment. In: IEEE international conference on software quality, reliability and security companion (QRS-C)
Wang Y, Weatherston J, Storey MA, German D (2019) CloneCompass: Visualizations for exploring assembly code clone ecosystems. In: IEEE working conference on software visualization (VISSOFT), IEEE, pp 88–98
Wilde E, German D (2018) Merge-tree: visualizing the integration of commits into linux. J Softw Evol Process 30(2):e1936
Wilhelm A, Cakaric F, Schuele T, Gerndt M (2018) Tool-based interactive software parallelization: a case study. In: IEEE/ACM international conference on software engineering: software engineering in practice track (ICSE-SEIP), IEEE, pp 115–123
Williams K, Bigelow A, Isaacs K (2019) Visualizing a moving target: a design study on task parallel programs in the presence of evolving data and concerns. IEEE Trans Vis Comput Gr 26(1):1118–1128
Wu Y, Chen Z, Sun G, Xie X, Cao N, Liu S, Cui W (2018) Streamexplorer: a multi-stage system for visually exploring events in social streams. IEEE Trans Vis Comput Gr 24(10):2758–2772
Xu K, Wang Y, Yang L, Wang Y, Qiao B, Qin S, Xu Y, Zhang H, Qu H (2019) Clouddet: Interactive visual analysis of anomalous performances in cloud computing systems. IEEE Trans Vis Comput Gr 26(1):1107–1117
Yi JS, Kang Y, Stasko J (2007) Toward a deeper understanding of the role of interaction in information visualization. IEEE Trans Vis Comput Gr 13(6):1224–1231
Yoon Y, Myers BA, Koo S (2013) Visualization of fine-grained code change history. In: IEEE symposium on visual languages and human-centric computing (VL/HCC), IEEE, pp 119–126
Zhao J, Cao N, Wen Z, Song Y, Lin YR, Collins C (2014) #FluxFlow: visual analysis of anomalous information spreading on social media. IEEE Trans Vis Comput Gr 20(12):1773–1782
Zhu J, Alderfer K, Furqan A, Nebolsky J, Char B, Smith B, Villareale J, Ontañón S (2019) Programming in game space: how to represent parallel programming concepts in an educational game. In: International conference on the foundations of digital games, pp 1–10
Zhu X, Nacenta MA, Akgun O, Nightingale P (2019) How people visually represent discrete constraint problems. IEEE Trans Vis Comput Gr pp 1–1, https://doi.org/10.1109/TVCG.2019.2895085
Zirkelbach C, Krause A, Hasselbring W (2019) Hands-on: experiencing software architecture in virtual reality. Department of Computer Science, Kiel University, Germany, Tech. rep
Acknowledgements
This work is supported by National Natural Science Foundation of China (61772463, 61772456, 61761136020). Merino acknowledges funding by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – Project-ID 251654672 – TRR 161. We thank Wilhelm Hasselbring, Michael Homer, Rainer Koschke, Roberto Minelli, Daniel Rozenberg, and Juraj Vincur for permitting us to reuse exemplary figures of their software visualizations.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Chotisarn, N., Merino, L., Zheng, X. et al. A systematic literature review of modern software visualization. J Vis 23, 539–558 (2020). https://doi.org/10.1007/s12650-020-00647-w
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12650-020-00647-w