Nothing Special   »   [go: up one dir, main page]

skip to main content
Skip header Section
Software Visualization: Visualizing the Structure, Behaviour, and Evolution of SoftwareMarch 2007
Publisher:
  • Springer-Verlag
  • Berlin, Heidelberg
ISBN:978-3-540-46504-1
Published:01 March 2007
Skip Bibliometrics Section
Reflects downloads up to 13 Feb 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Alomari H, Vendome C and Rizkallah L (2023). A Comprehensive Evaluation Framework of Software Visualizations Effectiveness, IEEE Transactions on Visualization and Computer Graphics, 30:9, (6056-6074), Online publication date: 1-Sep-2024.
  2. ACM
    Blanco A, Bergel A and Alcocer J (2022). Software Visualizations to Analyze Memory Consumption: A Literature Review, ACM Computing Surveys, 55:1, (1-34), Online publication date: 31-Jan-2023.
  3. Rahimi M and Vierhauser M (2022). Visualization of aggregated information to support class-level software evolution, Journal of Systems and Software, 192:C, Online publication date: 1-Oct-2022.
  4. ACM
    Horcas J, Galindo J and Benavides D Variability in data visualization Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A, (55-66)
  5. Nadim M, Mondal D and Roy C (2022). Leveraging structural properties of source code graphs for just-in-time bug prediction, Automated Software Engineering, 29:1, Online publication date: 1-May-2022.
  6. Strandberg P, Afzal W and Sundmark D (2022). Software test results exploration and visualization with continuous integration and nightly testing, International Journal on Software Tools for Technology Transfer (STTT), 24:2, (261-285), Online publication date: 1-Apr-2022.
  7. ACM
    Fernandes F, Castro D and Werner C A Systematic Mapping Literature of Immersive Learning from SVR Publications Proceedings of the 23rd Symposium on Virtual and Augmented Reality, (1-13)
  8. ACM
    Ciancarini P, Masyagin S and Succi G Software design as story telling: reflecting on the work of Italo Calvino Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, (195-208)
  9. Chotisarn N, Merino L, Zheng X, Lonapalawong S, Zhang T, Xu M and Chen W (2020). A systematic literature review of modern software visualization, Journal of Visualization, 23:4, (539-558), Online publication date: 1-Aug-2020.
  10. ACM
    Chen J, Hu K, Yu Y, Chen Z, Xuan Q, Liu Y and Filkov V Software visualization and deep transfer learning for effective software defect prediction Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, (578-589)
  11. ACM
    Zhao V, Zhang L, Wang B, Lu S and Ur B Visualizing Differences to Improve End-User Understanding of Trigger-Action Programs Extended Abstracts of the 2020 CHI Conference on Human Factors in Computing Systems, (1-10)
  12. ACM
    Castelo-Branco R ReAD: representational algorithmic design Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming, (217-218)
  13. ACM
    Limberger D, Scheibel W, Döllner J and Trapp M Advanced Visual Metaphors and Techniques for Software Maps Proceedings of the 12th International Symposium on Visual Information Communication and Interaction, (1-8)
  14. ACM
    Tërnava X, Mortara J and Collet P Identifying and Visualizing Variability in Object-Oriented Variability-Rich Systems Proceedings of the 23rd International Systems and Software Product Line Conference - Volume A, (231-243)
  15. ACM
    Mortara J, Tërnava X and Collet P symfinder Proceedings of the 23rd International Systems and Software Product Line Conference - Volume B, (5-8)
  16. ACM
    Smith R, Tang T, Warren J and Rixner S Auto-Generating Visual Exercises for Learning Program Semantics Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, (360-366)
  17. Satish C and Mahendran A (2019). The effect of 3D visualization on mainframe application maintenance, Journal of King Saud University - Computer and Information Sciences, 31:3, (403-414), Online publication date: 1-Jul-2019.
  18. ACM
    Nafeie L and Schreiber A Visualization of software components and dependency graphs in virtual reality Proceedings of the 24th ACM Symposium on Virtual Reality Software and Technology, (1-2)
  19. Ghaleb T, Alturki M, Aljasser K and Gerardo C (2018). Program comprehension through reverse‐engineered sequence diagrams, Journal of Software: Evolution and Process, 30:11, Online publication date: 14-Nov-2018.
  20. Abdelaal M, Hlawatsch M, Burch M and Weiskopf D Clustering for stacked edge splatting Proceedings of the Conference on Vision, Modeling, and Visualization, (127-134)
  21. ACM
    Burch M Property-Driven Dynamic Call Graph Exploration Proceedings of the 11th International Symposium on Visual Information Communication and Interaction, (72-79)
  22. ACM
    Castro D and Schots M Analysis of test log information through interactive visualizations Proceedings of the 26th Conference on Program Comprehension, (156-166)
  23. ACM
    Chi P, Hu S and Li Y Doppio Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, (1-13)
  24. ACM
    Martins L, Garcia R and Marçal I Using Information Visualization to comprehend user interface layer Proceedings of the XVI Brazilian Symposium on Human Factors in Computing Systems, (1-10)
  25. ACM
    Uhnák P and Pergl R Ad-hoc Runtime Object Structure Visualizations with MetaLinks Proceedings of the 12th edition of the International Workshop on Smalltalk Technologies, (1-10)
  26. Bacher I, Namee B and Kelleher J Scoped Proceedings of the Eurographics/IEEE VGTC Conference on Visualization: Short Papers, (115-119)
  27. McNabb L and Laramee R (2017). Survey of Surveys SoS - Mapping The Landscape of Survey Papers in Information Visualization, Computer Graphics Forum, 36:3, (589-617), Online publication date: 1-Jun-2017.
  28. ACM
    Mattila A, Ihantola P, Kilamo T, Luoto A, Nurminen M and Väätäjä H Software visualization today Proceedings of the 20th International Academic Mindtrek Conference, (262-271)
  29. ACM
    Cesario C and Murta L Topology Awareness for Distributed Version Control Systems Proceedings of the XXX Brazilian Symposium on Software Engineering, (143-152)
  30. Kohwalter T, Oliveira T, Freire J, Clua E and Murta L Prov Viewer Proceedings of the 6th International Workshop on Provenance and Annotation of Data and Processes - Volume 9672, (71-82)
  31. Constantino K, Figueiredo E, Carneiro G and Minardi R Multiple View Interactive Environment to Analyze Software Product Line Tools Proceedings of the XII Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era - Volume 1, (240-247)
  32. ACM
    Chi P, Li Y and Hartmann B Enhancing Cross-Device Interaction Scripting with Interactive Illustrations Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, (5482-5493)
  33. Kilic F, Laner H and Eckert C Interactive Function Identification Decreasing the Effort of Reverse Engineering Revised Selected Papers of the 11th International Conference on Information Security and Cryptology - Volume 9589, (468-487)
  34. ACM
    Müller C, Reina G and Ertl T In-Situ Visualisation of Fractional Code Ownership over Time Proceedings of the 8th International Symposium on Visual Information Communication and Interaction, (13-20)
  35. Logas H, Vallejos R, Osborn J, Compton K and Whitehead J Visualizing loops and data structures in Xylem Proceedings of the Fourth International Workshop on Games and Software Engineering, (50-56)
  36. ACM
    Demetrescu C, Finocchi I and Ribichini A (2014). Reactive Imperative Programming with Dataflow Constraints, ACM Transactions on Programming Languages and Systems, 37:1, (1-53), Online publication date: 20-Jan-2015.
  37. ACM
    Schilbach J An event-based framework for animations in X3D Proceedings of the 19th International ACM Conference on 3D Web Technologies, (89-97)
  38. Murta L, Braganholo V, Chirigati F, Koop D and Freire J noWorkflow Revised Selected Papers of the 5th International Provenance and Annotation Workshop on Provenance and Annotation of Data and Processes - Volume 8628, (71-83)
  39. ACM
    Maruyama K, Omori T and Hayashi S A visualization tool recording historical data of program comprehension tasks Proceedings of the 22nd International Conference on Program Comprehension, (207-211)
  40. Rufiange S and Fuhrman C (2014). Visualizing protected variations in evolving software designs, Journal of Systems and Software, 88:C, (231-249), Online publication date: 1-Feb-2014.
  41. Kohwalter T, Clua E and Murta L Game Flux Analysis with Provenance Proceedings of the 10th International Conference on Advances in Computer Entertainment - Volume 8253, (320-331)
  42. ACM
    Anslow C, Marshall S, Noble J and Biddle R SourceVis Proceedings of the ACM International Conference on Interactive Tabletops and Surfaces, (264-265)
  43. Stoller S, Bartocci E, Seyster J, Grosu R, Havelund K, Smolka S and Zadok E Runtime verification with state estimation Proceedings of the Second international conference on Runtime verification, (193-207)
  44. Nasr D, Bahig H and Daoud S Visualizing secure Hash algorithm (SHA-1) on the web Proceedings of the 7th international conference on Active media technology, (101-112)
  45. ACM
    Shi J, Qiao Y and Wang H Visualizing inference process of a rule engine Proceedings of the 2011 Visual Information Communication - International Symposium, (1-9)
  46. Klint P, Lisser B and van der Ploeg A Towards a one-stop-shop for analysis, transformation and visualization of software Proceedings of the 4th international conference on Software Language Engineering, (1-18)
  47. Müller C, Reina G, Burch M and Weiskopf D Subversion statistics sifter Proceedings of the 6th international conference on Advances in visual computing - Volume Part III, (447-457)
  48. ACM
    Beck F and Diehl S Visual comparison of software architectures Proceedings of the 5th international symposium on Software visualization, (183-192)
  49. ACM
    Ruan H, Anslow C, Marshall S and Noble J Exploring the inventor's paradox Proceedings of the 5th international symposium on Software visualization, (83-92)
  50. ACM
    Anslow C, Marshall S, Noble J, Tempero E and Biddle R User evaluation of polymetric views using a large visualization wall Proceedings of the 5th international symposium on Software visualization, (25-34)
  51. ACM
    Anslow C, Marshall S, Noble J and Biddle R Co-located collaborative software visualization Human Aspects of Software Engineering, (1-2)
  52. Fuhrmann H and von Hanxleden R Taming graphical modeling Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I, (196-210)
  53. Kapec P Visual programming environment based on hypergraph representations Proceedings of the 2010 international conference on Computer vision and graphics: Part II, (9-16)
  54. ACM
    Shaffer C, Cooper M, Alon A, Akbar M, Stewart M, Ponce S and Edwards S (2010). Algorithm Visualization, ACM Transactions on Computing Education, 10:3, (1-22), Online publication date: 1-Aug-2010.
  55. ACM
    Kapec P Visualizing software artifacts using hypergraphs Proceedings of the 26th Spring Conference on Computer Graphics, (27-32)
  56. Kim B, Jun S, Hwang D and Jun Y Visualizing Potential Deadlocks in Multithreaded Programs Proceedings of the 10th International Conference on Parallel Computing Technologies, (321-330)
  57. ACM
    Karavirta V (2009). Seamless Merging of Hypertext and Algorithm Animation, ACM Transactions on Computing Education, 9:2, (1-18), Online publication date: 1-Jun-2009.
  58. Telea A and Auber D Code flows Proceedings of the 10th Joint Eurographics / IEEE - VGTC conference on Visualization, (831-838)
