ZYPHER - Tailorability as a Link from Object-Oriented Software Engineering to Open Hypermedia

The dissertation concerns a study of state of the art object-oriented software engineering applied within the domain of open hypermedia systems. The results of this study are discussed within the context of a software artefact named Zypher. The scientific contribution of this work is situated in the domain of object-oriented software engineering. The contribution is a proper combination of frameworks and meta-object protocols, which are two promising techniques in object-oriented software engineering. We show that, when combining both approaches, explicit representations of framework contracts are part of a meta-object protocol. This insight is valuable in the design of metaobject protocols. The design of meta-object protocols is crucial in the development of large scale software systems, because it leads to greater flexibility. Flexibility is a key requirement, since large scale software systems are bound to satisfy ever changing demands, hence must be adapted continuously. This flexibility requirement is very prominent in open hypermedia, the research domain where the results are validated experimentally. The archetype for the kind of software envisioned is an open hypermedia system supporting a group of engineers in a design and manufacturing process. Such a system must handle the management of several tens of gigabytes of data stored in different devices, contained in millions of individual design elements maintained in various formats, organised in densely interconnected graphs representing numerous relationships and —probably the most difficult requirement— constantly evolving while the design and manufacturing process proceeds. Without a doubt, flexibility is a key requirement in these engineering support systems. We propose tailorability as a means to cope with the flexibility requirement, and we identify at least three levels of tailorability to handle different kinds of flexibility. Domain level tailorability is needed to adapt a software system to changing needs, such as the incorporation of new data formats. System level tailorability copes with requests about the system performance, data security or information integrity. Configuration level tailorability handles demands such as cross-platform portability and run-time reconfiguration. We show that object-oriented software engineering techniques are valuable for the development of tailorable systems. More precisely, domain level tailorability can be achieved by building an object-oriented framework. Extending the framework with a meta-object protocol attains system level tailorability and yet another meta-level implements configuration level tailorability.