1 / 30

An Introduction to Software Visualization

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

kelli
Download Presentation

An Introduction to Software Visualization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 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 ]. Software Visualization

  4. Types of Software Visualization Software Visualization Software System (Program) Visualization Algorithm Visualization Visual Programming Languages (Software) Data Visualization Visualization of Source Code Visualization of Software Structures Visualization of Trace Execute Data Visualization of Version Control Data Software Visualization

  5. Visualizing Software Software System Visualization Visual Programming Algorithm Animation Software Data Visualization Exclude 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 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. 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 Software Visualization

  9. Data Transformations Visual Mappings View Transformations Raw Data Data Tables Visual Structures Views Human Interaction Human Perceiver Human Interaction Reference Model for Visualization 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]. 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? 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) 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 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. 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 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. 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 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) 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 Software Visualization

  19. The CAVE Commercialized by Pyramid Systems & VRCO Images from EVL Software Visualization

  20. The ImmersaDesk I, II, III Images from EVL 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 Software Visualization

  22. IMSOvision [Maletic 01] Software Visualization

  23. sv3D [Marcus, Feng, Maletic 02] Software Visualization

  24. DJVis [Smith & Munro 02] Software Visualization

  25. Revision Towers [Taylor & Munro 02] Software Visualization

  26. Acacia: CIAO for C++ [AT&T Research] Software Visualization

  27. SeeSoft -Code Version History [Eick96] Software Visualization

  28. SHriMP [Storey01] Sugiyama Grid Spring Software Visualization

  29. NV3D – [Ware ’97] Software Visualization

  30. Geon – [Ware ’00] Software Visualization

More Related