This exploration into software visualization delves into the intricate relationship between abstract concepts and their tangible representations. From photorealism in images by Peter Eades and Jesse Jin to strategies for depicting complex data sets and biochemical pathways, we unearth the challenges and methodologies that drive effective visualization practices. The work emphasizes how well-crafted visualizations can transform abstract information into accessible formats, enabling better understanding and analysis across diverse domains, including medical imaging and software systems.
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
The software visualization process • Software Visualization Graph Drawing Graph Program Analysis We want to create good visualizations of software Making pictures
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
Software and elephants • Understanding modern software systems is something like understanding real elephants
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 • . . . . . .
Entity Entity Edge Node Node Football transfer graph Relationship Team Team Player Transfer Graph
Green Kimmorley Orford Miles Drew Buetner Prince Solomona Vagana Duckworth Kelly Patten Schifcofske, Hodgson O’Hara Mapp Howland Football transfer graph
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
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
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
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
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
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
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
Graph drawing • The purpose of graph drawing is to untangle diagrams tangled untangled
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.
Graph Drawing • There are many methods to draw untangled pictures of graphs. • Two such methods: • GIOTTO method • Force-directed method
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
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.