1 / 94

Software Visualization

Discover how software visualization transforms abstract data & code into interactive visualizations for enhanced understanding & analysis. Implement cutting-edge techniques to visualize complex information effectively.

Download Presentation

Software Visualization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Visualization Peter Eades University of Sydney

  2. Making PicturesofAbstract Things

  3. Photograph

  4. Bent photorealism • Jesse Jin

  5. Synthesized photorealism • Mitsubishi Electric Research Laboratories

  6. Unseen but imaginable • BMIT group

  7. Unseen but imaginable BMIT group

  8. Something very abstract • Derek Renouf, • Adaptive Arts

  9. Abstract information • KeithNesbitt

  10. Abstract information • Biochemical pathways • Carsten / Rowena • Friedrich

  11. Abstract information • A.S.M. Sajeev, Wendy Wang, Aaron Quigley

  12. Abstract information • Keith Finkelde

  13. Bad visualization

  14. Good visualization Beck

  15. Visualization of concrete and abstract things • Concrete Software Visualization Diagrams Abstract Medical images, metro maps Synthetic photorealism Photography

  16. The visualization process • Visualization Data Model Picture Analysis Making pictures

  17. The software visualization process • Software Visualization Graph Drawing Graph Program Analysis We want to create good visualizations of software Making pictures

  18. There is alot ofSoftware

  19. Machine speed • MIPS per dollar MIPS 1950 1960 1970 1980 1990 2000

  20. Software size: lines of source code • Line of code in the world ? 1950 1960 1970 1980 1990 2000

  21. Software size: number of files • Number of files • in MS windows 6000 5000 4000 3000 2000 1000 Win2000 Win98 Win95 Win3.1 1989 1995 1998 2000

  22. Demand for software Software size: number of programmers • Number of programmers in Australia 1950 1960 1970 1980 1990 2000

  23. Software interactions Interactions of a typical program with other programs ? 1950 1960 1970 1980 1990 2000

  24. LEGO elephant

  25. Design for a LEGO elephant 1 2 3 4 5 6 8 7

  26. LEGO elephant

  27. A large LEGO elephant

  28. Software and elephants • Modern software is more like a REAL elephant than a LEGO elephant • The real elephant is large and complex • The real elephant evolved, it was not designed • There are no design documents • Many components of the real elephant seem familiar, but a little different • The real elephant interacts with its environment in a very complex way • There are many different views of the real elephant, and no one human can see the whole picture • The real elephant can be cumbersome • It is difficult to investigate the insides of the real elephant without hurting it

  29. Software and elephants • Understanding modern software systems is something like understanding real elephants

  30. SoftwareisRelationalInformation

  31. Football transfer graph • In the 2001 season, • Drew will move from the Panthers to the Eels • Miles will move from the Roosters to the Eagles • Green will move from the Cowboys to the Roosters • O’Hara will move from the Bulldogs to the Raiders • . . . . . .

  32. Entity Entity Edge Node Node Football transfer graph Relationship Team Team Player Transfer Graph

  33. Football transfer graph • Relational information is often represented in a table

  34. Football transfer graph

  35. Green Kimmorley Orford Miles Drew Buetner Prince Solomona Vagana Duckworth Kelly Patten Schifcofske, Hodgson O’Hara Mapp Howland Football transfer graph

  36. A program • #include <stdio.h> • #include <types.h> • #include <point.h> • #include <edge.h> • #include <vertex.h> • #include <defs.h> • define MAX(X,Y) (((X) >= (Y)) ? (X) : (Y)) • #define DeltaX 0.1 • extern vertex *read_cgo(); • extern char *cmap[]; • main() • { • vertex *cgo; • vertex *tree; • int height; • /* • * Read the cgo, Find the root of the tree, (coloured "root") • * draw the tree, remove any added links, and write out the cgo again. • */ • if ((cgo = read_cgo()) == NULL) exit (0); • for (tree = cgo; /* Find root of tree, colour */ • tree && (strcmp (cmap[tree->v_colour], "root") != STREQUAL); • tree = tree->v_next); • Draw_Subtree(tree, &height); • rm_links(cgo); • write_cgo(cgo); • } • /* • * Removes the added links from • Program rt.c • 313 lines of C code • 13 functions • Written about 1987 by Luke Wildman • Draws trees

  37. Program call graph #include <stdio.h> #include <types.h> #include <point.h> #include <edge.h> #include <vertex.h> #include <defs.h> define MAX(X,Y) (((X) >= (Y)) ? (X) : (Y)) #define DeltaX 0.1 extern vertex *read_cgo(); extern char *cmap[]; main() { vertex *cgo; vertex *tree; int height; /* * Read the cgo, Find the root of the tree, (coloured "root") * draw the tree, remove any added links, and write out the cgo again. */ if ((cgo = read_cgo()) == NULL) exit (0); for (tree = cgo; /* Find root of tree, colour */ tree && (strcmp (cmap[tree->v_colour], "root") != STREQUAL); tree = tree->v_next); Draw_Subtree(tree, &height); rm_links(cgo); write_cgo(cgo); } /* * Removes the added links from • Program structure is relational: • Main calls draw_subtree and rm_links • Draw_subtree calls itself, left, right, plot_point, and separate_subtrees • Separate_subtrees calls find_shift, too_close, mklink, anyright, anyleft, and make_shift • Make_shift calls left, right, plot_point, and itself

  38. Program call graph #include <stdio.h> #include <types.h> #include <point.h> #include <edge.h> #include <vertex.h> #include <defs.h> define MAX(X,Y) (((X) >= (Y)) ? (X) : #define DeltaX 0.1 extern vertex *read_cgo(); extern char *cmap[]; main() { vertex *cgo; vertex *tree; int height; /* * Read the cgo, Find the root of the tree, (coloured "root") * draw the tree, remove any added links, and write out the cgo again. */ if ((cgo = read_cgo()) for (tree = Calls Function Function Edge Node Node Graph

  39. Program call graph • We can represent the call relation as a table

  40. Program call graph: diagram #include <stdio.h> #include <types.h> #include <point.h> #include <edge.h> #include <vertex.h> #include <defs.h> define MAX(X,Y) (((X) >= (Y)) ? (X) : #define DeltaX 0.1 extern vertex *read_cgo(); extern char *cmap[]; main() { vertex *cgo; vertex *tree; int height; /* * Read the cgo, Find the root of the tree, (coloured "root") * draw the tree, remove any added links, and write out the cgo again. */ if ((cgo = read_cgo()) for (tree = Lee Dinning

  41. Graphs • A graph consists of • nodes, and • edges, i.e., pairs of nodes • The nodes model entities • the edges model relationships • Graphs model relational information

  42. Graphs Michael Doorley, IRB

  43. Graphs and software • Graphs are used widely as software models • Call graphs • Use-case diagrams • Slicing diagrams • Class hierarchies • ER models • NIAM models • Data flow diagrams • Control flow diagrams

  44. Graphs and software • The analysis phase of software visualization is sometimes called “design recovery”. • Fundamentally, this is the process of extracting a graph from the program. Graph Drawing Program Graph Making pictures Analysis

  45. How toUntangleaDiagram

  46. Graph drawing • The purpose of graph drawing is to untangle diagrams tangled untangled

  47. Graph Drawing • The classical graph drawing problem is to develop algorithms to draw graphs. The input is a graph with no geometry The output is a diagram, a drawing of the graph C A - B, C, D B - A, C, D C - A, B, D, E D - A, B, D, E E - C, D ? A B E D the output drawing should be untangled, easy to understand, beautiful.

  48. Graph Drawing • There are many methods to draw untangled pictures of graphs. • Two such methods: • GIOTTO method • Force-directed method

  49. GIOTTO • Batini et al. began to investigate drawing ER diagrams in the early 1980s. • Aims • Orthogonal drawings • Minimise crossings • Make lines as straight as possible (minimise bends) • Maximise resolution

More Related