skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · events · colloquia · 2006-2007 · 

Colloquium - Dig

ECCR 265

Refactoring-Aware Software Merging and Version Control for Object-Oriented Programs
University of Illinois at Urbana-Champaign
Danny Dig photo

An important kind of change in Object-Oriented programs are refactorings, i.e., program transformations that improve the internal design without changing the observable behavior. For instance, renaming, moving a method to a different class, and changing a method signature are all refactorings. Automatic refactoring tools have become very popular because they allow programmers to change source code quicker and safer than before. However, refactoring tools make particular demands on Version Control Systems such as CVS. Traditional Version Control Systems work best for local changes, but refactorings often result in global changes that lead to merge conflicts. In addition, the complexity of refactoring changes can cause versioning systems to lose the history of refactored program elements.

I will present MolhadoRef, the first refactoring-aware versioning system. The core of MolhadoRef is a refactoring-aware merge algorithm. MolhadoRef records changes (refactorings and edits) that programmers make to produce one version of code and replays these changes when merging versions. Since refactorings are changes with well defined semantics, MolhadoRef treats them intelligently. A case study and a controlled experiment show that MolhadoRef solves automatically more merge conflicts than CVS, while resulting in fewer merge errors. This is joint work with Kashif Manzoor (UIUC), Ralph Johnson (UIUC), and Tien Nguyen (Iowa State University), which will appear in ICSE 2007.

Danny Dig is a PhD candidate in Computer Science at the University of Illinois at Urbana-Champaign (UIUC). He got his MS in Computer Science from Polytechnics University of Timisoara, Romania, where he built JavaRefactor, the first open-source refactoring engine for Java. His research interests are in software engineering and programming languages, with an emphasis on program transformations, particularly refactorings. He is broadly interested in software design and architectural patterns, frameworks, software development processes, and software evolution.

Hosted by Amer Diwan.

The Department holds colloquia throughout the Fall and Spring semesters. These colloquia, open to the public, are typically held on Thursday afternoons, but sometimes occur at other times as well. If you would like to receive email notification of upcoming colloquia, subscribe to our Colloquia Mailing List. If you would like to schedule a colloquium, see Colloquium Scheduling.

Sign language interpreters are available upon request. Please contact Stephanie Morris at least five days prior to the colloquium.

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (13:29)