Visualization. Program visualization



Similar documents
Software Visualization

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

A static representation for ToonTalk programs

HPC Wales Skills Academy Course Catalogue 2015

Narcissus: Visualising Information

KS3 Computing Group 1 Programme of Study hours per week

Preserving Message Integrity in Dynamic Process Migration

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

Software Visualization Tools for Component Reuse

Program Visualization The State of the Art

Performance Monitoring and Visualization of Large-Sized and Multi- Threaded Applications with the Pajé Framework

An Instructional Aid System for Driving Schools Based on Visual Simulation

Visualization methods for patent data

Hadoop Technology for Flow Analysis of the Internet Traffic

INFORMING A INFORMATION DISCOVERY TOOL FOR USING GESTURE

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

PROGRAMMES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE SYSTEMS (Note: This document is for polytechnic students admitted in AY2004-5)

CRANFIELD UNIVERSITY. João Pedro Rodrigues de Almeida. Visualising defects in source code

A Distributed Render Farm System for Animation Production

HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

The functions of system LSI become more and more complicated

Course Structure of Three Year Degree B.A Programme in Computer Application under Semester System of Dibrugarh University (General Programme)

How To Balance In Cloud Computing

How To Visualize Performance Data In A Computer Program

Wilson Area School District Planned Course Guide

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

A Visualization Method to Support Impacts Analysis in Program Understanding

CS 6795 Introduction to Cognitive Science Spring 2012 Homework Assignment 3

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability

STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM

1.1 Difficulty in Fault Localization in Large-Scale Computing Systems

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

How To Understand The Concept Of A Distributed System

Topic Maps Visualization

SOFTVIZ: A RUNTIME SOFTWARE VISUALIZATION ENVIRONMENT. Benjamin Kurtz. A Thesis. Submitted to the Faculty. of the WORCESTER POLYTECHNIC INSTITUTE

A Visualization Technique for Monitoring of Network Flow Data

A General Framework for Overlay Visualization

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

Interactive Data Mining and Visualization

A Visual Language Based System for the Efficient Management of the Software Development Process.

Big Data: Rethinking Text Visualization

34 Not all Visualizations are Useful: The Need to Target User Needs when Visualizing Object Oriented Software

Text Mining Approach for Big Data Analysis Using Clustering and Classification Methodologies

CREATIVE COMPUTER GRAPHICS II

Application of Information Visualization to the Analysis of Software Release History

Process Mining in Big Data Scenario

Introduction to Simulink & Stateflow. Coorous Mohtadi

A Tool for Visual Understanding of Source Code Dependencies

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

Complex Network Visualization based on Voronoi Diagram and Smoothed-particle Hydrodynamics

A Survey on Load Balancing and Scheduling in Cloud Computing

Oracle8i Spatial: Experiences with Extensible Databases

GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Chapter 5 Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization

Exploratory Data Analysis for Ecological Modelling and Decision Support

Data Visualization. Data Visualisation telling your story in pictures

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

NakeDB: Database Schema Visualization

GSPIM: Graphical Visualization Tool for MIPS Assembly

A Real Time, Object Oriented Fieldbus Management System

A SEAMLESS INTEGRATION OF INTO A VISUAL PROGRAMMING LANGUAGE

CAD and Creativity. Contents

Bob Boothe. Education. Research Interests. Teaching Experience

RESEARCH ON THE FRAMEWORK OF SPATIO-TEMPORAL DATA WAREHOUSE

Dynamic Visualization and Time

Application Note. Example of user log on Magelis HMI with XB5S5B2L2 biometric switch. Advanced Technical Support - Brazil. Version: 1.

The STC for Event Analysis: Scalability Issues

Exploiting Dynamic Information in IDEs Eases Software Maintenance

MEng, BSc Applied Computer Science

DRAFT 2/3/2016. Use this link (goo.gl/1ar12y) to access the recording of the review period launch webinar.

Interaction and Visualization Techniques for Programming

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Final Year Projects at itm. Topics 2010/2011

SignalDraw: GUI Tool For Generating Pulse Sequences

BSC vision on Big Data and extreme scale computing

Map-Parallel Scheduling (mps) using Hadoop environment for job scheduler and time span for Multicore Processors

PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN

What is Multimedia? Derived from the word Multi and Media

Human-Computer Interaction: Input Devices

SPATIAL DATA CLASSIFICATION AND DATA MINING

What makes a good coder and technology user at Mountfields Lodge School?

Visual Analysis Tool for Bipartite Networks

A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems*

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

KNOWLEDGE ORGANIZATION

Describe the process of parallelization as it relates to problem solving.

Developing visualisations for spreadsheet formulae: towards increasing the accessibility of science, technology, engineering and maths subjects

The University of Jordan

Control 2004, University of Bath, UK, September 2004

Visualization Techniques in Data Mining

可 视 化 与 可 视 计 算 概 论. Introduction to Visualization and Visual Computing 袁 晓 如 北 京 大 学

NASSI-SCHNEIDERMAN DIAGRAM IN HTML BASED ON AML

Chapter 13: Program Development and Programming Languages

DIPLOMA OF GRAPHIC DESIGN (ADVERTISING)

MEng, BSc Computer Science with Artificial Intelligence

Visualizing Object-Oriented Software in Virtual Reality

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

