Presentation is loading. Please wait.

Presentation is loading. Please wait.

Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International.

Similar presentations


Presentation on theme: "Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International."— Presentation transcript:

1 Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International Conference on Software Engineering, May 2007 Presented by: Bennie Lewis and Volodymyr Pryyma School of Electrical Engineering and Computer Science University of Central Florida

2 Overview Introduction Motivation Background and Terminology Merging Algorithm Implementation Case Study Related Work Conclusions and Future Work

3 Introduction What is refactoring? Automated refactoring tools – Become very popular – Help change source code quicker Demands on SCM systems – Refactoring cuts across module boundaries – Problems with merging refactorings

4 Introduction Refactoring process – Developers check in code – Senior designer makes global changes SCM Systems – Unreliable – Method overriding

5 Introduction MolhadoRef – Better merging – Better preservation of program history – Better understanding of program evolution – Operation-based approach – Eclipse as front end – Performs better than CVS

6 Introduction Paper contributions – Refactorings as strongest link in SCM – Algorithm for merging refactorings and edits – Describes the implementation – Evaluates the effectiveness

7 Motivation Text-based SCM systems – No understanding of semantics of changes – No understanding of syntax/semantics of language – Compile-time errors – Lose the history if refactorings

8 Background and Terminology Operation-based approach – Sequence of operations – Distinguish between operations MolhadoRef operations – API refactorings – API edits – Code edits

9 Background and Terminology API refactorings – Rename package/class/method – Move class/method – Change method signature API edits – Added package/class/method/field – Deleted package/class/method/field

10 Background and Terminology Code edits – No well defined semantics – Merged textually However, API edits/refactorings are merged semantically

11 Background and Terminology Operations – Usually have preconditions Adding a method Changing method name – Inappropriate use

12 Background and Terminology Some definitions – Commute – Conflict – Ordering dependence

13 Merging Algorithm High-level overview – Step 1: detect API and code edits – Step 2: search for conflicts – Step 3: invert each refactoring – Step 4: merge edits textually – Step 5: replay the refactorings

14 Merging Algorithm Detecting Operations – Three-way textual differencer – Construct higher level API edits – Removes edits due to refactorings

15 Merging Algorithm Detecting/Solving of conflicts – Matrix of predicates – Dependencies – User assistance

16 Merging Algorithm Inverting refactoring – Executes inverse refactoring operation – Preconditions Name collisions – Worst case scenarios Treated as text-based merging

17 Merging Algorithm Textual merging – Three-way merging – Same as most text-based SCM systems – Due to inverted refactorings all conflicts are eliminated – Merging is automatic – MolhadoRef outperforms text-based merging when multiple refactorigns occur

18 Implementation MolhadoRef acts as Eclipse plugin It is an object-oriented infrustructure Java code is translated into Molhado structure Can be retrofitted on CVS

19 Case Study MolhadoRef compared with text-based CVS MolhadoRef itself for used for analysis CVS – Many same-line conflicts – Had 48 compile and run-time errors – Took 105 minutes MolhadoRef – Much fewer conflicts – Automatically merged all same-line conflicts – Did not introduce any compile or run-time errors – Took less than a minute

20 Related Work SCM Systems – Long history – Provide powerful configuration management services Software Merging – Text-based tool – Lines are as considered indivisible units

21 Related Work Operation-Based Merging – A type of semantic-based merging – Better conflict detection/solving – A few previous operation-based merging systems were presented

22 Conclusions and Future Work Refactoring creates problems for modern Software Configuration Management systems MolhadoRef is aware of refactorings MolhadoRef is implemented as Eclipse plugin Future work = empirical study on a group that uses MolhadoRef

23 Paper Critique Advantages – Novel algorithm – Outperforms CVS – Implemented as Eclipse plugin – Can be added to CVS Disadvantages – Only one case study – No performance results with real users

24 Questions?


Download ppt "Refactoring-aware Configuration Management for Object-Oriented Programs Written by: Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen ACM International."

Similar presentations


Ads by Google