Abstract

Information modeling is the activity of formalizing information about physical and social systems for purposes of understanding and communication. Information models are typically built in the early stages of information-system development, preceding design and implementation. Advances in information modeling involve narrowing the semantic gap between real-world concepts and their representation in information models by identifying powerful abstractions allowing a more accurate and intuitive representation of application domains. Thus, more powerful information models improve the mastering of the information-system development process and the quality of the final applications. Generic relationships in information models are such powerful abstraction mechanisms. They are high-level templates for relating classes of objects. A rich menu of generic relationships considerably helps representing associations of real-world entities. The present research analyses generic relationships and proposes a catalogue that can be integrated in object-oriented modeling tools. Few systems provide full-fledged relationship support. This lack of system expressiveness introduces a semantic discontinuity in the information-system life cycle. Developers are left with ad hoc implementation techniques, like pointers or references, with problems of dispersion and duplication of relationship information among several participants. Still, it has been clear for some time that promoting relationships to a more independent status provides benefits concerning reusability, ease of modeling, independency of implementation decisions, control of redundancy, and facility of updates and maintenance. Therefore, our research manages relationships as full-fledged entities in software through the definition of a metaobject protocol (MOP) for generic relationships. A MOP is an object-oriented protocol designed at the system top level. It can be opened and customized to tailor the system kernel to the developer needs instead of coding the corresponding behavior in applications. Entities of a MOP are called metaobjects. Relationships are designed as metaobjects allowing to implement facilities of the object-oriented paradigm like abstraction of the relationship semantics, evolutive definition, and independency of other system entities. Our generic relationship MOP is designed through reflection. Reflection is the ability of a system to observe and manipulate entities of the system itself during its own execution. From a structural point of view, reflection enriches the original system statics with the generic relationship MOP. From a behavioral point of view, reflection extends the system dynamics with generic relationship control.