Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.

Slides:



Advertisements
Similar presentations
Personalized Navigation in the Semantic Web: An Enhanced Faceted Browser Michal Tvarožek FIIT STU BA.
Advertisements

Nov DOLAP 2002 McLean USA A Multidimensional and Multiversion Structure for OLAP Applications Mathurin Body 1,2, Maryvonne Miquel 2, Yvan Bédard.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Theatrical Lighting Design and Inventory Management System Architecture Presentation Presenters: Ed Morrison, Harikrishna Patel, Joshua Zawislak.
Distributed Information Systems - The Client server model
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
1 LOMGen: A Learning Object Metadata Generator Applied to Computer Science Terminology A. Singh, H. Boley, V.C. Bhavsar National Research Council and University.
This chapter is extracted from Sommerville’s slides. Text book chapter
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
The Design Discipline.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Data Warehouse & Data Mining
Software Engineering Modern Approaches
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
Database refactoring. For the beginning… Avoid overspecialization Application developerDatabase developer Developer Communication Cooperation Exchange.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
File Processing - Database Overview MVNC1 DATABASE SYSTEMS Overview.
Accessing to Spatial Data in Mobile Environment Presented By Jekkin Shah.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
The Effect of Collection Organization and Query Locality on IR Performance 2003/07/28 Park,
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
ISV Innovation Presented by ISV Innovation Presented by Business Intelligence Fundamentals: Data Cleansing Ola Ekdahl IT Mentors 9/12/08.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
1 Chapter Overview Preparing to Upgrade Performing a Version Upgrade from Microsoft SQL Server 7.0 Performing an Online Database Upgrade from SQL Server.
Automatically Repairing Broken Workflows for Evolving GUI Applications Sai Zhang University of Washington Joint work with: Hao Lü, Michael D. Ernst.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
1 Copyright 2010 NexJ Systems Inc. Confidential and Proprietary - Not for Distribution. OHT Application Integration Platform.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
A Data Stream Publish/Subscribe Architecture with Self-adapting Queries Alasdair J G Gray and Werner Nutt School of Mathematical and Computer Sciences,
CPSC 533 Project Status Reid Holmes Andrew Chan March 17, 2003.
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Scalable Clone Detection and Elimination for Erlang Programs Huiqing Li, Simon Thompson University of Kent Canterbury, UK.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
1 Experience from Studies of Software Maintenance and Evolution Parastoo Mohagheghi Post doc, NTNU-IDI SEVO Seminar, 16 March 2006.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Recent Enhancements to Quality Assurance and Case Management within the Emissions Modeling Framework Alison Eyth, R. Partheepan, Q. He Carolina Environmental.
20 Copyright © 2008, Oracle. All rights reserved. Cache Management.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Bogor-Java Environment for Eclipse MSE Presentation III Yong Peng.
Copyright Office Material Copyright Request System.
CIS 375 Bruce R. Maxim UM-Dearborn
Building Enterprise Applications Using Visual Studio®
Semi-Automated Software Restructuring
Software Configuration Management CSC-532
Database Performance Tuning and Query Optimization
Chapter 11 Database Performance Tuning and Query Optimization
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Recommending Adaptive Changes for Framework Evolution
Presentation transcript:

Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park

Framework Evolution From simple refactoring to complete rearchitecture 80% of API-breaking is from refactoring Adapting a client program is required 2 Framework Client Program New Version of Framework

State-of-the-Art Techniques for Framework Adaptive Changes Automatic capturing and documenting changes Providing migration paths Deprecating existing methods and indicating new replacements Limitation Good for only refactoring Refactoring only involves name and location change dimensions Not always cost effective Not good for internal and undocumented parts of framework Hard for Non-trivial changes 3

Contributions A techniques for adaptive changes recommendation The architecture of a complete system to track a framework’s evolution and infer non-trivial changes An historical study on the redesign of a framework component in Eclipse 4

