[
OsEATools |
MetaModel |
Overview |
Base-principles and requirements |
Model-objects |
Entities |
Relations |
Models |
Categories ]
Metamodel: Models
A
model is a list of relations linking entities in a structured way, and presented in a structured way.
A
model-type is a template (‘class’) for a specific type of model.
A model-type is, in essence, a list of permissible relation-types and any additional guiding semantic rules. (Permissible entity-types do not need to be listed, as they should be implied automatically from the relation-types.)
A model-type may present its referenced content in the form of a list, whose contents are specified by its relation-type list. In this case, one end of each included relation-type would link to the model-type itself, rather than to an entity-type or another relation-type. (Another option is for the required relation-types to be created temporarily on-the-fly by the model itself, as part of a display-method for the model-type.)
A model may optionally take the form of a visual diagram. In this case, the model must also maintain position-information for display of entities and relations and the connections between them.
A model-type will automatically enforce many types of semantic rules, because each relation-type identifies the entity-types with which it may connect. (For more complex semantic rules – such as ORM
n-ary relations and other complex computed or multi-entity dependencies – additional rules may need to added to the model-type: this principle should be included in system design, but creation of the actual functionality may be left until a later implementation stage.)
To support development processes, it is necessary that the implementation of the model-type should allow the creation of ‘dangling’ relation-instances, in which a relation may be linked to a matching entity at one end but a ‘dummy’ placeholder displayed at the other. This would permit later placement of an instance of the required entity-type. In rule-checking, the ‘dummy’ placeholder should flag an incompleteness-error, equivalent to the role of the ‘
NaN?’ (not-a-number) illegal-number placeholder in mathematics functions in several computing languages. Such a mechanism would also permit automatic listing of not only of allowable relation-types that may be linked to an entity on a given model (a function already available in several existing modeling tools such as Visual Case and Visual Paradigm Agilian), but also of allowable entity-types that may be attached to a ‘dangling’ relation.
Further semantic checks may be supported by comparing all included entities against the implied rules of the relation-types list. an error may be flagged if the relation-type specifies that it is mandatory for all entities of the matching type to be connected to such a relation.
Any model may be re-converted to a model-type, by converting and rationalizing its list of relation-instances to a list of relation-types encapsulated within the new model-type. Some parts of the rationalization may be done automatically, but there will also need to be facilities for manual edit, such as to clear some relation-type properties to defaults and/or to editable form.
Any model may be converted to a reference-model by defining ‘dangling’
«association» or
«realization» relations for each of the entities in the intended reference-model, which would link to instances of the same respective entity-types.
[
OsEATools |
MetaModel |
Overview |
Base-principles and requirements |
Model-objects |
Entities |
Relations |
Models |
Categories ]