1 Instability Visualization and Analysis Jim Whitehead Jennifer Bevan University of California, Santa Cruz

Slides:



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

Test-Driven Development and Refactoring CPSC 315 – Programming Studio.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
A Metric for Software Readability by Raymond P.L. Buse and Westley R. Weimer Presenters: John and Suman.
Design Concepts and Principles
Software Configuration Management
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
Tuple – InfoVis Publication Browser CS533 Project Presentation by Alex Gukov.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Software Process and Product Metrics
Chapter 9 – Software Evolution and Maintenance
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction to Database Concepts
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.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
1 Shawlands Academy Higher Computing Software Development Unit.
Chapter 2 The process Process, Methods, and Tools
Software Engineering Modern Approaches
Where Innovation Is Tradition SYST699 – Spec Innovations Innoslate™ System Engineering Management Software Tool Test & Analysis.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CS4723 Software Validation and Quality Assurance
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Chapter 7 System models.
IVA: Instability Visualization and Analysis Jennifer Bevan Jack Baskin School of Engineering University of California, Santa Cruz Background.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
Chapter 3: Software Project Management Metrics
The Software Development Process
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Designing Classes. Software changes Software is not like a novel that is written once and then remains unchanged. Software is extended, corrected, maintained,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Team Members Ming-Chun Chang Lungisa Matshoba Steven Preston Supervisors Dr James Gain Dr Patrick Marais.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Objects First With Java A Practical Introduction Using BlueJ Designing classes How to write classes in a way that they are easily understandable, maintainable.
T Project Review MalliPerhe Iteration 3 Implementation
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
1 Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms Dagstuhl – Software Architecture Brian S. Mitchell
Software Design and Development Development Methodoligies Computing Science.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Introduction to OOAD and UML
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Abstract descriptions of systems whose requirements are being analysed
Design and Programming
Hands-on Introduction to Visual Basic .NET
Software metrics.
Chapter 8 Software Evolution.
PPT and video are due no later than February 15, 2019
Systems Operations and Support
Chapter 2. Problem Solving and Software Engineering
Introduction Software maintenance:
Presentation transcript:

1 Instability Visualization and Analysis Jim Whitehead Jennifer Bevan University of California, Santa Cruz

2 Problem  In long-lived software systems  Software architecture degrades over time  Increasing structural complexity makes changes more difficult  From perspective of software engineers performing maintenance…  Cannot dependably modify the system  Poor modularization makes it difficult to identify all code sections that must be modified for a logical change  Poor structure reduces confidence that changes won’t affect existing functionality  Modifications take longer, and are more costly  reduction in capacity to adapt to changing environment

3 Software Instability  Instability: a set of related source code statements that have been repeatedly modified  Intuitively, if the same set of source code changes are frequently made for a given logical change, it may indicate a modularity problem  Interfaces not yet well defined  Didn’t adequately design for change  Might be possible to refactor code to achieve a more change- resistant modularization  Our approach: develop a tool that can identify and visualize software instabilities

4 General Approach  Collect dependence graphs across entire revision history of a system  Analyze graphs for recurring sets of related changes  Calculate an additional metric (such as Eick’s FILES metric for code decay) to assign severities to each instability  Issues:  Handling wide range of possible code changes  Desired granularity of instability regions  Normalizing data across developer styles  If developer A checks-in 5 times a day, and developer B only once a day, developer A’s changes shouldn’t be rated as more unstable

5 Architecture SCM Repository IVA Repository Preprocessor Daemon - Data Extraction - Instability Identification Instability Analyzer - Normalization - Filtering - Severity Classification Visualization Engine Report Generator

6 Visualization (1) First, create graph from dependence information - force-directed layout a la Walshaw [GD2000] Next, extrude synthetic terrain – altitude related to node density Hierarchy (Java): classes contain methods, which in turn contain a series of nested scoped code blocks

7 Visualization (2)  Overlay instability information  Software fault lines  Line weights indicate instability severity  Permit zoom in/out (focus+context) on portions of visualization

8 Visualization (3)  Permit drill-down into the details of each instability  Can see precisely what versions/code comprises the instability Ball & Eick diagram Access per-version metadata, focused on timespan of interest to the instability

9 Current Status  Preliminary implementation – “IVA”  Simple dependence graphs for Java code  Works with Subversion, are close with CVS  Simple graph layout  Fractal radial layout  Have run tool on three Java projects  All small  Have a flyer and technical report on current status and goals

10 IVA on IVA Analysis of 70 revisions of IVA code (19 classes, 5300 lines) Showed (correctly) that definition of repository interface was under significant flux during development

11 Validation  Use tool with a range of software, especially HDCP testbed software  Ensure that software instabilities correlate to observable areas of poor modularization  If bug/issue tracking available, would like to see correlations between instabilities and defect densities  But may not – correct code may still exhibit instability due to poor structure  Ensure tool is usable, and visualizations convey correct meanings  Ensure analysis and visualizations scale to handle non-trivial system sizes  Testbeds can help a lot here

12 Areas of Collaboration  Ideally, we want to produce an open source tool  Would like to collaborate on:  SCM API code  Language parsing technology  Are using ANTLR  Handles Java, C  Are exploring PCCTS for C++  Requires Linux port  Would prefer not to use EDG ($$, not OS)  Program dependence graph representation/technology  Using a 3 rd party graph library

13