Software visualization addresses the visual representation of software systems, their dynamic execution, and their development process. In this context, diagrams can help software developers, software architects, or researchers understand and analyze the system, to finally improve the software and development process. Those different roles, however, come along with different perspectives and requirements for visualization tools. In my talk, I will give recent examples from my own work how those diverging perspectives can be addressed: On the one hand, high-level visualizations showing complete software systems and their evolution might be leveraged by architects and researchers. On the other hand, small visualizations embedded in the code could support developers in their daily work extending and optimizing the code. Finally, I want to conclude by giving an outlook on future perspectives on software visualization.
3. Example: Software Feathers
find a characteristic, recognizable representation of a class
3
JHotDraw7.6
Java GUI framework
578 classes and interfaces
Software Feathers [IVAPP 14]
4. Perspectives on Software
an autobiographic view of software visualization
4
developer
manager
researcher
user
architect
6. A View from Top
6
manager
researcher
architect
complete system
7. Software as Graphs and Hierarchies
7
A
B
C
couplings
modularization
A
B
C
b
a
time
A
B
C
a
8. Dynamic Graphs
2.0
2.1
3.0
3.2
3.4
3.5
3.6
3.7
3.8
3.8.1
3.8.2
4.0
4.1
4.2
4.3.1
4.4
4.5
4.6
4.7
4.8
4.8.1
Parallel Edge Splatting [TVCG 11, VL/HCC 12, IVAPP 12]
8
software evolution
dynamic call graphs
The State of the Art in Visualizing Dynamic Graphs [EuroVis14]
http://dynamicgraphs.fbeck.com
9. Comparison of Concepts of Couplings
Visually Exploring Multi-Dimensional Code Couplings [VISSOFT 11] 9
10. Couplings and Modularizations
Visual Comparison of Software Architectures[SoftVis10, Information Visualization 13] 10
B
A
C
A
B
C
type I
type I & II
type II
A
B
C
node-link
matrix
11. Characteristics of the Perspective
11
goal:
high-level insights
means:
overview and abstraction
challenge:
visual scalability
application:
limited reach and application
13. A Change of Perspective
13
developer
…
part of the system
user
14. In Situ Software Visualization
visualize information in-place, when and where needed
14
developers’ reality: source code“A sparklineis a small intense, simple, word-sized graphic with typographic resolution.” Edward Tufte, 2006
[Google image search for “sparklines”]
15. Monitoring of Numeric Variables
15
0
15
min value
max value
variable value
# read accesses
logical time
write access
read access
Visual Monitoring of Numeric Variables Embedded in Source Code [VISSOFT 13]
16. Runtime Consumption
16
In Situ Understanding of Performance Bottlenecks through Visually Augmented Code [ICPC 13]
0.53%
a(){
method time
callees
callers
self time
threads
color: thread type
17. I3 Feature Location
17
Rethinking User Interfaces for Feature Location [submitted]
search
similarity
change history of the method
days
weeks
months
years
I
22. From Analyzing to Editing
22
Get Your Directories Right: From Hierarchy Visualization to Hierarchy Manipulation [VL/HCC 14]
comparison of directory hierarchies/software modularizations
analyze
edit
23. Context Switch
perspectives on software visualization
end-uservs. expertvisualization
visualization as a part of something bigger
23
25. Perspectives on Software Visualization
25
Bird‘s-Eye Perspective
high-level insights
overview and abstraction
visual scalability
limited reach
Frog‘s-Eye Perspective
developer experience
selection and details
seamless integration
wide reach
Perspective
interplay of perspectives
from analyzing to editing
context switch
Fabian Beck @beck_fabian
26. References
Beck, Fabian: Software Feathers: Figurative Visualization of Software Metrics. In: IVAPP '14: Proceedings of the 5th International Conference on Information Visualization Theory and Application, S. 5-16, 2014.
Burch, Michael; Vehlow, Corinna; Beck, Fabian; Diehl, Stephan; Weiskopf, Daniel: Parallel Edge Splatting for Scalable Dynamic Graph Visualization. In: IEEE Transactions on Visualization and Computer Graphics: Nr. 12 (2011), S. 2344-2353.
Burch, Michael; Beck, Fabian; Weiskopf, Daniel: Radial Edge Splatting for Visualizing Dynamic Directed Graphs. In: IVAPP '12: Proceedings of the International Conference on Information Visualization Theory and Applications, S. 603-612, 2012.
Beck, Fabian; Burch, Michael; Vehlow, Corinna; Diehl, Stephan; Weiskopf, Daniel: Rapid Serial Visual Presentation in Dynamic Graph Visualization. In: IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2012), S. 185-192, 2012.
Beck, Fabian; Burch, Michael; Diehl, Stephan; Weiskopf, Daniel: The State of the Art in Visualizing Dynamic Graphs. In: EuroVis-STARs, S. 83-103, 2014.
Beck, Fabian; Petkov, Radoslav; Diehl, Stephan: VisuallyExploringMulti-Dimensional Code Couplings. In:VISSOFT '11: Proceedingsofthe6th IEEE International Workshop on VisualizingSoftware forUnderstanding andAnalysis, S. 1-8, 2011.
Beck, Fabian; Diehl, Stephan: Visual Comparison of Software Architectures. In:SoftVis'10: Proceedings of the ACM 2010 Symposium on Software Visualization, S. 183-192, 2010.
Beck, Fabian; Diehl, Stephan: Visual Comparison of Software Architectures. In:Information Visualization: Nr. 2 (2013), S. 178-199.
Beck, Fabian; Hollerich, Fabrice; Diehl, Stephan; Weiskopf, Daniel: Visual Monitoring of Numeric Variables Embedded in Source Code. In: VISSOFT '13: Proceedings of the first IEEE Working Conference on Software Visualization (2013), S. 1-4.
Beck, Fabian; Moseler, Oliver; Diehl, Stephan; Rey, Günter D.: In Situ Understanding of Performance Bottlenecks through Visually Augmented Code. In: ICPC '13: Proceedings of the 21st International Conference on Program Comprehension, S. 63-72, 2013.
Beck, Fabian; Gulan, Stefan; Biegel, Benjamin; Baltes, Sebastian; Weiskopf, Daniel: RegViz: Visual Debugging of Regular Expressions. In: ICSE Companion '14: Companion Proceedings of the 36th International Conference on Software Engineering, S. 504-507, 2014.
Lutz, Rainer; Rausch, Daniel;Beck, Fabian; Diehl, Stephan: GetYourDirectoriesRight: FromHierarchyVisualizationtoHierarchyManipulation. Toappearin VL/HCC 14
26