SeeSys: Space-Filling Software Visualization Marla J. Baker Stephen G. Eick AT&T Bell Labs.

Slides:



Advertisements
Similar presentations
Individual Position Slides: Jonathan Katz (University of Maryland) (Apologies I can’t be here in person)
Advertisements

2-May-15 Version Control. 2 Why version control? Scenario 1: Your program is working You change “just one thing” Your program breaks You change it back.
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
FIT FIT1002 Computer Programming Unit 19 Testing and Debugging.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Space-Filling Software Visualization by Marla J. Baker and Stephen G. Eick Presented by: Brian Phillips February
Tree-Maps: A Space-Filling Approach to the Visualization of Hierarchical Information Structures Brian Johnson Ben Shneiderman (HCIL TR 91-06) Steve Betten.
Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The Table Lens: Merging Graphical and Symbolic Representations in an Interactive Focus + Context Visualization for Tabular Information R. Rao and S. K.
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
CS 61C L03 C Arrays (1) A Carle, Summer 2005 © UCB inst.eecs.berkeley.edu/~cs61c/su05 CS61C : Machine Structures Lecture #3: C Pointers & Arrays
1 SeeSys Visualization System ICS 280 Information Visualization 5/1/2001 By Wan Sze Ng ICS 280 Information Visualization 5/1/2001 By Wan Sze Ng.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Software Visualization Space Filling Approach & Semantic Zooming Siva Venkatachalam 03/23/2004.
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
PowerPoint Hints & Tips This example file gives you some examples of good and bad practice plus problem-solving tips.
EQ 10: Lifelong Learning By: Marcus Peyton. Part 1: Tools used in the course.
Tree-Maps: A Space-Filling Approach to the Visualization of Hierarchical Information Structures Presented by: Daniel Loewus-Deitch.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
PowerPoint Hints & Tips This example file gives you some examples of good and bad practice plus problem-solving tips.
Java: Chapter 1 Computer Systems Computer Programming II.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
Overview In this tutorial you will: learn different ways to conduct a web search learn how to save and print search results learn about social bookmarking.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Sakai Best Practices Alan Berg, Interim QA Director, Sakai Foundation Aaron Zeckoski, Software Engineer, Unicon and Maint Team Lead, Sakai.
Chapter 13 Recursion. Learning Objectives Recursive void Functions – Tracing recursive calls – Infinite recursion, overflows Recursive Functions that.
WEB DESIGN AND PROGRAMMING Advanced CSS Techniques.
KRUGLE BY: Roli Shrivastava. STORIES COLIN SAYS “ It was the first day at my new job and one my new colleagues told me that they were looking for a specific.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.
Systems Life Cycle. Know the elements of the system that are created Understand the need for thorough testing Be able to describe the different tests.
1 What to do before class starts??? Download the sample database from the k: drive to the u: drive or to your flash drive. The database is named “FormBelmont.accdb”
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
SEMINAR WEI GUO. Software Visualization in the Large.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Design Studies 20 ‘Show Off’ Project How to make a computer monitor In Google Sketchup By: Liam Jack.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Debugging of # P. Hristov 04/03/2013. Introduction Difficult problem – The behavior is “random” and depends on the “history” – The debugger doesn’t.
Lecture 10 Page 1 CS 111 Summer 2013 File Systems Control Structures A file is a named collection of information Primary roles of file system: – To store.
Software Engineering Saeed Akhtar The University of Lahore.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Version Control and SVN ECE 297. Why Do We Need Version Control?
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Supporting the design of interactive systems a perspective on supporting people’s work Hans de Graaff 27 april 2000.
Developing Smart objectives and literature review Zia-Ul-Ain Sabiha.
Part 1: Composition, Aggregation, and Delegation Part 2: Iterator COMP 401 Fall 2014 Lecture 10 9/18/2014.
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.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Human Computer Interaction Lecture 21 User Support
IL Marking Get out your CPU / Memory answers Swap with someone else
Engineering and Debugging an App Chapter 15
SwE 455 Program Slicing.
Design and Programming
Computer Science Testing.
OS – Memory Deallocation
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
Presentation transcript:

SeeSys: Space-Filling Software Visualization Marla J. Baker Stephen G. Eick AT&T Bell Labs

Description of the paper A concrete application of TreeMaps Influenced by Dynamic Queries as well Provides a high-level visualization of a large-scale software engineering project A fast way of getting an overview from a CVS repository? In other words: CVS for management This is a “real-world” application!

What questions do we want to answer visually? 1.Which subsystems are the largest? Where is new development activity? 2.Where are the large directories? How are the directories changing? 3.What proportion of work on a subsystem relates to fixing bugs as opposed to adding new functionality? 4.What components are candidates for code restructuring, based on their histories of required bug fixes? 5.How are the subsystems changing between releases?

