We are heavily involved in component research, focusing particularly on hierarchical component structures.

Our research centres on Backbone, which is the component language at the heart of Evolve. It provides a hierarchical model with reuse and evolution facilities. The runtime engine is written in Java, and was implemented as a refinement of a formal specification written in the logic language Alloy.

Evolve and Backbone were first described in a thesis on highly extensible systems.

the thesis

A Rigorous, Architectural Approach to Extensible Applications
6th December 2009, 3.6mb.

the backbone formal specification

The Backbone specification, 6th December 2009, 17kb.

The specification is written in Alloy, a powerful relational logic with a model checker developed at MIT.

the backbone code site


Backbone has been open sourced under the Apache Software License version 2.0, and is hosted on google code. The codebase includes the full interpreter, and the DeltaEngine which contains the core logic for dealing with reuse and evolution.

The main source code has been checked into the repository, although we have not released the entire unit test suite. The additional tests and source files associated with these will be checked in from late November 2010 through to December 2010.

If you would like to work with Backbone, please feel free to clone the repository. We would be delighted to answer any questions about the codebase, subject to current work engagements.

If you would like to become a committer, please contact us directly. We require that you fully understand the underlying approach before accepting contributions, although we would be happy to work with you to help you get this understanding.