Contributors
  • University of Trier

Reviews

Fernando Berzal

Software visualization can be defined as the art and science of generating visual representations of various aspects of software and their development process. As a branch of scientific visualization, its final goal is to support human comprehension. In this case, visualization techniques focus on the structure of software systems, their dynamic behavior, and their evolution. Diehl’s monograph on software visualization is organized around these three research areas. Before delving into particular visualization techniques, Diehl writes a very short introduction to visualization. Almost like class notes, a scant 20 pages present the basics of visual perception and cognition, from school-level eye physiology to the perception of patterns and motion, as well as a bird’s-eye survey of techniques for visualizing textual, hierarchical, and graph-based information (namely, alternative ways to draw graphs and trees). The core of this easy-to-read book delves into particular techniques for visualizing the structure, behavior, and evolution of software systems at different levels of abstraction. Supported by plenty of figures and illustrations, many of them in full color, Diehl steers the reader through different techniques as a good tourist guide would do: pointing out the most significant aspects, while leaving out many details that might be of partial interest for his intended audience, even at the cost of missing the opportunity to provide a more in-depth treatment of many topics. With respect to static program visualization, Diehl overviews different diagrammatic representations of source code, from structure charts to control flow graphs and similar techniques. He also touches on the foundations of control-flow and data-flow analysis (the techniques behind optimizing compilers and the tools that help determine stack usage or worst-case execution times, or detect some kinds of bugs). Finally, many different kinds of diagrams that can help (or hinder) program understanding at a higher level are mentioned, from standard unified modeling language (UML) diagrams to geon diagrams, and from class blueprints and SHriMP/Creole diagrams to simple Kiviat charts (called spider diagrams in the text). Algorithm animation, typically used for educational purposes, is one of the dynamic program visualization techniques discussed in this book. Other techniques that are briefly surveyed include those employed by the data display debugger (DDD). Visual debugging and visual testing aids are also covered, from memory slices and their related techniques to the visualization of test case results and flow patterns. Finally, some techniques are discussed that help us explore and understand the evolution of software systems. For example, such techniques provide insight into changes in software metrics, help analyze software repositories, and allow the detection of evolutionary coupling (detecting the relationships among entities that are usually changed at the same time). The book’s closing chapters start with a short discussion on the evaluation of software visualization techniques. Both quantitative and qualitative evaluation methods are mentioned, with a special emphasis on evaluating the learning effectiveness of algorithm visualizations (maybe the only area where the evaluation of software visualization techniques has attracted enough attention in the past). After an abridged rehash of the techniques covered in the book, and the enumeration of existing visualization tools, Diehl offers his personal view on the main challenges that software visualization researchers will probably have to face in the near future. As the first existing textbook on software visualization, Diehl has managed to put together a good overview of this interesting field. As an introduction, this book can be useful for graduate students and researchers alike. Short and concise, almost laconic, Diehl’s monograph provides the overall picture without unnecessary detail. For those wishing to learn every nook and cranny of particular visualization techniques, the many bibliographic references at the end of this monograph can serve as the starting point for further exploration. Online Computing Reviews Service

