perspectives on software visualization

26
Perspectives on Software Visualization Fabian Beck VISUS, University of Stuttgart @beck_fabian

Upload: foerderverein-technische-fakultaet

Post on 25-Jan-2015

704 views

Category:

Technology


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

Page 1: Perspectives on Software Visualization

Perspectives on Software Visualization

Fabian BeckVISUS, University of Stuttgart

@beck_fabian

Page 2: Perspectives on Software Visualization

no natural representation beyond source code

visualization makes software explorable

Software

2

Page 3: Perspectives on Software Visualization

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]

Page 4: Perspectives on Software Visualization

Perspectives on Software

an autobiographic view of software visualization

4

developer

manager

researcher

user

architect

Page 5: Perspectives on Software Visualization

A Bird's-Eye Perspective5

Page 6: Perspectives on Software Visualization

A View from Top

6

manager

researcher

architectcomplete system

Page 7: Perspectives on Software Visualization

Software as Graphs and Hierarchies

7

A

B C

couplings

modularization

A B C

b

a

time

A B C

a

Page 8: Perspectives on Software Visualization

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

Page 9: Perspectives on Software Visualization

Comparison of Concepts of Couplings

Visually Exploring Multi-Dimensional Code Couplings [VISSOFT 11] 9

Page 10: Perspectives on Software Visualization

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

Page 11: Perspectives on Software Visualization

Characteristics of the Perspective

11

goal: high-level insights

means: overview and abstraction

challenge: visual scalability

application: limited reach and application

Page 12: Perspectives on Software Visualization

A Frog‘s-Eye Perspective

12

Worm

Page 13: Perspectives on Software Visualization

A Change of Perspective13

developer

part of the system

user

Page 14: Perspectives on Software Visualization

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”]

Page 15: Perspectives on Software Visualization

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]

Page 16: Perspectives on Software Visualization

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

Page 17: Perspectives on Software Visualization

I3 Feature Location

17Rethinking User Interfaces for Feature Location [submitted]

searchsimilarity

change history of the method

daysweeksmonthsyears

I

Page 18: Perspectives on Software Visualization

RegViz [ICSE NIER 14]

\(([^)]*?(\w*))\)|\[([^\]]*?(\w*))\]

http://regviz.org

RegViz

Page 19: Perspectives on Software Visualization

Characteristics of the Perspective19

goal: developer experience

means: selection and details

challenge: seamless integration

application: wide reach and application

Page 20: Perspectives on Software Visualization

Perspective – What‘s next?

20

Page 21: Perspectives on Software Visualization

Interplay of Perspectives

21

dynamic perspectives

collaboration communication

Page 22: Perspectives on Software Visualization

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

Page 23: Perspectives on Software Visualization

Context Switch

perspectives on software visualization

end-user vs. expert visualization

visualization as a part of something bigger

23

Page 24: Perspectives on Software Visualization

Conclusions

24

Page 25: Perspectives on Software Visualization

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

Page 26: Perspectives on Software Visualization

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