1 / 20

Recommending Adaptive Changes for Framework Evolution

Provide adaptive change recommendations for client programs affected by framework evolution using SemDiff recommendation system. Evaluate Eclipse JDT's framework evolution with RefactoringCrawler. Achieve 89% relevant recommendations success. Automate adaptive changes efficiently.

dwendel
Download Presentation

Recommending Adaptive Changes for Framework Evolution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Recommending Adaptive Changes for Framework Evolution Presenter: Ying Zhang

  2. Motivation

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

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

  5. Adaptive Change Recommendations

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

  7. Confidence Metric

  8. Deprecated method Recommended replacement

  9. 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

  10. 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.

  11. Spurious Call Removal

  12. Analyzing source code history

  13. Evaluation

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

  15. 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.

  16. Result • Relevant recommendations • 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

  17. 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.

  18. 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

  19. Discuss Questions

  20. Thanks!

More Related