an introduction to software visualization dr. jonathan i. maletic software development laboratory...
Post on 21-Dec-2015
217 Views
Preview:
TRANSCRIPT
An Introduction to Software An Introduction to Software Visualization Visualization
Dr. Jonathan I. MaleticSoftware DevelopMent Laboratory <SDML>
Department of Computer ScienceKent State University
Lecture 1 Software Visualization 2
Course Overview
• Introduction– Software visualization – terminology, dimensions and perspectives– Information visualization – an overview– Program analysis – the input to the problem– Program understanding/comprehension – the model
• Information Visualization– 15-18 papers
• Program Analysis and Understanding– 10-12 papers
• Software Visualization– 15-18 papers
Lecture 1 Software Visualization 3
What is Software Visualization?
“Software visualization is 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 ’93, ‘98 ].
Lecture 1 Software Visualization 4
Types of Software Visualization
SoftwareVisualization
Software System (Program)
Visualization
(Software) Data Visualization
Algorithm Visualization
Visual Programming
Languages
Visualization of Software
Structures
Visualization of Source Code Visualization
of Trace Execute Data
Visualization of Version Control
Data
Lecture 1 Software Visualization 5
Visualizing Software
Visual Programming
AlgorithmAnimationSoftware Data
Visualization
Software System Visualization
Exclude
Lecture 1 Software Visualization 6
Applied to Large-scale Software
We focus on visualization environments, techniques, and metaphors that support:
– Maintenance, re-engineering, reverse engineering
– Software development– Project management– Understanding
of large scale software systems
Lecture 1 Software Visualization 7
Specifics of the Problem Domain
• Visualize design and architectural information• Reduces, in part, to (large) connected graphs• Nodes represent complex entities i.e., software
module, class, function, component, subsystem, etc.
• Edges represent abstract relationships between the nodes i.e., aggregation, association, inheritance, invocation, etc.
Lecture 1 Software Visualization 8
Taxonomies for Software Visualization
• Existing taxonomies (Price, Roman, Myers, Stasko) are very broad and detailed
• Need to emphasize software engineering tasks involved in building and maintaining large-scale software systems
• No single software visualization tool can address all SE tasks
Lecture 1 Software Visualization 9
Reference Model for Visualization
Human Perceiver
Raw Data Data Tables Visual Structures
Views
DataTransformations
VisualMappings
View Transformations
Human Interaction Human Interaction
Raw Data: idiosyncratic formatsData Tables: relations (cases by variables) + meta dataVisual Structures: spatial substrates + marks + graphical propertiesViews: graphical parameters (position, scaling, clipping, etc.)
Visualization can be described as a mapping of data to visual form that supports human interaction for making visual sense [Card ’99].
Lecture 1 Software Visualization 10
Task Oriented View for Maintenance and Development of Large Systems
Task – why is the visualization needed?
Audience – who uses the visualization?
Target – what to represent?
Representation – how to represent?
Medium – where to represent?
Lecture 1 Software Visualization 11
Task
• Support for large scale, industrial-size, software systems and processes.
• Supports the understanding/comprehension (cognitive) process
• This is the driving force behind classification of software visualization systems (given our perspective)
Lecture 1 Software Visualization 12
Specific Tasks
• Development:– Design, Product evolution– Programming– Testing, Debugging
• Maintenance:– Fault detection– Reverse engineering, Re-engineering– Impact analysis
• Management– Version control– Resource allocation
Lecture 1 Software Visualization 13
Audience
• Experienced developers can handle multiple abstraction levels– they need access to both design- and code-level
information, as well as to the dynamic features.
• Project managers– they need access to design- and process-level
information.– they might not be skilled programmers.
Lecture 1 Software Visualization 14
Target
• Static features (relationships)– Design and architectural level information – Source code level information– Documentation
• Dynamic features (behavior)– Control and data flow at execution– Trace information
Lecture 1 Software Visualization 15
Representation
• User centric (versus compiler centric) – the visualization should present features of the software in concepts from the user’s universe.
• Cognitive based - the building blocks of the visual language must map to natural concepts and abstractions
• Does not overload the user – each element should have multiple attributes, but there should be a limit on the diversity. This limit should be driven by cognitive factors and the medium.
Lecture 1 Software Visualization 16
Additional Features of Representation
• Support multiple levels of abstraction:– Source code– Design– Design Patterns– Architecture
• Mapping between abstraction levels (e.g., drill down)
• Support navigation within the visualization
Lecture 1 Software Visualization 17
Mediums for Software Visualization
• Paper Documents– 2D, poor navigation, static
• White board– 2D, static
• The Desktop Display– High resolution but limited display area– 2D+ (for the most part)
Lecture 1 Software Visualization 18
New Types of Software Visualization Mediums
• More real estate – Multiple displays, large displays
• Support for collaborative problem solving• Utilize:
– 3D, 3D+ – Virtual Reality (combine stereopsis with motion),
Immersive Environments– Stereo displays, Multi-resolution displays– Multi-type medium (e.g., laptop + VE)
• Provide navigational controls
Lecture 1 Software Visualization 19
The CAVE
Commercialized byPyramid Systems
&VRCO
Images from EVL
Lecture 1 Software Visualization 20
The ImmersaDesk I, II, III
Images from EVL
Lecture 1 Software Visualization 21
Research Directions
• Focus on SE Task(s)• What types of (representations, mediums, etc) best
support particular tasks?• Investigate new mediums and representations• Environments that support collaborative
development • Utilize existing research in cognitive psychology
Lecture 1 Software Visualization 22
IMSOvision [Maletic 01]
Lecture 1 Software Visualization 23
sv3D [Marcus, Feng, Maletic 02]
Lecture 1 Software Visualization 24
DJVis [Smith & Munro 02]
Lecture 1 Software Visualization 25
Revision Towers [Taylor & Munro 02]
Lecture 1 Software Visualization 26
Acacia: CIAO for C++ [AT&T Research]
Lecture 1 Software Visualization 27
SeeSoft -Code Version History [Eick96]
Lecture 1 Software Visualization 28
SHriMP [Storey01]
Grid
Spring
Sugiyama
Lecture 1 Software Visualization 29
NV3D – [Ware ’97]
Lecture 1 Software Visualization 30
Geon – [Ware ’00]
top related