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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Programming Paradigms and languages
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Unified Modeling Language
Object-Oriented Analysis and Design
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 SWE Introduction to Software Engineering Lecture 5.
Software Visualization A Task Oriented View. The Papers A Task Oriented View of Software Visualization Maletic J., Marcus A., Collard M. (2002) Strata-Various:
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
© Copyright Eliyahu Brutman Programming Techniques Course.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
WPI Center for Research in Exploratory Data and Information Analysis From Data to Knowledge: Exploring Industrial, Scientific, and Commercial Databases.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
Lesson 7 Guide for Software Design Description (SDD)
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
` Tangible Interaction with the R Software Environment Using the Meuse Dataset Rachel Bradford, Landon Rogge, Dr. Brygg Ullmer, Dr. Christopher White `
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction To System Analysis and Design
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
CHAPTER TEN AUTHORING.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Introduction to Software Engineering Lecture 1.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
INTRODUCTION TO GIS  Used to describe computer facilities which are used to handle data referenced to the spatial domain.  Has the ability to inter-
Chapter 10. The Explorer System in Cognitive Systems, Christensen et al. Course: Robots Learning from Humans On, Kyoung-Woon Biointelligence Laboratory.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Damian Gordon.  This module will serve as an introduction to Operating Systems.  It provides an overview of the major components of a computer system.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Toward product architecture oriented requirements analysis for product line development in systems engineering Kei Kurakawa Nara Institute of Science and.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Introduction to OOAD and UML
UML Diagrams By Daniel Damaris Novarianto S..
Main issues: • What do we want to build • How do we write this down
INTRODUCTION TO GEOGRAPHICAL INFORMATION SYSTEM
Object-Oriented Analysis and Design
Complexity Time: 2 Hours.
Introduction to Unified Modeling Language (UML)
Business System Development
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
UML: Unified modeling language
Human Complexity of Software
Analysis models and design models
Systems Architecture & Design Lecture 3 Architecture Frameworks
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
From Use Cases to Implementation
Presentation transcript:

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

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

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

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

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

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

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.

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

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

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?

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)

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

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.

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

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.

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

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)

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

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

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

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

Lecture 1Software Visualization22 IMSOvision [Maletic 01]

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

Lecture 1Software Visualization24 DJVis [Smith & Munro 02]

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

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

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

Lecture 1Software Visualization28 SHriMP [Storey01] Grid Spring Sugiyama

Lecture 1Software Visualization29 NV3D – [Ware ’97]

Lecture 1Software Visualization30 Geon – [Ware ’00]