Visualization. CS351 - Software Engineering (AY2004)2 Program visualization Debugging programs without the aid of support tools can be extremely difficult.

Slides:



Advertisements
Similar presentations
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Advertisements

1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 11 Designing for Usability I.
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
CMPUT 301: Lecture 25 Graphic Design Lecturer: Martin Jagersand Department of Computing Science University of Alberta Notes based on previous courses by.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 15Slide 1 User interface design l Designing effective interfaces for software systems.
1 Keeping Track: Coordinating Multiple Representations in Programming Pablo Romero, Benedict du Boulay & Rudi Lutz IDEAs Lab, Human Centred Technology.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Level > Next Level > …. > Crumb Trail (Hansel & Grettel) Bread Crumb Trail.
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
Software Faults and Fault Injection Models --Raviteja Varanasi.
1. Human – the end-user of a program – the others in the organization Computer – the machine the program runs on – often split between clients & servers.
PROGRAMMING LANGUAGES The Study of Programming Languages.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
People in multimedia Systems. Multimedia Systems Multimedia systems are designed by a team of people who specialise in a particular field, For example:
1 Shawlands Academy Higher Computing Software Development Unit.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Programming Translators.
An Introduction to Software Architecture
11 C H A P T E R Artificial Intelligence and Expert Systems.
The Program Development Cycle
CSC-115 Introduction to Computer Programming
Software Engineering Chapter 16 User Interface Design Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
1 Sobah Abbas Petersen Adjunct Associate Professor TDT4252 Modelling of Information Systems Advanced Course Lecture 6: Process Modelling.
©2001 Southern Illinois University, Edwardsville All rights reserved. Today Fun with Icons Thursday Presentation Lottery Q & A on Final Exam Course Evaluations.
Principles of Program Design What should be taught in core programming curricula.
Chapter 12 Computer Programming. Chapter Contents Chapter 12: Computer Programming 2  Section A: Programming Basics  Section B: Procedural Programming.
SEMINAR WEI GUO. Software Visualization in the Large.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
The Software Development Process
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
“Architecture” The outcome of top-level design, reflecting principal design decisions Can (and should) be modified and updated Analogous to architecture.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Screen Readers Cannot See (Ontology Based Semantic Annotation for Visually impaired Web users) Yeliz Yesilada, Simon Harper, Carole Goble and Robert Stevens.
Status Reports: Measuring against Mission National Institute of Standards and Technology U.S. Department of Commerce 1 Technology Program Evaluation: Methodologies.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Prof. James A. Landay University of Washington Winter 2007 Video Prototyping January 22, 2007.
DOCUMENTATION REF: Essentials of IT (Hamilton et al) Chapter 1.
Boxes. boxes- learning targets o I will be able to display buttons (boxes) o I will be able to organize boxes o I will be able to create an animation.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
6. (supplemental) User Interface Design. User Interface Design System users often judge a system by its interface rather than its functionality A poorly.
Sub-fields of computer science. Sub-fields of computer science.
Human Computer Interaction Lecture 21 User Support
Planning Interactive Multimedia
Types for Programs and Proofs
Testing and Debugging PPT By :Dr. R. Mall.
Unified Modeling Language
Chapter 8 – Software Testing
Collaboration Spotting: Visualisation of LHCb process data
1. Introduction to Visual Basic
Maintaining software solutions
Human Complexity of Software
Software testing and configuration : Embedded software testing
User interface design.
On the notion of Variability in Software Product Lines
Presentation transcript:

Visualization

CS351 - Software Engineering (AY2004)2 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 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)3 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)4 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 short-term memory.

CS351 - Software Engineering (AY2004)5 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)6 Program visualization model Programmer’s mental model Executing program model Static modelDynamic model Run-time control Correspondence searching Programmer’s control Program visualisation

CS351 - Software Engineering (AY2004)7 Basic properties Three basic properties of software can be visualized: –Software structure. –Run-time behaviour. –The code itself.

CS351 - Software Engineering (AY2004)8 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)9 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)10 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)11 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)12 Taxonomy Visualisation Hardware Architecture Software UniprocessorMultiprocessor Operating Systems Programming Language Application ParallelDistributed

CS351 - Software Engineering (AY2004)13 Sample view

CS351 - Software Engineering (AY2004)14 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)15 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)16 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).