An Introduction to Software Course Overview

Visualization • Introductory Lectures – Software – terminology, dimensions and perspectives – Information visualization – an overview Dr. Jonathan I. Maletic – Program analysis – the input to the problem – Program understanding/comprehension – the model Software DevelopMent Laboratory • Papers: Information Visualization Department of Computer Science – 20-25 papers Kent State University • Papers: Software Visualization – 20-25 papers

Lecture 1 Software Visualization 2

What is Software Visualization? Types of Software Visualization

Software “Software visualization is the use of the crafts Visualization of typography, , animation and cinematography with modern human- Software System (Software) Data Algorithm Visual (Program) Visualization Visualization Programming computer interaction and computer Visualization Languages graphics technology to facilitate both the human understanding and effective use of Visualization of Visualization of Software Source Code Visualization Visualization of Structures of Trace Version Control computer software.” [Price ’93, ‘98 ]. Execute Data Data

Lecture 1 Software Visualization 3 Lecture 1 Software Visualization 4

1 Visualizing Software Applied to Large-scale Software

We focus on visualization environments, Software System Visual techniques, and metaphors that support: Visualization Programming – Maintenance, re-engineering, reverse engineering Algorithm – Software development Software Data Animation – Project management Visualization – Understanding of large scale software systems Exclude

Lecture 1 Software Visualization 5 Lecture 1 Software Visualization 6

Taxonomies for Software Specifics of the Problem Domain Visualization

• Visualize design and architectural information • Existing taxonomies (Price, Roman, Myers, • Reduces, in part, to (large) connected graphs Stasko) are very broad and detailed • Nodes represent complex entities i.e., software module, class, function, component, subsystem, • Need to emphasize software engineering etc. tasks involved in building and maintaining • Edges represent abstract relationships between the large-scale software systems nodes i.e., aggregation, association, inheritance, • No single software visualization tool can invocation, etc. address all SE tasks

Lecture 1 Software Visualization 7 Lecture 1 Software Visualization 8

2 Task Oriented View for Maintenance Reference Model for Visualization and Development of Large Systems Data Visual View Transformations Mappings Transformations Raw Data Data Tables Visual Views Structures Task – why is the visualization needed? Audience – who uses the visualization?

Human Interaction Human Human Interaction Perceiver Target – what to represent? Raw Data: idiosyncratic formats Data Tables: relations (cases by variables) + meta data Representation – how to represent? Visual Structures: spatial substrates + marks + graphical properties Views: graphical parameters (position, scaling, clipping, etc.) Medium – where to represent?

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 9 Lecture 1 Software Visualization 10

Task Specific Tasks

• Support for large scale, industrial-size, • Development: – Design, Product evolution software systems and processes. – Programming • Supports the understanding/comprehension – Testing, Debugging • Maintenance: (cognitive) process – Fault detection – Reverse engineering, Re-engineering • This is the driving force behind – Impact analysis classification of software visualization • Management systems (given our ) – Version control – Resource allocation

Lecture 1 Software Visualization 11 Lecture 1 Software Visualization 12

3 Audience Target

• Experienced developers can handle multiple • Static features (relationships) abstraction levels – Design and architectural level information – they need access to both design- and code-level – Source code level information information, as well as to the dynamic features. – Documentation • Project managers • Dynamic features (behavior) – they need access to design- and process-level – Control and data flow at execution information. – Trace information – they might not be skilled programmers.

Lecture 1 Software Visualization 13 Lecture 1 Software Visualization 14

Representation Additional Features of Representation

• User centric (versus compiler centric) – the • Support multiple levels of abstraction: visualization should present features of the – Source code software in concepts from the user’s universe. –Design • Cognitive based - the building blocks of the visual language must to natural concepts and – Design Patterns abstractions – Architecture • Does not overload the user – each element should • Mapping between abstraction levels (e.g., have multiple attributes, but there should be a drill down) limit on the diversity. This limit should be driven • Support navigation within the visualization by cognitive factors and the medium.

Lecture 1 Software Visualization 15 Lecture 1 Software Visualization 16

4 New Types of Software Visualization Mediums for Software Visualization Mediums • Paper Documents • More real estate – Multiple displays, large displays – 2D, poor navigation, static • Support for collaborative problem solving • White board • Utilize: –2D, static –3D, 3D+ • The Desktop Display – Virtual Reality (combine stereopsis with motion), Immersive Environments – High resolution but limited display area – Stereo displays, Multi-resolution displays – 2D+ (for the most part) – Multi-type medium (e.g., laptop + VE) • Provide navigational controls Lecture 1 Software Visualization 17 Lecture 1 Software Visualization 18

The CAVE

Commercialized by The ImmersaDesk I, II, III Pyramid Systems & VRCO

Images from EVL Images from EVL

Lecture 1 Software Visualization 19 Lecture 1 Software Visualization 20

5 IMSOvision [Maletic 01] 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 21 Lecture 1 Software Visualization 22

sv3D [Marcus, Feng, Maletic 02] DJVis [Smith & Munro 02]

Lecture 1 Software Visualization 23 Lecture 1 Software Visualization 24

6 Acacia: CIAO for C++ [AT&T Revision Towers [Taylor & Munro 02] Research]

Lecture 1 Software Visualization 25 Lecture 1 Software Visualization 26

SeeSoft -Code Version History [Eick96] SHriMP [Storey01]

Sugiyama Grid Spring

Lecture 1 Software Visualization 27 Lecture 1 Software Visualization 28

7 NV3D – [Ware ’97] Geon – [Ware ’00]

Lecture 1 Software Visualization 29 Lecture 1 Software Visualization 30

8