An Introduction to Software Visualization
description
Transcript of An Introduction to Software Visualization
![Page 1: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/1.jpg)
An Introduction to Software An Introduction to Software Visualization Visualization
Dr. Jonathan I. MaleticSoftware DevelopMent Laboratory <SDML>
Department of Computer ScienceKent State University
![Page 2: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/2.jpg)
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
![Page 3: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/3.jpg)
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 ].
![Page 4: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/4.jpg)
Lecture 1 Software Visualization 4
Types of Software VisualizationSoftware
Visualization
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
![Page 5: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/5.jpg)
Lecture 1 Software Visualization 5
Visualizing Software
Visual Programming
AlgorithmAnimationSoftware Data
Visualization
Software System Visualization
Exclude
![Page 6: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/6.jpg)
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
![Page 7: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/7.jpg)
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.
![Page 8: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/8.jpg)
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
![Page 9: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/9.jpg)
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].
![Page 10: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/10.jpg)
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?
![Page 11: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/11.jpg)
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)
![Page 12: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/12.jpg)
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
![Page 13: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/13.jpg)
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.
![Page 14: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/14.jpg)
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
![Page 15: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/15.jpg)
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.
![Page 16: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/16.jpg)
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
![Page 17: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/17.jpg)
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)
![Page 18: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/18.jpg)
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
![Page 19: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/19.jpg)
Lecture 1 Software Visualization 19
The CAVECommercialized byPyramid Systems
&VRCO
Images from EVL
![Page 20: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/20.jpg)
Lecture 1 Software Visualization 20
The ImmersaDesk I, II, III
Images from EVL
![Page 21: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/21.jpg)
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
![Page 22: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/22.jpg)
Lecture 1 Software Visualization 22
IMSOvision [Maletic 01]
![Page 23: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/23.jpg)
Lecture 1 Software Visualization 23
sv3D [Marcus, Feng, Maletic 02]
![Page 24: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/24.jpg)
Lecture 1 Software Visualization 24
DJVis [Smith & Munro 02]
![Page 25: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/25.jpg)
Lecture 1 Software Visualization 25
Revision Towers [Taylor & Munro 02]
![Page 26: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/26.jpg)
Lecture 1 Software Visualization 26
Acacia: CIAO for C++ [AT&T Research]
![Page 27: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/27.jpg)
Lecture 1 Software Visualization 27
SeeSoft -Code Version History [Eick96]
![Page 28: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/28.jpg)
Lecture 1 Software Visualization 28
SHriMP [Storey01]
Grid
Spring
Sugiyama
![Page 29: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/29.jpg)
Lecture 1 Software Visualization 29
NV3D – [Ware ’97]
![Page 30: An Introduction to Software Visualization](https://reader033.fdocuments.net/reader033/viewer/2022051700/56816341550346895dd3d0e4/html5/thumbnails/30.jpg)
Lecture 1 Software Visualization 30
Geon – [Ware ’00]