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



Similar documents
What is Visualization? Information Visualization An Overview. Information Visualization. Definitions

A Tool for Visual Understanding of Source Code Dependencies

Software Analysis Visualization

Development of a 3D tool for visualization of different software artifacts and their relationships. David Montaño Ramírez

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Spring 2014: Graphic Design

A Visualization Method to Support Impacts Analysis in Program Understanding

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

A Survey Paper on Software Architecture Visualization

Software Design Document (SDD) Template

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

The Class Blueprint A Visualization of the Internal Structure of Classes

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Fall 2014: Graphic Design

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

CodeCrawler Lessons Learned in Building a Software Visualization Tool

Visualization of Software

Component visualization methods for large legacy software in C/C++

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Software Visualization Tools for Component Reuse

To introduce software process models To describe three generic process models and when they may be used

Announcements. Project status demo in class

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

One LAR Course Credits: 3. Page 4

The value of modeling

An Overview of 3D Software Visualization

School of Computer Science

DATA VISUALIZATION GABRIEL PARODI STUDY MATERIAL: PRINCIPLES OF GEOGRAPHIC INFORMATION SYSTEMS AN INTRODUCTORY TEXTBOOK CHAPTER 7

Automated Test Approach for Web Based Software

Animating Programs and Students in the Laboratory

Degree in Art and Design

Computer Science Electives and Clusters

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

DIABLO VALLEY COLLEGE CATALOG

PCCC PCCC Course Description

Topic Maps Visualization

Professional Organization Checklist for the Computer Information Systems Curriculum

Program Understanding in Software Engineering

DESIGN. College of the Arts. Career Possibilities. Undergraduate Programs. Bachelor of Arts in Design (120 Units) 342 Design CSULB Catalog

This version of course will be available for Fall 2015 term. New York City College of Technology The City University of New York

Computer Science Course Descriptions Page 1

REGULATIONS FOR THE DEGREE OF MASTER OF SCIENCE IN COMPUTER SCIENCE (MSc[CompSc])

GCE APPLIED ICT A2 COURSEWORK TIPS

Division of Mathematical Sciences

ADVANCED VISUALIZATION

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

A Framework of Model-Driven Web Application Testing

GRD100 Graphic Design Principles I

Introduction to Big Data Analytics p. 1 Big Data Overview p. 2 Data Structures p. 5 Analyst Perspective on Data Repositories p.

second level university master Academic Year 2013/14 QoLexity Measuring, Monitoring and Analysis of Quality of Life and its Complexity

Interactive Multimedia Courses-1

An example. Visualization? An example. Scientific Visualization. This talk. Information Visualization & Visual Analytics. 30 items, 30 x 3 values

Chapter 5. Warehousing, Data Acquisition, Data. Visualization

Faculty Dr. Arafat Al-Naim, Dr. Rania Fawzi, Dr. Mohamed Galib, Dr. Majed Kamal Eldeen, Dr. Mohamed Sedeeq, Moh d Musa (M.A.)

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS

Challenges and Opportunities for formal specifications in Service Oriented Architectures

2667A - Introduction to Programming

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Masters of Science in Software & Information Systems

The course: An Introduction to Information Visualization Techniques for Exploring Large Database

Time Series Data Visualization

Interaction and Visualization Techniques for Programming

Interactive Data Mining and Visualization

UniGR Workshop: Big Data «The challenge of visualizing big data»

Developing in the MDA Object Management Group Page 1

UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE

Program Visualization for Programming Education Case of Jeliot 3

The Service Revolution software engineering without programming languages

Software Development Training Camp 1 (0-3) Prerequisite : Program development skill enhancement camp, at least 48 person-hours.

Course DSS. Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization

Development (60 ЕCTS)

Transcription:

An Introduction to Software Dr. Jonathan I. Maletic Software DevelopMent Laboratory <SDML> Department of Computer Science Kent State University 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 20-25 papers Papers: Software 20-25 papers Lecture 1 Software 2 What is Software? Software visualization is the use of the crafts of typography, graphic design, animation and cinematography with modern humancomputer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software. [Price 93, 98 ]. Types of Software of Software Structures Software System (Program) of Source Code (Software) Data Software of Trace Execute Data Algorithm of Version Control Data Visual Programming Languages Lecture 1 Software 3 Lecture 1 Software 4

Visualizing Software Applied to Large-scale Software Software System Software Data Visual Programming Algorithm Animation Exclude 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 5 Lecture 1 Software 6 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. Taxonomies for Software 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 1 Software 7 Lecture 1 Software 8

Reference Model for Data Transformations Raw Data Data Tables Visual Structures Human Interaction Visual Mappings Human Perceiver 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.) Views can be described as a mapping of data to visual form that supports human interaction for making visual sense [Card 99]. Lecture 1 Software 9 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 10 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) Specific Tasks Development: Design, Product evolution Programming Testing, Debugging Maintenance: Fault detection Reverse engineering, Re-engineering Impact analysis Management Version control Resource allocation Lecture 1 Software 11 Lecture 1 Software 12

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 13 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 14 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 15 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 1 Software 16

Mediums for Software 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 17 New Types of Software 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 18 The CAVE Commercialized by Pyramid Systems & VRCO The ImmersaDesk I, II, III Images from EVL Lecture 1 Software 19 Images from EVL Lecture 1 Software 20

Research Directions IMSOvision [Maletic 01] 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 21 Lecture 1 Software 22 sv3d [Marcus, Feng, Maletic 02] DJVis [Smith & Munro 02] Lecture 1 Software 23 Lecture 1 Software 24

Revision Towers [Taylor & Munro 02] Acacia: CIAO for C++ [AT&T Research] Lecture 1 Software 25 Lecture 1 Software 26 SeeSoft -Code Version History [Eick96] SHriMP [Storey01] Grid Spring Sugiyama Lecture 1 Software 27 Lecture 1 Software 28

NV3D [Ware 97] Geon [Ware 00] Lecture 1 Software 29 Lecture 1 Software 30