Visualizing algorithms, Visualizing software, and Visualizing … (just

Download Report

Transcript Visualizing algorithms, Visualizing software, and Visualizing … (just

Visualizing algorithms,
Visualizing software, and
Visualizing …
(just about anything else)
Dr. Jan Stelovsky
AMI @ ICS @ UH
Roadmap
• Visualizing Alogrithms
– separate
– within Eclipse
• Visualizing Software
• Visualizing Anything
Visualizing Alogrithms
• lot of examples
– Uni Maryland
– ICS 665
• advantages
– useful
• problems:
– inconsistent (ICS 665)
– incomplete
– love it or leave it (inflexible)
Enter Debugger
• e.g. Eclipse for Java
• debugger is a misnomer
• problems:
– crude
– shows too much
– misleading
• but it’s flexible!
– only tool that shows the entire state
– arbitrary program
Enter Eclipse
•
•
•
•
plugin architecture
just implement one View
source code view comes for free
Rich Client Application
• -> Vizibug
How to Define a Viz
• default
• as annotations (Java 5.0!)
– e.g. @viz (“myviz. CarViz”) class Car
• as XML
– different configurations
• interactive
– user chooses at run-time
– converted to XML: persistent
Extreme Viz
• Extreme Programming
– UJunit class for each class
– automated testing for each build
• from write interface then implement
to write tests then implement
• problems:
– test cases grow exponentially
– how to test GUI?
• write a Viz class for each class
Enter UML
• standard
• static diagrams
– class, object diagrams
• dynamic diagrams
– sequence, collaboration diagrams
• arent’t that dynamic
– you can print them
• -> dynamic UML while a program runs
-> SoftViz
Going to Movies
• program runs in time
• visualization shows a frame in each step
• -> I want control it as a movie
– play, stop, rewind,
– go to any frame in time
– even backwards
• 2-D diagrams of variable’s values
• it’s a tree
– change values, play, then rewind
AnythingViz
•
•
•
•
a Viz for an object
a Viz for any object
-> the movie comes for free!
applications
– clouds simulations
– DNA
• recursive
– visualize SoftViz
Projects
•
•
•
•
•
•
•
XML
Viz architecture
UML
software as movie
concurrent programs
applications
…