CLIME: Constraining Software Evolution

Overview

Software evolves. It changes when bugs are fixed, when features are added, and when the environment it runs in changes. One of the important role for programming tools and environments is supporting such evolution.

Software is more than source code. A software system, from the developers point of view, obviously includes the source code, but also includes all the other software artifacts that were created and used in building the source code. This includes any requirements and specifications documents, design documents, diagrams, and notations, test cases, documentation, resources, style and language usage guidelines, version history, etc.

Without tool support, the source code is changed during evolution, but the associated artifacts are not updated. These artifacts evolve, but generally at a slower pace than the software. The net result is that the artifacts slowly lose their usefulness in terms of understanding or maintaining the software system and are eventually ignored or discarded. Understanding and maintaining the software system at that point has to be done purely from the code, often leading to problems and seriously complicating evolution.

The goal of CLIME is to provide a tool that will help the developer keep the various software artifacts synchronized as the software evolves. CLIME tries to do this in the simplest way possible. Rather than attempting to automatically maintain the various artifacts, it analyzes them in various ways and then uses constraints to determine when the artifacts are inconsistent with one another. It then displays the inconsistencies todevelopers to encourage them to update all artifacts to get the system into a consistent state.

Papers

Consistent Software Evolution, Steven P. Reiss, White Paper (Brown Internal).

Constraining Software Evolution, Steven P. Reiss, ICSM 2002.

CLIME: An environment for constrained Evolution, Steven P. Reiss, Chistina M. Kennedy, Tom Wooldridge, Shirram Krishnamurthi, Demonstration Proposal for ICSE 2003.

CLIME: An Environment for Constrained Evolution, Steven P. Reiss, Chistina M. Kennedy, Tom Wooldridge, Shirram Krishnamurthi, Demonstration Description, ICSE 2003.

CLIME: An environment for Constrained Evolution, Steven P. Reiss, Chistina M. Kennedy, Tom Wooldridge, Shirram Krishnamurthi, unpublished, 2003.

Incremental Maintenance of Software Artifacts, Steven P. Reiss, submitted for publication, 2004.

Images

The CLIME user interface showing violated constraints and associated information.

 

CLIME file view providing a graphical overview of violated constraints.

Get the Software

Get the source for CLIME.

 

Acknowlegements

This research is funded through the National Science Foundation, grant 0218973.