JOURNAL OF OBJECT TECHNOLOGY

Transcription:

Visualization Program visualization Debugging programs without the aid of support tools can be extremely difficult. See My Hairest Bug War Stories, Marc Eisenstadt, Communications of the ACM, Vol 40, No 4, April 1997, pp 30-37. This article makes it clear that the potential sources for bugs in software is enormous and that tracking them down is both costly and time consuming Clearly it is preferable that we do not put bugs in our code, but we are all human... Software visualization, or program visualization, can assist programmers to better debug, maintain and understand the behaviour of their programs and thereby track down bugs through the use of graphically presented information. Program visualisation is a technique to manage complexity. CS351 - Software Engineering (AY2004) 2 1

Program visualization The paper Aspects and Taxonomy of Program Visualisation, M.J. Oudshoorn, H. Widjaja, and S.K. Ellershaw, in Software Visualisation, P. Eades and K. Zhang (Eds), World Scientific, 1996, pp 3-26, provides an overview of the current state of the art with respect to program visualization. We aim to use pictures to convey meaning clearly and succinctly. Humans perceive pictorial representations more quickly than textual ones. Aim is to help programmers synchronise their mental model of the executing program with reality. Knowledge of code decays as the software ages and the original programmers and design team move on. CS351 - Software Engineering (AY2004) 3 Principle of immediacy Minimise the separation between cause and effect. This can occur in at least three dimensions: temporal, space and semantics. ( Debugging and the Experience of Immediacy, D. Ungar, H. Lieberman and C. Fry, Communications of the ACM, Vol 40, No 4, April 1997, pp 38 43). Temporal immediacy In debugging it is important to reason backwards from effects to causes. Temporal immediacy helps track down faults. Spatial immediacy Physical distance between causally related events is minimised. Events widely separated by space on the screen require users to conscientiously link them, forcing them to shift attention and putting additional strain on their shortterm memory. CS351 - Software Engineering (AY2004) 4 2

Principle of immediacy Semantic immediacy The conceptual distance (eg., number of mouse clicks) to get between semantically related pieces of information is minimised. These issues of immediacy are also relevant in program visualization. CS351 - Software Engineering (AY2004) 5 Program visualization model Static model Run-time control Dynamic model Programmer s control Program visualisation Programmer s mental model Correspondence searching Executing program model CS351 - Software Engineering (AY2004) 6 3

Basic properties Three basic properties of software can be visualized: Software structure. Run-time behaviour. The code itself. CS351 - Software Engineering (AY2004) 7 Ideals The ideals of a visualization system are: From the system s perspective: Scalability. Extensibility. Portability. From the user s perspective: Minimal disturbances to the user s program. Little or no programmer intervention. Handle real-world problems. Present the right things to the user. CS351 - Software Engineering (AY2004) 8 4

The right things Provide multiple views of multiple facets of the program. Give information to the user rather than rationalise it. Let the user discover things about the program. Appear aesthetically pleasing, but not use graphics as mere decorations. Organise information appropriately - hierarchical views, for example. Provide the user with appropriate control over the views to navigate quickly. CS351 - Software Engineering (AY2004) 9 Mechanisms Instrumentation and data collection are the first steps. Instrumentation is often done through the insertion of probe statements into the user code. This can cause perturbations in the behaviour and timings of the user code this is inevitable, but should be minimised. Visualizations may be provided to the user on-the-fly or via a post-mortem analysis. Post-mortem analysis allows the collected data to be manipulated before it is displayed to the user (eg., reordering, clustering, ) CS351 - Software Engineering (AY2004) 10 5

Displays May be related to the static structure of the code. Helps the user relate dynamic behaviour to the static code. Graph-based Generally used for simulating, and representing program activities. Statistics-based Typically used for showing performance data. Source-code related The source code structure is presented through flowcharts and Nasi-Schneiderman diagrams. CS351 - Software Engineering (AY2004) 11 Taxonomy Visualisation Hardware Architecture Software Uniprocessor Multiprocessor Operating Systems Programming Language Application Distributed Parallel CS351 - Software Engineering (AY2004) 12 6

Sample view CS351 - Software Engineering (AY2004) 13 Software visualization for debugging Software Visualisation for Debugging, R. Baecker, C. DiGiano and A. Marcus, Communications of the ACM, Vol 40, No 4, April 1997, pp 44 54. In addition to graphical representation of program behaviour, animation can be used to demonstrate algorithm behaviour. This typically requires the programmer to manually animate the algorithm! Auralisation may be another technique which can be employed to help improve program understanding??? CS351 - Software Engineering (AY2004) 14 7

Software visualisation for software engineering Software Visualisation in the Large, T. Ball, S.G. Eick, IEEE Computer, April 1996, pp 33 43. There is a need to visualize more than just code and behaviour in order to understand large and complex software systems. There is no reason why program visualization techniques cannot be applied to other aspects of the software engineering process: When each line was last modified. Which programmer wrote which sections of code. Where bugs and bug fixes are located. Complexity analysis (eg., conditional nesting complexity). CS351 - Software Engineering (AY2004) 15 Software visualization for software engineering Code profiling. Execution hot spots. Dynamic program slicing (ie., determine the code that impacts on a statement or procedure call within a particular program execution). CS351 - Software Engineering (AY2004) 16 8