The eXtreme Design Meta Model
The eXtreme Design (XD) Approach is based on the XD meta model which is adaptable to various application domains, and the XD algebra which offers a rich set of operations over the XD meta model.
Objects and Object Groups
Objects and object groups are modelled as entities having a unique object identifier. Objects can be classified by being members of object groups represented by the association 'are_member_of' between collections 'Objects' and 'Object Groups'. An object group can be a member of other groups, making it possible to define complex classification hierarchies. Objects can refer to other objects expressed by the association 'refer_to' and it is even possible to create associations between 'refer_to' and 'Objects' making it possible to assign attributes and methods to 'refer_to' associations. An object is a member of the collection 'Objects' and we will refer to it as a meta object in the following text.
Methods and attributes are linked to a meta object by the corresponding associations 'have' and 'are_specified_by'. Value entities are associated with attributes and meta objects by associations 'are_defined_by' and 'refer_to'. The 'refer_to' association between value entities can be used to specify value sets.
The XD meta model can be implemented on any platform or database management system (DBMS) which provides constructs for managing collections of objects and associations between objects. For specifying abstract data types and evaluating operations, a developer can either implement against the eXtreme Design Framework (XDF) API or use the various XD languages such as the data manipulation language (DML) or the XD meta language (XDML) which are evaluated at runtime.
The main difference of our meta model to other object models is the fact that the set of object properties such as attributes and methods is not fixed, thereby enabling properties to be added and removed at runtime.
Further, there is a set of operations defined on the XD meta model called the XD algebra and, on the conceptual level, we find associations between objects and object groups supporting classification structures and object hierarchies.