Variations
A variation is a MetaClass that connects concepts to their variants. The link between the existing object and the new object allows the new object to inherit elements of the object from which it is derived.
The user can then indicate the differences to add to the new object, by modifying or replacing obsolete elements. This mechanism favors maintenance of modeled objects, since inherited elements are not duplicated and modifications to the first version of objects are automatically transferred to the variant objects.
From a theoretical viewpoint, there are three component types in a variation model.
• The varied model: this is the initial model. In the case of application version monitoring, the varied model is the initial application (version 1.0).
• The variant model: this is the new model similar to the first. For applications, it is the new application version (version 2.0).
• The variation: the variation is a modeling artifact that connects the varied model to the variant model. This object is of no interest in itself from an application viewpoint, but it is the reference point for declaring differences between varied and variant.
The variation system can be applied to different object types: it involves variable objects.
This tool for modeling by variation was introduced to satisfy the following requirements:
• Reduced replication: between a variant object and a varied object, there is no replication. A certain number of elements attached to the initial object are considered as connected to the new version of the object, and we therefore talk of relationship inheritance. Non-replication of links simplifies the maintenance of the different versions.

Not all elements attached to the initial object are inherited, but all inheritance relationships are defined at the level of the
HOPEX metamodel which can be easily modified.
• Integration in ergonomics: elements from a varied object can be viewed graphically in diagrams, but they are also visible in properties pages.
• Included in reports: all elements linked to a varied object can appear in the different reports.
Objects that can be varied
From a theoretical viewpoint, the objects that can be varied are concepts (MetaClasses) inheriting from the "Variable Object" abstract MetaClass.
When a concept is inherited from "Variable Object":
• Its instances can be varied.
• Properties pages are automatically added to the object.
• Finally, the relationship inheritance system is available for this concept.

To make an object variable, see paragraph “How to make an object” in the
HOPEX Power Studio guide.