• No results found

An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview

N/A
N/A
Protected

Academic year: 2021

Share "An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

An Introduction to Software

An Introduction to Software

Visualization

Visualization

Dr. Jonathan I. Maletic

Software DevelopMent Laboratory <SDML>

Department of Computer Science

Kent State University

Lecture 1 Software Visualization 2

Course Overview

• Introductory Lectures

– Software visualization – terminology, dimensions and perspectives

– Information visualization – an overview – Program analysis – the input to the problem – Program understanding/comprehension – the model

• Papers: Information Visualization

– 20-25 papers

• Papers: Software Visualization

– 20-25 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 human-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

Software Visualization Software System (Program) Visualization (Software) Data

Visualization VisualizationAlgorithm Programming Visual Languages

Visualization of Software Structures

Visualization of

Source Code Visualization of Trace Execute Data

Visualization of Version Control

(2)

Lecture 1 Software Visualization 5

Visualizing Software

Visual Programming Algorithm Animation

Software 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

(3)

Lecture 1 Software Visualization 9

Reference Model for Visualization

Human Perceiver Raw Data Data Tables Visual

Structures Views Data Transformations Visual Mappings View Transformations

Human Interaction Human Interaction

Raw Data: idiosyncratic formats

Data Tables: relations (cases by variables) + meta data Visual Structures: spatial substrates + marks + graphical properties Views: 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

(4)

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)

(5)

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 by Pyramid Systems

& VRCO

Images from EVL

Lecture 1 Software Visualization 20

The ImmersaDesk I, II, III

(6)

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

(7)

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

(8)

Lecture 1 Software Visualization 29

NV3D – [Ware ’97]

Lecture 1 Software Visualization 30

References

Related documents