Jose Lloret

Using graphics to represent different aspects of software—its structure and execution, for example—is the essence of software visualization. In the introduction, the author defines software visualization, and the book’s framework and goals. In chapter 2, “Visualization Basics,” the author provides a brief description, on the one hand, of the physiological and psychological bases of human perception, and, on the other, of the different techniques for visualizing information. The next three chapters detail three software visualization categories. Chapter 3, “Static Program Visualization,” looks at the program code as a sequence of characters. The author then lists various ways of representing program code, both textually and graphically. The only drawback is that he deals with representations that are no longer in use, compared with more modern ones. Chapter 4, “Dynamic Program Visualization,” explains how to choose and obtain data; several examples are included for clarification. Chapter 5, “Visualizing the Evolution of Software Systems,” describes, in essence, the software tools capable of visualizing this evolution: “A software system has to be adapted to the changing needs and environment of its users.” In these three chapters, different software packages are described for each type. This book’s audience is limited to students preparing for their PhD programs. Each chapter ends with a series of exercises, which allows one to delve more deeply into the topic being studied. In general, the edition is excellent, although there are some diagrams and figures that are not scaled according to the format of the book. A complete list of resources, including an extensive bibliography, can be found on the Web. In summary, this is a book with clear explanations that is well structured and easy to read, yet profound enough for a second, more thorough reading. Online Computing Reviews Service

