an introduction to software visualization

30
An Introduction to An Introduction to Software Visualization Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory <SDML> Department of Computer Science Kent State University

Upload: kelli

Post on 23-Feb-2016

47 views

Category:

Documents


0 download

DESCRIPTION

An Introduction to Software Visualization . Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University. Course Overview. Introduction Software visualization – terminology, dimensions and perspectives - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Introduction to Software Visualization

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

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

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

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

Lecture 1 Software Visualization 5

Visualizing Software

Visual Programming

AlgorithmAnimationSoftware Data

Visualization

Software System Visualization

Exclude

Page 6: An Introduction to Software Visualization

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 1 Software Visualization 19

The CAVECommercialized byPyramid Systems

&VRCO

Images from EVL

Page 20: An Introduction to Software Visualization

Lecture 1 Software Visualization 20

The ImmersaDesk I, II, III

Images from EVL

Page 21: An Introduction to Software Visualization

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

Lecture 1 Software Visualization 22

IMSOvision [Maletic 01]

Page 23: An Introduction to Software Visualization

Lecture 1 Software Visualization 23

sv3D [Marcus, Feng, Maletic 02]

Page 24: An Introduction to Software Visualization

Lecture 1 Software Visualization 24

DJVis [Smith & Munro 02]

Page 25: An Introduction to Software Visualization

Lecture 1 Software Visualization 25

Revision Towers [Taylor & Munro 02]

Page 26: An Introduction to Software Visualization

Lecture 1 Software Visualization 26

Acacia: CIAO for C++ [AT&T Research]

Page 27: An Introduction to Software Visualization

Lecture 1 Software Visualization 27

SeeSoft -Code Version History [Eick96]

Page 28: An Introduction to Software Visualization

Lecture 1 Software Visualization 28

SHriMP [Storey01]

Grid

Spring

Sugiyama

Page 29: An Introduction to Software Visualization

Lecture 1 Software Visualization 29

NV3D – [Ware ’97]

Page 30: An Introduction to Software Visualization

Lecture 1 Software Visualization 30

Geon – [Ware ’00]