Title: Software Visualization Concepts and Applications
1Software VisualizationConcepts and Applications
- Dr. Timothy Jacobs
- Air Force Institute of Technology
- Electrical and Computer Engineering
- Timothy.Jacobs_at_afit.edu
2Why Visualize?
3 Why visualize?
4Why Visualize Software?
- Software is complex
- Large size
- Many relationships
- Complicated functionality
- Abstract
- Because of this complexity
- Software is difficult to specify
- Software is hard to understand
- It is difficult to detect and remove errors from
software - Software performance is hard to monitor and
analyze
5How do we visualize software?
- Definitions
- Characteristics/Concerns
- Examples
- Recommendations
- AFIT Research
6Definition
- Software Visualization the use of the crafts
of typography, graphic design, animation, and
cinematography with modern human-computer
interaction and computer graphics technology to
facilitate both the human understanding and
effective use of computer software. - - Price, Baecker and Small, 98
7Visualization Characteristics
- Scope
- Abstraction
- Specification Methods
- Interaction
- Presentation
8Visualization Characteristics
- Scope
- Which aspects of the program are being examined?
- Possibilities
- Static
- Dynamic
- Code
- Data State
- What is the purpose of the program?
- Program understanding
- Performance analysis
- Program specification
- Algorithm animation
- Broad scope is generally better
- Abstraction
- Specification Methods
- Interaction
- Presentation
- Data flow
- Control flow
- Behavior
- Performance
9Visualization Characteristics
- Scope
- Abstraction
- To what degree is the representation is removed
from the code - Possibilities
- Direct directly linked to the code
- Structural high level components hide low level
components elision - Synthesized derived from code and other
information not in the code - Multiple levels of abstraction are generally
preferred - Specification Methods
- Interaction
- Presentation
10Visualization Characteristics
- Scope
- Abstraction
- Specification Methods
- How is the information in the code extracted and
displayed? - Possibilities
- Modify code to extract information
- Extract information from existing code
- Extract information from elsewhere in environment
- Minimal intrusion in code is desired however,
user needs sufficient flexibility to gather
relevant information - Interaction
- Presentation
11Visualization Characteristics
- Scope
- Abstraction
- Specification Methods
- Interaction
- How does the user interact with and navigate
through the visual information? - Unlimited possibilities
- Direct manipulation graphical interface is
generally better - Presentation
12Visualization Characteristics
- Scope
- Abstraction
- Specification Methods
- Interaction
- Presentation
- How is the information presented to the user to
facilitate understanding? - Possibilities
- Color
- Size
- Spatial relationships
- Text
- Patterns
- Goal is to present abstractions that facilitate
information navigation and understanding
- Diagrams
- Static
- Animated
- Historical
- Real-time
13Program Visualization
TogetherSoft
14TogetherSoft
- Purpose Program specification program
understanding - Scope static code data structures
- Abstraction code, classes, packages,
relationships - Specification None all info already in code
- Interaction direct manipulation text dialogs
- Presentation
- Standard UML diagrams poor use of space and
color - Code white space and color
- Benefits
- Well known modeling technique
- Round-trip engineering between diagrams and code
- Drawbacks
- Poor use of space can not see the big picture
- Limited support for run-time analysis
- No elision
15Program Visualization
DEC FUSE Program Visualizer
16DEC Fuse Program Visualizer
- Purpose Navigate and view large programs
- Scope Static code
- Abstraction Code
- Specification None extracted from code
- Interaction Direct manipulation
- Presentation Text, color, size
- Benefits
- Good use of space
- Overview detail
- Drawbacks
- Limited abstraction
17Program Visualization
JGrasp James H. Cross II Auburn University
18Complexity Analysis
JGrasp James H. Cross II Auburn University
19JGrasp
- Purpose Program specification program
understanding, program analysis - Scope static code, control structures
- Abstraction code, program blocks, control flow,
derived statistics - Specification None all info in code
- Interaction text
- Presentation
- Text, color, diagrams
- Color coded bar graphs
- Benefits
- Control diagrams integrated with code
- Complexity analysis mapped to code segments
- Drawbacks
- No high level abstractions
- No elision
20Program Visualization
Imagix 4D
21Imagix 4D
- Purpose Program visualization
- Scope code, control structures
- Abstraction code, structures
- Specification None all info collected from
code - Interaction GUI
- Presentation Text, color, size, graphs
- Benefits
- A variety of techniques for browsing code and
analyzing complexity - Drawbacks
- Limited abstraction
- No elision
22Program Execution Analysis
IBM AIX Program Visualizer (PV)
23IBM Program Visualizer
- Purpose Analyze program execution
- Scope dynamic code
- Abstraction code, memory, cpu
- Specification annotated by compiler
- Interaction GUI
- Presentation Text, color, size, graphs
- Benefits
- Lots of relevant information
- User configurable
- Drawbacks
- No high level abstraction
- No linkage between charts
24Visual Programming
Cantata
25Cantata
- Purpose Visual programming
- Scope software components/programs
- Abstraction information flow pipe and filter
- Specification use available components
- Interaction direct manipulation
- Presentation glyphs, diagrams
- Benefits
- No code necessary to write programs
- Drawbacks
- Restricted to existing components
- Limited scalability of presentation poor use of
space
26Concurrent Program Visualization
ConchViz
27ConchViz
- Purpose Animate message passing
- Scope message flow
- Abstraction messages, time
- Specification Polka animation language, code
instrumentation to gather data - Interaction GUI
- Presentation Text, color, glyphs, lines,
animation - Benefits
- Animation helps information and message flow
analysis - Drawbacks
- Single level of abstraction
- Poor use of space difficult to scale to many
processes
28Concurrent Program Visualization
Gthreads
29Gthreads
- Purpose Concurrent program execution analysis
- Scope synchronization and control structures
- Abstraction code, memory, threads,
synchronization - Specification precompiler macros, POLKA
animation - Interaction GUI
- Presentation Text, color, glyphs, size, graphs
- Benefits
- Lots of views to determine state of
synchronization - Drawbacks
- Difficult to scale to large numbers of processes
- Based on trace data, not real-time
30Analysis of Existing Applications
- Software visualization has limited utility for
comprehensive program analysis due to inability
to browse and view software at multiple levels of
abstraction - Abstraction
- Limited single data structures or code
- Specification and analysis using different views
- Usually low level
- Interaction
- Little direct manipulation
- Presentation
- Limited use of elision
- Details only no context (or vice versa)
- Limited animation
- Recommendations
- Similar analysis and specification views
- Direct manipulation interaction with focus
context animated views
31Visualization of Distributed Systems
- Deployment of services What goes where?
- Availability of services Whats out there?
- Performance optimization Where are the
bottlenecks? - Failure How do we identify and work around
unexpected failures? - Visibility How do we examine something thats
taking place across the country?
32Information Gathering Objectives
- Dynamic analysis of distributed multiagent
systems - Not another class or agent diagram
- Real-time, animated system execution
- Evaluate goal satisfaction and design performance
- Identify anomalies or errors that might impair
goal satisfaction - Invalid/unsynchronized data flows, program bugs,
network failures - Real-time observation of system load and delays
affecting performance - Redundant tasks, communications frequency,
algorithm inefficiencies, available computational
power, network bandwidth - Avoid line-by-line investigation of source code
- Overview first, details on demand
- Information filtering
33Information Gathering Methods
- System evaluation monitor messages between
agents - Behavior revealed through service requests and
data flows - Performance revealed through delays, size, and
quantity - Requires only minor changes to messaging
infrastructure no changes in system design - Individual agent evaluation remote program
debugging API - Not yet incorporated into visual presentation
34Information Presentation
- Multiple views at different levels of detail
- Agent Relationship View
- Conversation Flow View
- Message View
- Content View
- Integrated with Multiagent Systems Engineering
(MaSE) tool. - User configurable data selection and
arrangement - Interactive direct manipulation interface for
data navigation and data abstraction
35Sample Application Command and Control
Simulation
10 Agents 3 Platforms Local Area Network
36Agent Relationship View
Agents depicted by glyphs and labels
Width of line depicts number of messages
X depicts error
37(No Transcript)
38Detailed Views
Message View
Content View
39Conversation Flow View
40Analysis
- Scope message flow
- Information and control
- Requested services and behaviors
- Bandwidth and latency
- Abstraction multiple views
- Drill down to lower levels of abstraction
- Filter out extraneous information
- Specification method duplication of messages
- Maintain order of messages
- Changes limited to messaging infrastructure
- Interface direct manipulation of visual
representations - Presentation structural and temporal views
- Scalability architectural and visual
41Focus Context Views
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
Context
42Summary Conclusions
- Visualization techniques almost certainly improve
understanding of complex software systems - Current techniques are somewhat limited in their
ability to browse and view multiple levels of
abstraction usually preferring to focus on code
details - Visualization technologies currently exist that
can remedy many of the deficiencies with existing
software visualization techniques
43Key References
- John Stasko et al, editors, Software
Visualization Programming as a Multimedia
Experience, MIT Press, 1998. - Peter Eades and Kang Zhang, editors, Software
Visualisation, World Scientific Publishing Co.,
1996.