
Lund University
| LTH
Center for Applied Software Research
Research
| Publications
| People
| Events
| Industry Participation
| About
Configuration Management and Refactorings in Eclipse
Background
Configuration management is one of the key techniques for coordinating
people working together in software projects. This is commonly
understood and most Software Development Environments offers support
for CM. In Eclipse this is trough Stellation and the CVS technology.
When using a CM tool one quickly realize that there are operations that
are less well supported. Structural changes, often called refactorings,
such as renaming modules or moving them between directories are
typically problematic, not supported by the CM tool. As a result such
operations has to be performed outside of the tool, and the tool
cheated by performing the operations as a Delete and a Create and thus
loosing historical data as well as risking manual mistakes. When
merging parallel work in systems that have undergone such changes the
situation gets even worse.
The importance of the problem sketched above depends on how often such changes might occur. In a traditional situation, with considerable upfront design and careful structuring before coding, the need for refactorings might be smaller. With the current growing interest for eXtreme Programming with its focus on simplicity and refactorings the problem gets much worse since structural changes is a frequent activity. Eclipse include support to perform refactorings, but the CM support for refactorings is much less developed.
The severity of this problem has become clear to us during teaching a project course using XP technology. We have plans to introduce Eclipse as development environment in this course, in part for its powerful support for refactorings. Unfortunately it does not solve one of the most severe problems we had during the course due to the lack of CM support fro merge of refactored branches of a system.
Objectives
Improve the support offered when refactorings are performed. The idea
is to represent such a structural change as a single operation rather
than a series of deletes/create or renames. The advantage would be that
the same refactoring could then be applied when merging with a parallel
branch, greatly simplifying the work during merge. The development of a
system would most likely also be easier to grasp when performed
refactorings are explicit rather than implicit.
Methodology
The open and well-engineered Eclipse environment seems to be ideal to
use as a platform for an experiment of this kind. There seems to be
powerful enough APIs available both towards the CVS-based
version-control system and editors to make the kind of extension
outlined here. We value in particular the Abstract Syntax Tree-based
interface that we believe will serve as a suitable level for
interaction. The model used here for propagating changes hierarchically
matches the scheme we developed for the Unified Extentional Versioning
Model and published at SCM - the main conference in the field. UEVM
extends this model to also comprise versioned configurations. We also
intend to, at least initially, make use of the implementation of a
versioning server supporting the UEVM which we developed as part of the
COOP/Orm collaborative system. The project will be run in the XP
tradition where initial focus is on developing a framework and then
filling it with functionality.
Milestones
Client-side Java API for UEVM
Storing Java programs in AST form
Representation of refactoring operations on the AST level
Develop merge-support for branches with refactorings
Personnel
Boris Magnusson, prof - environments, OO, configuration management
Görel Hedin, ass prof - languages, OO, compilers
Torbjörn Ekman, grad student - languages, compilers
Ulf Asklund, dr - Configuration Management.
Long term objectives
Improved support for Configuration Management in general and in
connection with practices introduced with XP is crucial for efficient
and reliable development of software. As Eclipse gets popular in the XP
community it is vital to offer a flexible solution to the CM problems
introduced with an aggressive use of refactoring techniques.
© Center for Applied Software Research 2001-2007. Jonas.Wisbrant@cs.lth.se
Last update:
