Héritage de la variation
Par défaut, l'objet variant hérite des éléments de l'objet varié (l'objet original).
Des commandes disponibles sur les éléments hérités vous permettent :
• d’exclure ces éléments de la variante
• de les remplacer par d’autres.
Prenons une application A comprenant les fonctionnalités F1 et F2. Par défaut, la variante Application A v2.0 hérite de ces fonctionnalités.
Exclure un élément de la variante
Dans l’exemple ci-dessus, pour exclure la fonctionnalité F2 de l’objet variant :
1. Cliquez avec le bouton droit sur la fonctionnalité héritée.
2. Cliquez sur Exclure.
La fonctionnalité disparaît des propriétés de l’Application A v2.0.
Remplacer un élément par un autre : la substitution
Une substitution indique qu'un objet est utilisé au lieu d’un autre dans un contexte donné. Dans le cas d'une variation, vous pouvez substituer un des éléments de l’objet varié par l'objet de votre choix.

Contrairement à une variation, une substitution n’implique pas d’héritage mais une conformité fonctionnelle.
Exemple de substitution
Dans le cas des versions d'application, les substitutions permettent d'exprimer le fait suivant : en considérant telle évolution d'application, un service 2 est remplacé par un nouveau service 3.
• Le nouveau service 3 doit être lié à l'application variante
• le service 2 est lié à une des applications ancêtres (il est possible d’avoir plusieurs générations de l'application liées en cascade)
Différences entre variation et substitution
Les variations expriment une relation de similitude entre deux modèles ; une application v2.0 est très similaire à v1.0. La variation permet de se concentrer sur les différences. Celles-ci sont exprimées par l’intermédiaire d’un autre objet. Une variante n’est liée qu'à un seul objet varié (pour simplifier les problèmes d'héritage).
Une substitution quant à elle peut être reliée à plusieurs éléments sources et à plusieurs éléments cibles. Ceci permet d'indiquer que tel ensemble de services est remplacé par tel autre ensemble de nouveaux services.
Si un élément remplaçant est similaire à l'élément remplacé (une nouvelle version d'un service), alors il convient de l'indiquer en ajoutant une variation entre eux.

La faculté d’hériter une relation est une fonctionnalité déclarée au niveau du métamodèle qui peut être adaptée en fonction des besoins. Il en va de même concernant la capacité à substituer un concept.
Remplacer un objet
Certains éléments d’une variante peuvent être remplacés par d’autres.
Par exemple, dans une nouvelle application, vous pouvez remplacer un service applicatif hérité d’un autre service, quel qu’il soit.
D’autres éléments tels que les fonctionnalités ne sont pas substituables. Dans ce cas, la commande de remplacement est grisée.
Pour remplacer un objet par un autre dans une variante :
1. Dans le navigateur HOPEX, dépliez l’objet variant pour voir ses objets hérités.
2. Sélectionnez l’élément que vous souhaitez remplacer.
3. Ouvrez son menu contextuel et cliquez sur Remplacer.
4. Dans la fenêtre qui apparaît, sélectionnez l’élément de substitution et cliquez sur OK.
Visualiser les éléments hérités
Pour visualiser les éléments hérités :
1. Ouvrez la fenêtre de propriétés de l’application variante.
2. Cliquez sur l’onglet Architecture.
3. Dans la zone
Architecture applicative, cliquez sur
Objet hérité 
.
Pour visualiser les éléments exclus ou remplacés par une substitution :
1. Suivez les étapes précédentes.
2. Cliquez sur
Exclu 
.

Le point ci-dessus illustre l’héritage autour du concept d’application.
Dans un diagramme, les éléments hérités sont accompagnés de la flèche

:
• dans l’arbre de navigation
• dans les diagrammes
Restaurer un élément
Pour restaurer un élément substitué ou exclu :
1. Dans la fenêtre de propriétés, cliquez sur
Exclu
pour afficher les éléments exclus.
2. Ouvrez le menu contextuel de l’élément en question et sélectionnez Restaurer.
Dans la fenêtre de propriétés de l’objet cible, l’onglet Général > Variations présente un rapport qui recense tous les liens obtenus directement ou par les applications variées, avec l’indication de la source ainsi que les motifs d'un remplacement ou d'un retrait via des substitutions.
Visualiser graphiquement les variations et substitutions
Dans les diagrammes de modèle, tels que le diagramme d’architecture interne d’une application, les éléments représentés dans le diagramme sont des éléments qui appartiennent à l’objet décrit.

Lorsque vous cliquez sur l’icône associée à un objet, un message explicatif apparaît.
Les objets hérités sont associés à une flèche d’héritage

Les éléments qui ont été remplacés sont signalés d’une croix rouge

.

Les objet d’un diagramme qui ne sont ni liés à l’objet décrit ni hérités ni remplacés sont signalés par un panneau d’avertissement

pour indiquer que leur présence dans le diagramme suppose un lien avec l’objet décrit.
Suppression du lien d’héritage dans un diagramme hiérarchique
Dans un diagramme hiérarchique, tel que l’arbre applicatif, l’héritage se caractérise par des liens entre les objets décrits.
Lorsque vous supprimez le lien d’héritage entre l’élément d’un objet varié et l’objet variant, vous supprimez tous les héritages possibles et donc également le lien entre l’élément et l’objet varié.
Exemple : Dans l’exemple ci-dessous, Application v2.0 est la variante de Application. La fonctionnalité F1 est détenue par Application et est héritée par Application v2.0. Si vous supprimez le lien d’héritage entre F1 et Application v2.0, vous supprimez également le lien de détention entre F1 et Application.
Limites de l’héritage
Il existe une restriction dans la longueur des enchaînements de variations. Les éléments hérités d'un objet varié ne se répercutent pas à l'infini sur tous les objets qui découlent de l'objet de départ. Au bout d'un certain sous-niveau de variations (66), l'héritage se perd. La limite est signalée par un message.
Consolider l’historique des variantes
Grâce aux variations, il est possible de garder une trace des différentes versions d’une application. Après un certain temps cependant, il peut être difficile voire inutile de gérer des versions devenues obsolètes. Vous pouvez supprimer du référentiel les versions antérieures à une certaine version en consolidant l’historique des variantes.
La commande de consolidation permet de rapatrier les éléments hérités d’un objet sur le nouvel objet et de détruire les ancêtres. Cela a pour but de réduire la volumétrie du référentiel et de retirer du référentiel des informations qui n’ont plus d’utilité.
Pour consolider une application :

Cliquez avec le bouton droit sur l’application variante et sélectionnez
Consolider.