Perspectives on Software Visualization

Post on 25-Jan-2015

709 views 0 download

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 of Perspectives on Software Visualization

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