Download presentation
Presentation is loading. Please wait.
Published byJordan Brown Modified over 9 years ago
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.