Basic Concepts
The abstract metamodel of the HOPEX platform offers the possibility of managing the notion of inheritance for MetaClasses and MetaAssociations. This enables a significant reduction in the number of MetaAssociations.
+ Available from version MEGA 2009.
MetaClass types are:
• Concrete MetaClasses: MetaClasses for which instances exist
• Abstract MetaClasses: generic MetaClasses used only to describe inheritance.
Abstract metamodel
The abstract metamodel on which the HOPEX platform is based is described using metamodel diagrams. Graphical rules provide a view of basic concepts.
Abstract MetaClass
An abstract MetaClass is a MetaClass that does not have a concrete occurrence. It enables definition of common attributes to MetaClasses that inherit these.
When a concrete MetaClass inherits an abstract MetaClass, it inherits:
• MetaAttributes
Example: MetaAttributes of the"BPMN Activity" MetaClass are: "Predicate", "Loop", "Ad hoc", "Multiple", etc.
• MetaAssociations,
Example: the MetaAssociation inherited from the "Element with Note" MetaClass is: (Note Element/note) enabling linking of a Note object with an "Element with Note".
• Properties pages (MetaPropertyPage).
• Menu commands (MetaCommand).
Generic MetaAssociations
A generic MetaAssociation is a MetaAssociation common to a set of concrete MetaClasses. It is defined between an abstract and another MetaClass. All MetaClasses inheriting the abstract MetaClass inherit this "Generic" MetaAssociation by default.
For example, the generic MetaAssociation (Element with note/Note) defined between the "Element with Note" abstract MetaClass and the "Note" MetaClass exists for all concrete MetaClasses inherited from the "Element with Note" abstract MetaClass.