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
- Marco Piccioni, Manuel Oriol, Bertrand Meyer Schema Evolution for Persistent Object-Oriented Software: Model, Empirical Study, and Automated Support. Submitted to IEEE Transactions of Software Engineering (TSE), February 2011 [arxiv]
- Marco Piccioni, Manuel Oriol, Bertrand Meyer, Teseo Schneider An IDE-based, integrated solution to Schema Evolution of Object-Oriented Software. ASE 2009: 24th IEEE/ACM International Conference on Automatic Software Engineering, (Auckland, New Zealand), November 2009 [pdf]
- Marco Piccioni, Manuel Oriol, Bertrand Meyer: IDE-integrated Support for Schema Evolution in Object-Oriented Applications. RAM-SE 2007: 4th ECOOP'2007 Workshop on Reflection, AOP and Meta-Data for Software Evolution, (Berlin, Germany), August 2007 [pdf]