Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Visualization

Similar presentations


Presentation on theme: "Software Visualization"— Presentation transcript:

1 Software Visualization

2 Visualization “A picture is worth 1000 words”
Effective visualization can help with the understanding of complex structures The key word is “effective” 2/4/2019 COSC6431

3 Compare this with… useproc ds.pl9 artificial.pl9
useproc ds.pl9 dsdbg.pl9 useproc ds.pl9 dselim.pl9 useproc ds.pl9 dsinit.pl9 useproc ds.pl9 dslivlst.pl9 useproc ds.pl9 dslvbb.pl9 useproc ds.pl9 dslvrg.pl9 useproc ds.pl9 dsmemuse.pl9 useproc ds.pl9 errorbe.pl9 useproc ds.pl9 ilstats.pl9 useproc dsdbg.pl9 artificial.pl9 useproc dsdbg.pl9 both.pl9 useproc dsdbg.pl9 getval.pl9 useproc dselim.pl9 dsdbg.pl9 useproc dselim.pl9 dslivlst.pl9 useproc dselim.pl9 dsmdlv.pl9 useproc dselim.pl9 dsmrgs.pl9 useproc dselim.pl9 gen_bag.pl9 useproc dselim.pl9 pl_del.pl9 useproc dselim.pl9 storame.pl9 useproc dsinit.pl9 alias.pl9 useproc dsinit.pl9 artificial.pl9 useproc dsinit.pl9 blevel1.pl9 useproc dsinit.pl9 both.pl9 useproc dsinit.pl9 choprnd.pl9 useproc dsinit.pl9 dslivlst.pl9 useproc dsinit.pl9 dsmemuse.pl9 useproc dsinit.pl9 getval.pl9 useproc dsinit.pl9 ilstats.pl9 useproc dslivlst.pl9 artificial.pl9 useproc dslivlst.pl9 dslivlst.pl9 useproc dslivlst.pl9 dsmemuse.pl9 useproc dslvbb.pl9 dslivlst.pl9 useproc dslvbb.pl9 dsmdlv.pl9 useproc dslvrg.pl9 dslivlst.pl9 useproc dslvrg.pl9 dslvrg.pl9 useproc dslvrg.pl9 dsmdlv.pl9 useproc dslvrg.pl9 dsmrgs.pl9 useproc dsmdlv.pl9 dslivlst.pl9 useproc dsmdlv.pl9 dsmdlv.pl9 useproc dsmrgs.pl9 dslivlst.pl9 useproc dsmrgs.pl9 dsmdlv.pl9 useproc optimiz.pl9 ds.pl9 2/4/2019 COSC6431

4 2/4/2019 COSC6431

5 Key questions What views are useful? What technique to use?
Low-level or high-level Kind of information displayed (procedure calls, data flow, control flow, inheritance) What technique to use? Automatic graph layout Animation What part of the information should be elided? 2/4/2019 COSC6431

6 Low-level visualizations
Execution of algorithms can be visualized to help with their understanding Classic example: “Sorting out Sorting” Many tools have been developed to do this automatically 2/4/2019 COSC6431

7 Parallel Quicksort visualization
The left view shows the values being sorted (color indicates thread) and the right view shows a history of the swaps made in the program. 2/4/2019 COSC6431

8 Automatic graph layout
Given a graph, what is its most understandable layout? Understandability usually refers to number of edge crossings A tough problem in the general case Minimizing edge crossings for a bipartite graph with one side fixed is NP-hard 2/4/2019 COSC6431

9 Heuristics - Sugiyama In software systems, one often deals with layered graphs Sugiyama developed a widely used algorithm for layout of layered graphs Main idea: Minimize edge crossings by having edges be as vertical as possible Abscissa of each vertex is the average of the abscissas of its neighbours 2/4/2019 COSC6431

10 Sugiyama example 2/4/2019 COSC6431

11 Heuristics – Spring Layout
Attaches forces between the nodes of a graph Connected nodes are attracted to each other, otherwise they are pushed apart Converges to a stable position Of dubious value for systems with many cycles (as most software systems are) 2/4/2019 COSC6431

12 Spring Layout example 2/4/2019 COSC6431

13 Graphviz Set of graph drawing tools from AT&T
Supports both Sugiyama and Spring layout Has been used in a number of different settings Receives textual input and transforms it into graphs Bunch can produce output that Graphviz can visualize 2/4/2019 COSC6431

14 Data structures 2/4/2019 COSC6431

15 Automata 2/4/2019 COSC6431

16 Program profile 2/4/2019 COSC6431

17 Module dependencies 2/4/2019 COSC6431

18 Rigi Interactive, visual tool designed to help understand and re-document software Includes parsers for C, C++, and COBOL Incorporates selection, filtering, and editing operations Uses simple file format to represent graphs (RSF) 2/4/2019 COSC6431

19 SHriMP Views Simple Hierarchical Multi-Perspective
Originally developed for program understanding Can be used for other knowledge bases as well Usual problem: How does it scale up? 2/4/2019 COSC6431

20 3D Visualizations A number of papers present attempts to visualize software structures in 3D While interesting, it is doubtful that these approaches can be useful (see aside on the course webpage) Some examples…. 2/4/2019 COSC6431

21 Metaballs 2/4/2019 COSC6431

22 Cone trees 2/4/2019 COSC6431

23 World cities 2/4/2019 COSC6431


Download ppt "Software Visualization"

Similar presentations


Ads by Google