What assumptions must we make about the information to be visualized? The Data must be: Quantitative Why? So we can easily compare different elements and display them with graphs. Additive. Why? So we can break a whole up into parts, and know that the sum of these parts will reproduce the whole. TreeMaps seem to require these two notions.

Any hidden assumptions? Yes! We’re also assuming that these types of metrics are easily kept by every programmer on the project, and feasibly attainable to SeeSys. Basically, we assume that something like CVS is running underneath SeeSys. Is this a valid assumption? Of course! But I wanted to make this explicit.

What can we measure about our target system? Non-comment source lines (NCSL) Software complexity metrics How do we get these? Number and scope of modifications Number of programmers making modifications Number and type of bugs (a subcategory of modifications)

1) Subsystem Information Question: Which subsystems are largest? Check the area of a bounding box Check the color (redundant coloring) Question: Where is new development taking place? Check the gray-fill area of a bounding box It is perpendicular to the division of the bounding boxes

Subsystem Information cont’d

2) Directory Information Question: Where are the large directories? Find the thickest slices of a subsystem’s bounding box They are parallel to the division of the subsystems Larger slices are brighter in hue Newly added code is grey filled

Directory Information cont’d

Directory Information cont’d: Zoom In

3) Error-Prone Code Question: Which subsystems and directories have the most bugs? No more redundant coloring (why?) Area of each subsystem represents new NCLS Area of grey-fill is NCSL dedicated to bug fixes Blue spikes represent “directory bug fixing NCSL detail”

Error-Prone Code cont’d

4) Recurring Problems Question: What subsystems would make good candidates for code restructuring? Area of each subsystem represents number of bugs Grey-fill area represents fix-on-fix bugs Blue spikes again represent directory detail Why can’t I zoom in here! Ahh!

Recurring Problems cont’d

5) System Evolution Question: How have subsystems changed between versions? Area of rectangle represents largest size ever Colored fill area represents size under current version Can animate from one version to subsequent versions to get a picture over time Could this be improved?

System Evolution cont’d

Favorite Sentence “When applied to production-sized systems, routines for producing flow-charts, function call-graphs, and structure diagrams often break because the display is too complicated. Or they produce displays that contain too much information and are illegible.” I translate this to read: Unlike the other tools I’ve cited, which are all nice little toys if you’re locked away in your ivory tower, this is not a toy application! This is a real-world application!

Contributions Concrete, useful, large-scale, real-world application of TreeMaps Proof of concept that TreeMaps can handle extremely large datasets in a sensible way. Showcases effective use of redundant coloring Highlights hierarchical zooming– from subsystem, to directory, to file– between versions

Contributions cont’d Still, much better than this: Index: BundleDownloader.java =================================================================== RCS file: /fs/savoir/pugh/p/cvs/java/daveho/cl/BundleDownloader.java,v retrieving revision 1.11 diff -u -r1.11 BundleDownloader.java --- BundleDownloader.java 2000/08/29 15:31: BundleDownloader.java 2001/02/07 20:15:53 -56,10 +56,11 if ( tag == BundleProtocol.NOTFOUND ) { String name = m_input.readUTF(); callback.notFound( name ); + continue; } if ( tag != BundleProtocol.BUNDLE ) - throw new IllegalArgumentException("Invalid tag byte"); + throw new IllegalArgumentException("Invalid tag byte: " + tag); int length = m_input.readInt(); if ( debug ) {

Notes on the references Cites the TreeMaps paper (Johnson and Schneiderman, 1991) Cites work on visualizing line-oriented data, such as an idividual source file. This looks cool! But it’s not relevant. Cites lots of other papers, too… But I think the TreeMaps paper is the major influence on this work.

Critique - weaknesses I really want zoomed-in pictures of directories with error-prone code and recurring problems! I’m not sure the techniques used to display error- prone code and recurring problems were all that great anyway… The screenshots, even in the original paper, are terrible. No measurements! I want to see “4 out of 5 middle managers prefer SeeSys to the leading brand.”

Critique – strengths Short, simple, elegant paper Attacks a real problem Doesn’t try to do too much– SeeSys provides high-level visualizations of large, complex software systems. Nothing more.

What has happened to this topic? My web search uncovered that: Google search reveals: SeeSys is someone’s domain name, and it’s an obscure command in MatLab. This paper has been referenced 4 times, though 3 were by the same paper which showed up in a couple of places. I found that a couple software engineering classes study this tool. I was not able to uncover any commercial organizations that use this particular tool, though I’m not sure if that information is public anyway.

Conclusions Realistically, what else was left to do? SeeSys provides useful, general, effective high-level visualizations of any quantitative, additive measurements. Further useful visualizations would likely be too specific to a given system for this generalized framework Or would need to be done per line of source code. This is a very different type of visualization problem for which TreeMaps are probably not the best medium. More sophisticated Q&A measurements are more difficult to obtain– at some point, software engineering becomes an art

My main question: Has this been written in Java? Does GNU have a free version? Can I build this type of TreeMap interface on top of a CVS distribution, like jCVS?