Sample Scenario 5 Project Eclipse 3.2 org.eclipse.jdt.internal.corext.util.TypeInfo (in org.eclipse.jdt.ui) Eclipse 3.3 Cannot Find TypeInfo anymore! ?? 1. Any class with the similar name? NoNo 2. Any missing class in the same package but under a different name? NoNo 3. Any other classes depend on TypeInfo class and now referring other package name? Yes but not proper replacement. What should I do now? SemDiff: Implementation of their approach

SemDiff: Overview Client-server application for Java Server component for inferring high-level changes Client component for producing recommendations 6 Server Component Client Component

Client Component : Adaptive Change Recommendation 7 Recommendations Compute the Confidence Value Using Call Differences Remove Improper Recommendations Change Chains Caller Stability Spurious Call Removal Recommendations Show Recommendations

Adaptive Change Recommendations: Computing the Confidence Value Using Call Differences Differences in outgoing calls for a given method during a framework’s history Definition of Confidence Value Example of Definitions Output: Recommendations Methods deprecated but still accessed by a subset of the framework Methods replaced before being deleted 8

9 Adaptive Change Recommendations: Removing Improper Recommendations Change Chains Caller Stability Spurious Call Removal

Adaptive Change Recommendations: Showing Recommendation Ranked by the confidence value Double click on a recommendation User can understand better how each recommendation come out and how the framework was adapted to this change. 10

Adaptive Change Recommendations: Complexity and Limitation Factors for Computational Complexity The number of methods that removed a call to the queried method The number of different added calls The maximum change chain length, The maximum length of unstable callers Limitation Not working for root method No grouping of recommendations No guarantee of semantic equivalence 11

Server Component: Analyzing Source Code History Retrieving the files and change data for each version of the framework Running several analyses to infer high-level changes such as structural and method call differences Storing those high-level changes in a database for future use by recommendation system 12 Server Component

Analyzing Source Code History: Source Repositories Repository Adapters retrieve information from CVS and SVN SVN vs. CVS SVN has the concept of change set CVS does not group file changes and some processing of the repository log file is needed to infer change sets. Detection of branches merge Important to avoid analyzing the same change twice by detecting redundant changes 13

Analyzing Source Code History: Change Analysis For each change set, StructDiff: a list of all methods that were added, removed and modified CallDiff: the calls that were added or removed between two versions of each method identified by StructDiff 14

Analyzing Source Code History: Partial Program Analysis Incomplete type hierarchy Subset of the program source code without the dependencies and the rest of the program Three matching criteria for methods The same name, # of parameters, type of parameters and target type. The same name, # of parameters and type of parameters. The same name and # of parameters Enable the analysis of partial program Soot Java static analysis framework Java source parser, Polyglot 15

Evaluation Questions Can SemDiff recommend adaptive changes during framework’s evolution? Is the confidence value for SemDiff good enough and free from false positives? Can SemDiff detect changes better than refactorings? 16

Historical Study Design One Framework: Eclipse Java Development Tool Platform org.eclipse.jdt.core and org.eclipse.jdt.ui from version 3.1 and 3.3 Three client programs Mylyn Jboss IDE, Jdt.debug.ui SemDiff vs. RefactoringCrawler 17

Evaluation Results SemDiff performed better than RC Relevant Recommendations: 89% Confidence Value: 7.1 recommendations per request Non-trivial Changes 6% Change Chains and Caller Replacements, 67% Spurious Calls 18

Summary of Evaluation 19 Can SemDiff recommend adaptive changes during framework’s evolution? Yes Is the confidence value for SemDiff good enough and free from false positives? Yes Can SemDiff detect changes better than refactorings? Yes

Threats to Validity 20 Only for Eclipse JDT Multiple factors can affect their approach Mitigated by confidence value No assessment how the developers would have used their recommendations Subject choice of client programs in experiments.

Conclusion 21 Contributions A techniques for adaptive changes recommendation The architecture of a complete system to track a framework’s evolution and infer non-trivial changes An historical study on the redesign of a framework component in Eclipse Better performed than Refactoring Better adaptive changes recommendation Successfully locate methods from external libraries

Future Work & Discussion 22 Improvement in adaptive change recommendations Not working for root method No grouping of recommendations No guarantee of semantic equivalence Extend experiments to the other frameworks