Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software

Front Cover
Springer Science & Business Media, Apr 24, 2007 - Computers - 187 pages

Software visualization encompasses the development and evaluation of methods for graphically representing different aspects of software, including its structure, its execution, and its evolution. Software visualization combines techniques from areas like software engineering, programming languages, data mining, computer graphics, information visualization and human-computer interaction.

So far, there exist only anthologies and proceedings about software visualization. With this book, Stephan Diehl has written the first textbook on software visualization. As such it targets both students and teachers in computer science. Topics covered include static program visualization, algorithm animation, visual debugging, as well as the visualization of the evolution of software. The author's presentation emphasizes common principles and provides different examples mostly taken from seminal work. In addition, each chapter is followed by a list of exercises including both pen and paper exercises, as well as programming tasks. Although written mostly for graduate students, the book will also be a source for researchers in both academia and industry, as it will provide a broad and systematic overview of the area including many pointers to tools available today.

 

What people are saying - Write a review

User Review - Flag as inappropriate

Awesome Book :)

Contents

Introduction
1
11 What Is Software Visualization?
3
12 Organization of This Book
4
13 Software Visualization and Visual Programming
6
14 Examples of Software Visualization Tools
7
Algorithm Animation
8
Software Evolution
9
16 The Visualization Pipeline
12
432 Generating Behavior Diagrams
86
44 Algorithm Animation
87
442 Why Do People Animate Algorithms?
88
443 A Short History of Algorithm Animation
89
444 Some Animations Produced by XTango
90
445 3D for Algorithm Animation
95
446 Architectures of Algorithm Animation Tools
97
447 Abstract Algorithm Animation
99

Exercises
13
Visualization Basics
15
211 Visual Memory
16
213 Light Color and Color Perception
17
215 Preattentive Perception
18
216 Motion Perception
19
217 Implications for the Design of Visualizations
20
22 Graphical Representation
21
222 Text
22
23 General Information Visualization Techniques
25
232 Graph Drawing
26
233 Visualization of Hierarchies
29
24 Visual Metaphors
31
25 Summary
32
Static Program Visualization
34
312 Program as Publication
36
32 Diagrammatic Representations
38
322 ControlFlow Graphs
40
323 NassiShneiderman Diagrams
45
33 Visualizing the Results of Program Analyses
48
332 ControlFlow Analysis
49
333 DataFlow Analysis
50
334 Examples of Visualization of Analysis Results
53
34 Visualizing Software Architectures
56
341 Some Familiar Architectures
57
342 The Unified Modeling Language UML
58
343 Software Metrics
60
344 Software Visualization and Reverse Engineering
63
345 3D and Software Architecture
71
35 Summary
74
Dynamic Program Visualization
79
411 How Is Runtime Data Collected?
80
413 Dynamic Data Acquisition in Java
81
42 Visualizing Dynamics
82
422 A First Example
83
43 Dynamic Architecture Visualization
85
448 Learning Scenarios
102
449 A Brief Introduction to SAMBA
105
45 Visual Debugging Inspecting the Program State
108
451 Interactive Visual Unfolding
109
452 TraversalBased Visualization
110
453 Memory Graphs and Memory Slices
111
454 Reference Patterns
114
46 Visual Testing Detecting Possibly Buggy Program Code
115
462 Visualizing Test Case Results
117
463 Web Service Flow Patterns
122
47 Summary
124
Exercises
125
Visualizing the Evolution of Software Systems
128
51 Visualizing Changes in Software Metrics
130
511 SeeSoft
131
512 Revision Towers
135
52 Visualizing Software Archives
136
53 Visualizing Structural Change
138
54 Visualizing Evolutionary Coupling
140
55 Visual Data Mining
144
56 Summary
146
Exercises
147
Evaluation
149
63 Qualitative Evaluation
150
631 Evaluation Based on Gestalt Theory
151
632 TaskOriented Evaluation
152
64 Educational Evaluation
154
65 Some Interesting Empirical Results
157
66 Summary
159
Exercises
160
Conclusions
161
72 Further Reading and Resources
163
73 The Future of Software Visualization
165
References
168
Index
185
Copyright

Other editions - View all

Common terms and phrases

About the author (2007)

Stephan Diehl is a full professor for computer science at the University of Trier, Germany. His research interests include programming languages and compiler design, web technologies, educational software and visualization, in particular software visualization. He teaches courses on software visualization at university as well as in industry and has been heavily involved in various international software visualization related events.

Bibliographic information