• Aucun résultat trouvé

Composition de modèles de conception homogènes basés sur le standard UML

3.2 Processus de composition de modèles UML

Dans cette section, je détaillerai le processus de composition du modèle que nous avons proposé. Il est également structuré en trois phases :

• une phase de pré-composition, • une phase de composition,

• une phase de post-composition qui est semi-automatique (guidée par l’utilisateur). Le processus de composition est représenté par un flux d’activité sur la Figure 3.6.

3.2.1 Phase de pré-composition

L’objectif principal de cette phase est d’harmoniser les modèles partiels afin d’éliminer les conflits possibles (nom, structure, etc.) résultant d’une modélisation séparée. Cela se fait entre autres par la résolution des conflits en déterminant les incohérences et les similitudes entre les éléments des modèles de conception des différents points de vue. Cette phase fait face à des conflits tels que la polysémie (même nom et significations différentes), la synonymie (même sens et noms différents) et les incohérences structurelles (en particulier les relations de géné-ralisation ou d’association). Dans ce dernier cas, il est nécessaire d’appliquer une heuristique qui peut être basée sur des motifs, ou d’exiger l’intervention du concepteur qui contrôle le pro-cessus de composition. Par ailleurs, certains des conflits identifiés ici peuvent également être dus au fait que les différents acteurs du système peuvent avoir des objectifs contradictoires. Ce problème particulier, n’est pas traité dans le cadre de cette approche.

FIGURE3.6 – Processus de composition dans VUML

3.2.2 Phase de composition

Nous nous sommes fondés sur [83, 79] et [131] qui soutiennent que l’automatisation de la composition des modèles comprend deux tâches différentes qui devraient être effectuées par deux opérateurs distincts : un opérateur de correspondance et un opérateur de fusion. Cette séparation facilite la maintenabilité du processus de composition puisque l’opération de corres-pondance est plus stable que l’opération de fusion qui peut obéir à des stratégies modifiables. C’est pourquoi nous avons proposé une opération de composition en deux étapes : une phase de mise en correspondance et une phase de fusion (Figure 3.7). L’étape de mise en correspondance (Correspondance) consiste à identifier les liens entre les modèles à composer (nous ne consi-dérons ici que deux modèles sources). Il est régi par des règles de correspondance qui mettent en œuvre des stratégies de comparaison entre les éléments de modèle. La comparaison des élé-ments est basée sur des propriétés internes définies au niveau du méta-modèle. Par exemple, un sous-ensemble de propriétés internes d’une classe UML peut être représenté par nom, isAbs-tract, ownedAttribute, ownedOperation, qui sont des propriétés de la classe métaclasse dans le méta-modèle UML [163]. Une règle de correspondance, appliquée à deux éléments décrivant le même concept dans des modèles source différents, crée une relation de correspondance entre ces éléments. Cette relation est ensuite enregistrée dans un modèle de correspondances.

L’étape de Fusion dépend du méta-modèle cible. Dans notre contexte applicatif, cette étape de fusion vise à produire un modèle VUML dont les éléments sont stéréotypés selon le profil VUML. En fait, les éléments VUML sont créés en appliquant des règles de fusion (merging rules) et des règles de traduction (translation rules). La stratégie de fusion dépend

principa-lement du type de lien. Les règles de fusion s’appliquent aux éléments qui sont liés les uns aux autres par des relations de correspondance. En ce qui concerne les règles de traduction, elles s’appliquent aux éléments qui n’ont pas de correspondant dans le modèle opposé (ils sont simplement copiés dans le modèle VUML).

FIGURE3.7 – Chaîne de transformation d’une composition VUML

3.2.3 Phase postérieure à la composition

Après la phase de composition, une étape d’analyse est effectuée (voir Figure 3.8) afin de découvrir d’éventuelles erreurs de composition. Le modèle VUML composé est vérifié par rapport aux propriétés souhaitées et vis-à-vis de sa conformité aux règles de bonne formation. Lorsqu’une règle est violée, une erreur est détectée et un élément de problème est créé et stocké dans un modèle d’erreurs conforme à un méta-modèle d’erreurs tel que définit dans [31]. Le modèle d’erreurs peut être analysé puis importé dans un outil de refactoring de modèles dédié à la résolution de tels problèmes. Les règles de bonne formation définies au niveau du méta-modèle pour exprimer la sémantique statique de VUML - en particulier celles relatives aux constructions du langage - sont utilisées pour développer une technique de preuve basée sur les propriétés, comme décrit dans [64].

La Figure 3.8 décrit le principe de la transformation utilisée pour vérifier le modèle VUML composé. Elle produit un modèle de diagnostic détaillant les erreurs identifiées.

FIGURE3.8 – Vérification d’un modèle VUML avec transformation ATL

Cette technique est basée sur une extension d’OCL permettant de produire des informations détaillées dans un modèle de sortie. Elle met en œuvre les règles de contrôle définies en ATL. En effet, une règle ATL est définie pour chaque contrainte à vérifier. Le contexte de la contrainte OCL définit le type de la source du motif de la règle, tandis que la condition de garde est la négation de l’expression booléenne associée à la contrainte. Enfin, le type du motif cible carac-térise une erreur (Problème). Ce type, défini dans le méta-modèle de diagnostic de J. Bézivin et al. [31], donne des précisions sur l’erreur (gravité, localisation, description, etc.).