Software Visualization

Slides:



Advertisements
Similar presentations
Visualization of Computer Networks By Richard Zschech Supervisors: Dr. Ken Hawick, Dr. Paul Coddington.
Advertisements

Anany Levitin ACM SIGCSE 1999SIG. Outline Introduction Four General Design Techniques A Test of Generality Further Refinements Conclusion.
Force directed graph drawing Thomas van Dijk. The problem Given a set of vertices and edges, compute positions for the vertices. If the edges don’t have.
1 Modularity and Community Structure in Networks* Final project *Based on a paper by M.E.J Newman in PNAS 2006.
Constrained Optimisation and Graph Drawing Tim Dwyer Monash University Australia
New Techniques for Visualisation of Large and Complex Networks with Directed Edges Tim Dwyer 1 Yehuda Koren 2 1 Monash University, Victoria, Australia.
Graph Visualization cs5764: Information Visualization Chris North.
Computer Network Project Computer Network Project Efficient handling of messages with multimedia attachments.
1 Ontology Visualization 10 th International Protégé Conference July 15, 2007, 11:00 – 12:30PM CEST Jennifer Vendetti, Stanford University.
Great Theoretical Ideas in Computer Science.
SIMS 247: Information Visualization and Presentation jeffrey heer
Is the following graph Hamiltonian- connected from vertex v? a). Yes b). No c). I have absolutely no idea v.
2-Layer Crossing Minimisation Johan van Rooij. Overview Problem definitions NP-Hardness proof Heuristics & Performance Practical Computation One layer:
DSGraph Distributed Snapshot Graph Algorithms & visualization Student: Ovadia Ophir Lab instructor: Mr. Melamed Roie Lab chief engineer: Dr. David Ilana.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
Visualization of Graph Data CS 4390/5390 Data Visualization Shirley Moore, Instructor October 6,
Quark QuarkXPress 4 Foundation Level Course. What is QuarkXPress? This courseware teaches the fundamentals of QuarkXPress 4.1. It is a page layout application.
Process Modeling and Data Flow Diagrams
Graph Visualization Tools NAM, Javis, Otter, H3Viewer Burton Filstrup.
Visualization Taxonomies and Techniques Graphs University of Texas – Pan American CSCI 6361, Spring 2014.
19-MAY-2006GraphViz in Dependancy Analysis of BaBar SoftwarePage: 1 Using GraphViz in Dependancy Analysis of BaBar Software Igor A. Gaponenko LBL / NERSC.
A Survey on Graph Visualization 1 Presented by Yang Zhang Dave Fuhry.
IAT Graphs ______________________________________________________________________________________ SCHOOL OF INTERACTIVE ARTS + TECHNOLOGY [SIAT]
Minimum Spanning Trees and Clustering By Swee-Ling Tang April 20, /20/20101.
Concept Visualization for Ontologies of Artificial Intelligence Yu Suo TJHSST Computer Systems Lab George Mason University.
A hierarchical approach to building contig scaffolds Mihai Pop Dan Kosack Steven L. Salzberg Genome Research 14(1), pp , 2004.
Crossing Minimisation (1) Ronald Kieft. Global contents Specific 2-layer Crossing Minimisation techniques After the break, by Johan Crossing Minimisation.
Richard Johnson  How can we use the visualization tools we currently have more effectively?  How can the Software Development.
New method to optimize Force-directed layouts of large graphs Meva DODO, Fenohery ANDRIAMANAMPISOA, Patrice TORGUET, Jean Pierre JESSEL IRIT University.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Graph.
Introduction Amdocs’ clients line of work has to collect information from different, separated and independent devices, and each device has a lot of information.
Visualizing Large Dynamic Digraphs Michael Burch.
Confluent Drawings of Bipartite/Layered Graphs Ulrik, Riko, Stephen, Titto, Nina.
Graph Concepts and Algorithms Using LEDA By Caroline Moore and Carmen Frerichs (252a-at and 252a-ao) each graph in the presentation was created using gw_basic_graph_algorithms.
Visualization of Biological Information with Circular Drawings.
Graph Concepts Illustrated Using The Leda Library Amanuel Lemma CS252 Algorithms.
Graph Terms By Susan Ott. Vertices Here are 7 vertices without any edges Each Vertex is labeled a different color and number.
Clustering [Idea only, Chapter 10.1, 10.2, 10.4].
CSC 252 Pallavi Moorthy Homework 5. 1.) Vertices, edges From cd../../handout/demo/graph_alg/gw_shortest_path.
Data mining in web applications
Centralities (Gephi and Python)
Algorithms and Networks
FHIRForms – Viewing and Editing FHIR Data
Processes and Process Models
Central nodes (Python and Gephi).
Proof technique (pigeonhole principle)
Unified Modeling Language
Lecture 12 Graph Algorithms
Digital Filter Design Tools
Network Visualization
Comp 245 Data Structures Graphs.
i206: Lecture 14: Heaps, Graphs intro.
Minimum Spanning Tree.
T. C. van Dijk1, J.-H. Haunert2, J. Oehrlein2 1University of Würzburg
Constrained Bipartite Vertex Cover: The Easy Kernel is Essentially Tight Bart M. P. Jansen February 18th, STACS 2016, Orléans, France.
Software Clustering.
Central Nodes (Python and Gephi).
Challenges in Visualizing Knowledge and Metadata
Richard Anderson Autumn 2016 Lecture 5
HW2: A prime path generator (Due Oct 6th 23:59)
Richard Anderson Winter 2019 Lecture 6
Lecture One: Automata Theory Amjad Ali
Graph Search in C++ Andrew Lindsay.
Clustering.
SeeSoft A Visualization Tool..
Richard Anderson Autumn 2015 Lecture 6
For Friday Read chapter 9, sections 2-3 No homework
Processes and Process Models
Mikael Eriksson,
Presentation transcript:

Software Visualization

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

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

2/4/2019 COSC6431

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

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

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

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

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

Sugiyama example 2/4/2019 COSC6431

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

Spring Layout example 2/4/2019 COSC6431

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

Data structures 2/4/2019 COSC6431

Automata 2/4/2019 COSC6431

Program profile 2/4/2019 COSC6431

Module dependencies 2/4/2019 COSC6431

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

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

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

Metaballs 2/4/2019 COSC6431

Cone trees 2/4/2019 COSC6431

World cities 2/4/2019 COSC6431