Persistence: the software evolution point of view

Overview

Most object-oriented applications need to store objects for later use. This is fine, until classes evolve. Suddenly previously stored objects may not be retrievable anymore if their classes have changed. The standard way to handle this issue is to provide conversion functions containing initialization code intended to re-establish the class invariant. We want to improve the way schema evolution is handled in persistent object-oriented applications. A first outcome is the ESCHER tool, integrated into EVE, the existing Eiffel Verification Environment. The tool handles class versions, generates conversion functions templates and provides a retrieval algorithm to ensure an invariant-safe class evolution.

Besides time, another important dimension in flexibility for persistent object-oriented applications comes from the need of accessing different kinds of persistent stores (relational, object-oriented, document-based) in a seamless way. ABEL is a software library that intends to address this need by having a unified API allowing seamless access to multiple, diversified database back-ends.

Download

ESCHER, together with ABEL and all the persistence-related tools and libraries, are integrated into EVE, the research branch of the EiffelStudio IDE. In the main EVE web page you will find links to the source code and the documentation.

Project members

Publications