perspectives on software visualization
DESCRIPTION
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.TRANSCRIPT
Perspectives on Software Visualization
Fabian BeckVISUS, University of Stuttgart
@beck_fabian
no natural representation beyond source code
visualization makes software explorable
Software
2
…
Example: Software Feathers
find a characteristic, recognizable representation of a class
3
JHotDraw 7.6Java GUI framework
578 classes and interfaces
Software Feathers [IVAPP 14]
Perspectives on Software
an autobiographic view of software visualization
4
developer
manager
researcher
user
architect
A Bird's-Eye Perspective5
A View from Top
6
manager
researcher
architectcomplete system
Software as Graphs and Hierarchies
7
A
B C
couplings
modularization
A B C
b
a
time
A B C
a
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 [EuroVis 14]
http://dynamicgraphs.fbeck.com
Comparison of Concepts of Couplings
Visually Exploring Multi-Dimensional Code Couplings [VISSOFT 11] 9
Couplings and Modularizations
Visual Comparison of Software Architectures[SoftVis 10, Information Visualization 13] 10
BA C
A
B
C
type I
type I & II
type II
A
B C
node-link
matrix
Characteristics of the Perspective
11
goal: high-level insights
means: overview and abstraction
challenge: visual scalability
application: limited reach and application
A Frog‘s-Eye Perspective
12
Worm
A Change of Perspective13
developer
…
part of the system
user
In Situ Software Visualization
visualize information in-place, when and where needed
14
developers’ reality: source code
“A sparkline is a small intense, simple, word-sized graphic with typographic resolution.”
Edward Tufte, 2006
[Google image search for “sparklines”]
Monitoring of Numeric Variables
15
0
15min value
max value
variable value
# read accesses
logical time
write access read access
Visual Monitoring of Numeric Variables Embedded in Source Code [VISSOFT 13]
Runtime Consumption
16
In Situ Understanding of Performance Bottlenecks through Visually Augmented Code [ICPC 13]
0.53%a(){method time calleescallers
self time threadscolor: thread type
I3 Feature Location
17Rethinking User Interfaces for Feature Location [submitted]
searchsimilarity
change history of the method
daysweeksmonthsyears
I
RegViz [ICSE NIER 14]
\(([^)]*?(\w*))\)|\[([^\]]*?(\w*))\]
http://regviz.org
RegViz
Characteristics of the Perspective19
goal: developer experience
means: selection and details
challenge: seamless integration
application: wide reach and application
Perspective – What‘s next?
20
Interplay of Perspectives
21
dynamic perspectives
collaboration communication
From Analyzing to Editing
22
Get Your Directories Right: From Hierarchy Visualization to Hierarchy Manipulation [VL/HCC 14]
comparison of directory hierarchies/software modularizations
anal
yze
edit
Context Switch
perspectives on software visualization
end-user vs. expert visualization
visualization as a part of something bigger
23
Conclusions
24
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
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: Visually Exploring Multi-Dimensional Code Couplings. In: VISSOFT '11: Proceedings of the 6th IEEE International Workshop on Visualizing Software for Understanding and Analysis, 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: Get Your Directories Right: From Hierarchy Visualization toHierarchy Manipulation. To appear in VL/HCC 14
26