An Implementation of the FACE Datamodel

On this page, you find a short description of the work that is done implementing FACE, a Framework Adaptive Composition Environment [2] developped in the Software Composition Group of the University of Berne. The implementation work is carried out by Matthias Rieger in order to receive a masters degree in computer science.


In the light of an evergrowing need for reliable software, the software engineering community is trying to develop methods to reuse and adapt pieces of software in an controllable and easy way. Frameworks are seen as a possibility not only to reuse functionality but also design- and coorporation-patterns pertaining to the application domain of the framework. Still the use of a framework requires considerable skills and a sometimes steep learning curve in the development enivronments of today. One would like being able to support and guide application programmers in the development process to use the framework in the way which conforms to the intentions of the framework developer.


The datamodel which lies at the center of FACE was developed as part of a PhD thesis [1] of Theo Dirk Meijler and was used to model YANUS (Yet Another Unifying System), a system in which different application- and data-resources could be described and presented under one common interface, discarding application boundaries and freeing the user from transforming data to and from the different needed formats by hand. The datamodel consists of a kernel of metatypes and types. Extension is easy through introduction of new types. Typechecking facilities enforce correct combinations of the elements.
FACE uses the same kernel to model application frameworks: representing the elements of the frameworks (software abstractions like objects and components) and their relationships from simple links to complex design patterns [3].

A Software Composition Environment

The goal of the whole project is to build a visual software composition environment where developers can create applications using their mouse in a graphical user interface. Prefabricated components will be presented to the user and can be linked in specific ways. Thanks to the typechecking mechanism, correct composition can be enforced.

Thesis Description

The aim of the project in the bounds of the masters thesis is to implement the essential parts of the datamodel in the programming language C++ (another implementation is currently done in Self). No work is done on implementing the graphical user interface, which is the goal of another masters thesis under way at the institute.

The thesis can be downloaded here: [plain PDF (370k)]


[1] Theo Dirk Meijler, User-Level Integration of Data and Operation Resources by Means of a Self-Descriptive Data Model, Rotterdam, 1993.
[2] Theo Dirk Meijler, Overview of FACE, a Framework Adaptive Composition Environment, Draft, September 1996.
[3] Theo Dirk Meijler, Robert Engel, Making Design Patterns explicit in FACE, a Framework Adaptive Composition Environment, preliminary Proceedings EuroPloP 1996, July 1996.
[4] Matthias Rieger, Implementation of the FACE Object Model, Talk foils, June 1996.

Last updated: Mon Mar 16 1998 by Matthias Rieger