Persistence Projects
Both projects require implementation work in Eiffel. ESCHER will require working with the EiffelStudio code itself, while ABEL is library code.
ESCHER: IDE integration of a schema evolution mechanism for object serialization
Supervisor:
Marco Piccioni
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.
For more details check the last submitted paper.
The current ESCHER prototype:
- Handles class versions and project releases.
- Generates code templates for conversion functions.
- Includes a robust retrieval algorithm that checks for the existence of conversion functions.
There are many open projects. Each of them can be adapted to provide a suitable amount of work for the EiffelStudio Lab, Semester and Master thesis:
- Improve the template code generation in case of attribute type change
- Improve the template code generation in case of attribute rename by hooking it to the rename IDE refactoring
- Refactor the versioning system to use meta-information (version tags) instead of inheritance.
- Integrate ESCHER with href="http://ebbro.origo.ethz.ch">EBBRO, an existing object browser.
- Integrate the ABEL persistence library into ESCHER.
ABEL: A Better EiffelStore Library
Supervisor:
Marco Piccioni
The project consists in implementing a library providing an easy to use API,
transparent handling of different kinds of persistence stores,
and schema evolution support.
The current implementation can be found on the ABEL web site.
There are many open projects. Each of them can be adapted to provide a suitable amount of work for the EiffelStudio Lab, Semester and Master thesis:
- Object-Relational mapping API.
- Connection Pooling.
- Configurable transactions.
- Exception handling.
- Caching strategies.
- Prepared statements.
- Stored procedures.
- Integration into the ESCHER schema evolution framework.