Skip to main content

A systematic literature review of modern software visualization

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

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Notes

  1. http://dl.acm.org/.

  2. http://ieeexplore.ieee.org.

  3. Last visit, Mar. 27, 2019.

  4. http://www.core.edu.au/conference-portal.

  5. http://www.conferenceranks.com/.

  6. https://goo.gl/inrcZs.

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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    MATH  Google Scholar 

  • Doray F, Dagenais M (2017) Diagnosing performance variations by comparing multi-level execution traces. IEEE Trans Parallel Distrib Syst 28(2):462–474

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Merino L, Ghafari M, Nierstrasz O (2018b) Towards actionable visualization for software developers. J Softw Evol Process 30(2):e1923

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Sirkiä T (2018) Jsvee & Kelmu: creating and tailoring program animations for computing education. J Softw Evol Process 30(2):e1924

    Google Scholar 

  • 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

    MATH  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

Download references

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

Authors

Corresponding author

Correspondence to Wei Chen.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12650-020-00647-w

Keywords