Software Visualization - PowerPoint PPT Presentation

software visualization n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Visualization PowerPoint Presentation
Download Presentation
Software Visualization

play fullscreen
1 / 94
Software Visualization
85 Views
Download Presentation
speranza-arkins
Download Presentation

Software Visualization

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