Recommending Adaptive Changes for Framework Evolution

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Configuration management
Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International.
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.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Upgrading of component-based application Program Analysis and Transformation MSE-Seminar © Raphael Gfeller,
Chapter 6– Artifacts of the process
This chapter is extracted from Sommerville’s slides. Text book chapter
BRUE Behavioral Reverse Engineering in UML as Eclipse Plugin MSE Presentation 1 Sri Raguraman.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.

Persistence Store Project Proposal.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
Version control Using Git Version control, using Git1.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Software Measurement & Metrics
Automate Administration with KURL Shayne Koestler.
Adaptive Hypermedia Tutorial System Based on AHA Jing Zhai Dublin City University.
WERCS Upgrade 5.X – 6.1 Steve Giamalis. Major Changes This upgrade is very significant in terms of technology, functionality, structure, and environment.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Applying Clone.
Ontology Evolution and Regression Analysis Insights into Ontology Regression Testing Maria Copeland Rafael Goncalvez Robert Stevens Bijan Parsia Uli Sattler.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Inoue Laboratory Eunjong Choi 1 Investigating Clone.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Mining Version Histories to Guide Software Changes Thomas Zimmerman Peter Weisgerber Stephan Diehl Andreas Zeller.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
A proposal to support the extreme programming development methodology from the quality assurance point of view Authors: Calin Jebelean –
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
University of Waterloo Exploring Structural Change and Architectural Evolution Qiang Tu and Michael Godfrey Software Architecture Group (SWAG) University.
CS223: Software Engineering Lecture 32: Software Maintenance.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
Software Configuration Management -Subversion- RTLAB YuJin Park.
CIS 375 Bruce R. Maxim UM-Dearborn
Software Configuration Management CSC-532
Regression Testing with its types
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
Chapter 18 Maintaining Information Systems
Configuration Management (managing change)
Design and Programming
Mock Object Creation for Test Factoring
Regression testing Tor Stållhane.
The Vision of Self-Aware Performance Models
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Configuration management
Secure Coding Practices in Java: Challenges and Vulnerabilities1
Re- engineeniering.
MAPO: Mining and Recommending API Usage Patterns
Why do we refactor? Technical Debt Items Versus Size: A Forensic Investigation of What Matters Hello everyone, I’m Ehsan Zabardast I am a PhD candidate.
Presentation transcript:

Recommending Adaptive Changes for Framework Evolution Presenter: Ying Zhang

Motivation In software development, engineers tend to use framework to shorten the time. Using internal class is a common scenario during the development. A complete re-architecture of a framework can break client programs. Not all framework changes are written in the document. Tedious changes need to be conducted in client programs.

Provide a tool that can provide adaptations to client programs which are affected by the non- trivial evolution of framework. Problem Definition

A recommendation system suggests adaptations to client programs Approach: SemDiff A recommendation system suggests adaptations to client programs

Adaptive Change Recommendations Confidence metric Change chains Caller stability Spurious call removal Complexity

Confidence Metric m1 n2 n1 n1, n2 caller1, caller2 m2, m3

Confidence Metric

Deprecated method Recommended replacement

A method is replaced several times Change Chains A method is replaced several times Some methods removed the call VS All method removed the call Discard the recommendation in a change chain reapply the call difference analysis described above to find a more relevant recommendation

Both caller and requested method are replaced Caller stability Both caller and requested method are replaced Find a replacement for the deleted caller Recommend the methods that are called by the caller replacement minus the methods that were previously called by the deleted caller.

Spurious Call Removal A call to a method is removed in one place and added in another place in the same change set SemDiff will ignore all change sets where the requested method call was removed from one caller and added in another caller.

Analyzing source code history Retrieving the files and change data for each version of the framework Retrieving Running several analyses to infer high-level changes such as structural and method call differences Running Storing those high-level changes in a database for future use by our recommendation system Storing Analyzing source code history

Can SemDiff recommend to a client program adaptive changes that replace a functionality deleted during a framework’s evolution? Is the confidence value good enough to discriminate relevant recommendations from false positives? Can SemDiff detect changes more complex than refactorings? Evaluation

Evaluation Eclipse Java Development Tool (JDT) platform org.eclipse.jdt.core and org.eclipse.jdt.ui plug-ins from version 3.1 to 3.3 SemDiff to analyze the source history of the Eclipse framework RefactoringCrawler detects refactorings as baseline

Result The execution of the repository analysis framework took 16 hours on a Pentium D 3.2 Ghz with 2 Gb of RAM and running Ubuntu Server 7.04. each request took 1 second to complete. Running the three analysis with RefactoringCrawler took 13 hours.

Result Relevant recommendations Confidence Value Non-trivial changes SemDiff found relevant recommendations for 89% of the problematic calls in the client programs Confidence Value SemDiff produced an average of 7.1 recommendations per request confidence value was necessary to discriminate relevant replacements from false positives Non-trivial changes RefactoringCrawler found 319 refactorings between JDT releases 3.1 and 3.3, only one related to errors within study scope. SemDiff works in the face of non-trivial changes

Related Works K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In Proc. of the Int’l Conference on Software Maintenance, pages 359–369, 1996. J. Henkel and A. Diwan. Catchup!: capturing and replaying refactorings to support API evolution. In Proc. of the 27th international conference on Software engineering, pages 274–283, 2005. D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In Proc. of the European Conference on Object-Oriented Programming, pages 404–428, 2006. M. W. Godfrey and L. Zou. Using origin analysis to detect merging and splitting of source code entities. IEEE Transactions on Software Engineering, 31(2):166–181, 2005.

Conclusion SemDiff automatically recommends adaptive changes in the face of non-trivial framework evolution SemDiff is able to track a framework’s evolution and infer non-trivial changes An historical study of the Eclipse JDT framework and three of its client programs showed the effectiveness for their system

The framework cannot issue recommendations for root methods SemDiff does not group the recommendations together, how to automatically inferring those relationships Adaptive changes proposed by SemDiff might not be semantically equivalent to features that need to be replaced Long call chains are likely to decrease the precision of the call difference analysis Discuss Questions

Thanks!