Andrew Robert Huber

If a picture is worth 1000 words, how many lines of code is a graphical program representation worth__?__ Software visualization is "the art and science of generating visual representations of various aspects of software and its development." Diehl claims that this is the first textbook on software visualization. The intended audience is graduate students and researchers new to the field. This book makes no attempt to be complete, only to cover the most seminal work in software visualization and the most promising new approaches; no background in visualization is required. The book's first seven chapters introduce software visualization, which is defined as transforming information into visual form for observation, with the goal of helping viewers comprehend software systems and improving software development productivity. Software visualization is broadly considered to include artifacts related to software and the development process, not just algorithms or programs. A software visualization model that is used in the rest of the book is introduced: a three-step pipeline with feedback-data acquisition, data analyses, and visualization. Since visualization conveys information through the visual system, chapter 2 briefly looks at visual memory, the human eye, color, and color perception. Advice on the implications of these for visualization design is mostly limited to selecting color palettes. A section on graphs and graph drawing shows examples of many different representations of graphs, but lacks any evaluation of which formats are good, when they should or shouldn't be used, and why. Chapter 3 covers static program visualizations, both text based and diagrammatic, from pretty printing to Jackson diagrams, control flow graphs (flowcharts), Nassi-Shneiderman diagrams (structograms), and control-structure diagrams. The static program analyses discussed include control-flow analysis and data-flow analysis, with some examples of visualizations of the analysis results. The final section takes visualization to a higher level by considering the visualization of software architectures. Diagrams showing architectural structure such as unified modeling language (UML) and class blueprints are discussed, as are some approaches to extracting and visualizing architecture information from a system's sources. There is even some discussion of three-dimensional (3D) visualizations, with examples such as 3D UML and Vizz3D. As a practicing developer, this section merely illustrates how enamored the researchers are with technology?instead of results. Representing architectures as the world, with packages as countries, files as cities, classes as districts, and methods as buildings, may produce sexy displays, but fails to provide meaningful metaphors, insights, and understanding. Dynamic program visualization is covered in chapter 4, addressing issues such as collecting runtime data and visualizing dynamics. Algorithm animation is covered extensively, although it concentrates on well known and somewhat trivial examples: the n queens problem and various sorting methods. More interesting uses are visual debugging and visual testing, where visualization shows real promise for practical benefits in using test results to determine test coverage and find errors. Chapter 5 is devoted to visualizing the evolution of software systems: mainly, the visual analysis of software histories. Using information from source control systems supports the visualization of revision histories and releases, showing things such as which modules have changed in each release and changes in size or other metrics. Especially with data mining, the weakness of these approaches is that the nifty graphics generated still leave the viewer wondering what insights and benefits result. Chapter 6, "Evaluation," attempts to answer the question: "Is software visualization useful__?__" This is a disappointing chapter due to the lack of significant work in this area. Existing evaluations generally lack real datasets, or suffer bias because the developers did the evaluation. As Diehl points out, computer science and software engineering are notorious for their lack of empirical studies¿software visualization is no exception. The discussion of quantitative evaluations is less than one page, and no examples are cited. The discussion of qualitative evaluations is mostly on surveys, with evaluations of whether algorithm animations assist in learning about an algorithm. The final chapter will be especially useful to researchers and graduate students. It summarizes the techniques covered in the book for each data acquisition, analysis, and visualization phase. A table lists 48 current visualization tools, including research projects and commercially available and open-source tools, with uniform resource locators (URLs). The book concludes with some challenges for future software visualization research. There is an extensive list of about 240 references. A few exercises are included at the end of each chapter, and a companion Web-site provides additional examples and source code. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations