190 likes | 277 Views
Explore the evolution of visualizing software engineering diagrams. Learn about functional prototypes and the correlation between terminologies and techniques used for program visualization. Discover key systems like Sorting, BALSA, Zeus, and more.
E N D
Visualisation of Software Engineering Diagrams Part – 1 Rajat Anantharam Department of Gaming and Media Technology
Agenda Terminologies Existing protoypes Functionalities Evolution of SV
Terminology Correlation “Visual” – as in : Conveyance of the Mental Image 7th definition of the term visual In the Oxford English Dictionary
Terminologies • Program Visualization: • The use of various techniques to enhance the human understanding of computer programs • Visual Programming: • The use of “visual” techniques to specify the program in the first place • Algorithm Visualization: • Visualization of a high level description of a piece of software • Code\Data Visualization: • Visualization of the actual implemented code • Software Visualization: • All of the above (together) !!!
The Twelve Systems Sorting out Sorting BALSA Zeus Tango ANIM Pascal Genie UWPI SEE TPM PAVANE LOGO-Media Centerline ObjectCenter – formerly Saber C++)
Sorting out Sorting • Motion Flick of 30 minutes produced at the University of Toronto • Animated CG representing the working of the Sorting algorithms • The movie: • Introduces the concept of sorting • Linear Insertion, Binary Insertion, Shell Sort, Bubble Sort, Quick Sort, Shaker Sort • Straight selection, Tree selection, Heap Sort • Race of nine algorithms in parallel • http://www.cs.ubc.ca/~harrison/Java/sorting-demo.html • http://www.youtube.com/watch?v=F3oKjPT5Khg
BALSA • First interactive SV system – Brown University Algorithm Simulator and Animator • BALSA was itself built in C, but the algorithms which were animated were in Pascal • Multiple simultaneous views of each algorithms running • Events managers triggered animation at critical changes in the data structures • Better view of data strucures as compared to SOS
BALSA Interface Race between two bin packing programs Code view Tree Structure of the DB DB history Input \ Stat msg
Zeus • The most recent version of BALSA • Supports multiple synchronized views and allows users to edit them • User can change a data item’s representation once the animation is stopped • Implemented on a Multi-threaded, Multi-processor environment, hence it can easily animate parallel • programs • Has been used only in the laboratory as a prototype • Found extensive use among researchers as a tool for algorithm development
Zeus – Interface Sticks Dots Transcripts Control Panel
TANGO • An algorithm animation framework encompassing a new path transition paradigm for easily incorporating • smooth transtions into any algorithm animation. • Framework comprises 3 parts: • Defining the abstract operations and events in the program that drives the animation • Designing the animation to simulate the abstractions and operations • Mapping the programs operations to the corresponding animation scene • BALSA allowed only one-one relation between the events and the animation scenes. However TANGO • framework supports one-many, many-one, many-many mappings.
TANGO snapshot An illustration of bin packaging problem Input description: A set of n items with sizes . A set of m bins with capacity Problem description: How can you store all the items using the smallest number of bins?
ANIM • Developed at the AT&T Bell Laboratories • UNIX tool philosophy, generalized simple interface, language & software independent • Four drawing commands: line, text, box and circle • Four control commands: view, click, erase and clear • Post-Mortem framework ... “NOT LIVE”
ANIM – Areas of application • 3D Molecular modelling system • 3D stereo viewer on an SGI iris workstation • Parse Trees of Lambda calculus • Numerical analysis visualization • Displays of simultaneous differential Equations • Debugging of a matrix manipulation program • Computational geometry abstractions • Parallel Algorithm visualization • Dynamic statistical display.
ANIM – A screen snapshot Synchronized Algorithm Race
Pascal Genie • First automated SV of its kind. • It created graphical displays of program data structures automatically • Makes debugging easier • Myers at Carnegie-Mellon later created a production system called “Amethyst” which was integrated with the Macgnome (Pascal pgmming environment for Mac) thereby giving Pascal Genie
To be continued .. • Detailed discussion of the remaining 6 working SV prototypes • Other areas of application • Future of software visualization applications