Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University."— Presentation transcript:

1 An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University

2 Lecture 1Software Visualization2 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

3 Lecture 1Software Visualization3 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 ].

4 Lecture 1Software Visualization4 Types of Software Visualization Software 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

5 Lecture 1Software Visualization5 Visualizing Software Visual Programming Algorithm Animation Software Data Visualization Software System Visualization Exclude

6 Lecture 1Software Visualization6 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

7 Lecture 1Software Visualization7 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.

8 Lecture 1Software Visualization8 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

9 Lecture 1Software Visualization9 Reference Model for Visualization Human Perceiver Raw DataData TablesVisual Structures Views Data Transformations Visual Mappings View Transformations 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].

10 Lecture 1Software Visualization10 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?

11 Lecture 1Software Visualization11 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)

12 Lecture 1Software Visualization12 Specific Tasks Development: –Design, Product evolution –Programming –Testing, Debugging Maintenance: –Fault detection –Reverse engineering, Re-engineering –Impact analysis Management –Version control –Resource allocation

13 Lecture 1Software Visualization13 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.

14 Lecture 1Software Visualization14 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

15 Lecture 1Software Visualization15 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.

16 Lecture 1Software Visualization16 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

17 Lecture 1Software Visualization17 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)

18 Lecture 1Software Visualization18 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

19 Lecture 1Software Visualization19 The CAVE Commercialized by Pyramid Systems & VRCO Images from EVL

20 Lecture 1Software Visualization20 The ImmersaDesk I, II, III Images from EVL

21 Lecture 1Software Visualization21 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

22 Lecture 1Software Visualization22 IMSOvision [Maletic 01]

23 Lecture 1Software Visualization23 sv3D [Marcus, Feng, Maletic 02]

24 Lecture 1Software Visualization24 DJVis [Smith & Munro 02]

25 Lecture 1Software Visualization25 Revision Towers [Taylor & Munro 02]

26 Lecture 1Software Visualization26 Acacia: CIAO for C++ [AT&T Research]

27 Lecture 1Software Visualization27 SeeSoft -Code Version History [Eick96]

28 Lecture 1Software Visualization28 SHriMP [Storey01] Grid Spring Sugiyama

29 Lecture 1Software Visualization29 NV3D – [Ware ’97]

30 Lecture 1Software Visualization30 Geon – [Ware ’00]


Download ppt "An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University."

Similar presentations


Ads by Google