• Aucun résultat trouvé

6.1. SEQUIOA : Environnement pour le développement des lignes de produits logiciels

6.1.2. Architecture

L’environnement Sequoia est composé d’un ensemble d’outils implémentés sous formes de plugins Eclipse (voir la figure 6.2). Pour modéliser les lignes de produits logiciels, nous

utilisons le modeleur Papyrus 4

.

1111111111111111111111111111111111111111 1111111111111111111

4

Figure 6. 2: Outils de Sequoia 6.1.2.1. Outil de propagation

Après avoir spécifié les éléments variables du modèle de ligne de produits logiciels, il est important de s’assurer de la cohérence des éléments. Cette cohérence est indispensable pour la génération de modèles de produits bien formés, c'est-à-dire conforme à la sémantique UML. Pour obtenir tel résultat, il faut déterminer l’impact de la variabilité à travers le modèle. En effet, définir un élément comme variable peut affecter par construction d’autres éléments du modèle et rendre ces derniers implicitement variables.

C’est ainsi que vient le rôle de l’outil de propagation de variabilité. Le traitement réalisé par cet outil consiste donc à rendre implicitement variables tous les éléments qui sont affectés par des éléments explicitement variables. Les éléments variables propagés seront identifiés à partir des éléments variables spécifiés par l’utilisateur. Ajoutés à cette identification, des contraintes de variabilité dédiées définissent ces liens et assurent la cohérence en termes de

variabilité dans le modèle complet de la ligne de produits logiciels.1En général, l’ajout

automatique de la variabilité sur un élément provient du fait qu’un autre élément dans le modèle est variable. La contrainte qui relie les éléments est en général de type implication. Le traitement assuré par l’outil de propagation se base sur des règles dites « basiques » qui ont été extraites de l’analyse du méta-modèle UML 2.0. Ces règles sont non exhaustives et proviennent de l’étude de la structuration des éléments dans le diagramme de classes et du

2DC35AF4C3F6 2DC3577D5 AFD3C8 2DC3546AC3F65 F$557383F6 2DC35A3 C3F6

117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111Évaluation1

1

diagramme de machines à états de protocole. Cependant, la propagation de la variabilité dans un modèle de ligne de produits logiciels peut provoquer une explosion du nombre d’éléments variables dans un modèle. Cette explosion rend difficile l’exploitation et l’analyse de la dérivation. Afin de limiter cela, certaines règles sont modifiées.

La conception d’une ligne de produits logiciels ne se limite pas seulement qu’à l’utilisation du langage UML mais aussi à l’utilisation conjointe de profils UML complémentaires tels que

par exemple SysML5

et MARTE6

. Par conséquent, l’outil de propagation permet d‘ajouter des règles liées au métier des concepteurs, et de supprimer l’application de règles basiques. 6.1.2.3 Outil de calcul de produits

Afin de générer le guide d’aide à la dérivation. Il faut tout d’abord être capable de calculer tous les produits valides sachant qu’il est possible de transformer ce problème en un problème de satisfaction de contraintes booléennes à partir de l’ensemble de contraintes provenant des groupes de variation.

Les groupes de variation expriment des contraintes sur l’existence des éléments. Les produits possibles sont l’ensemble des combinaisons booléennes respectant les contraintes. En utilisant un solveur de type SAT, un solveur des satisfactions de contraintes booléenne [62], il est possible d’obtenir l’ensemble des combinaisons possibles. Grâce à l’ensemble des combinaisons possibles, il est possible de construire le modèle de décisions.

6.1.2.4. Outil de génération de modèle de décision

L’outil de génération du modèle de décisions de Sequoia génère automatiquement le modèle de décisions à partir de l’analyse systématique du modèle de ligne de produits logiciels. La cohérence est donc implicite par construction. Le modèle de décisions est présenté sous forme d’un diagramme d’activité UML. Il propose une séquence de choix pour la dérivation du modèle de ligne de produits logiciels. Chaque choix effectué impliquera un ensemble

1111111111111111111111111111111111111111 1111111111111111111

5

SysML, Object Management Group, 2010.

4

The UML Profile for MARTE: Modeling and Analysis of Real-Time and Embedded Systems, Object Management Group, 2003.

1

1 1

d’actions ou effets à réaliser sur le modèle de la ligne de produits logiciels pour obtenir le modèle d’un produit particulier.

6.1.2.5. Outil de dérivation

Chaque chemin possible du modèle de décisions correspond à la réalisation d’un modèle de produit. La dérivation d’un modèle de produit est facile à réaliser. L’outil de dérivation analyse le modèle de décisions et permet de collecter les séquences d’effets de chaque chemin. Sachant que chaque effet contient les instructions de transformation de modèles, la séquence d’effets contenue dans un chemin correspond à la séquence de transformations de modèle nécessaire pour la dérivation. La dérivation consistera alors à faire :

• des suppressions d’éléments,

• des substitutions de paramètres.

Arrivée à l’état final, il faut réaliser un nettoyage du modèle qui passera par :

• la suppression des éléments du modèle liés au calcul de la dérivation (suppressions des

états isolés…),

• la dés-application du profil Sequoia,

• la suppression du modèle de décisions

L’outil de dérivation existant de Sequoia est au stage de prototype. Il propose à l’utilisateur les choix à effectuer de manière interactive. Pour cela, il interprète le modèle de décisions, à partir du nœud initial jusqu’au nœud final. Lorsque qu’il arrive sur un nœud de décision, l’outil de dérivation propose de choisir parmi les résolutions spécifiées par le nœud résolution.

119111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111Évaluation1

1

Figure 6.3 : Dérivation sur un nœud Décision

La figure 6.3 montre l’exécution de l’outil de dérivation qui interprète le modèle de décisions issu d’un modèle. Comme illustré, l’outil teste une contrainte alternative sur trois éléments. En rouge est indiqué la motivation de la contrainte (ici le test de la contrainte alternative) et en dessous les 3 possibilités que le concepteur peut choisir. A tout moment le concepteur peut arrêter la dérivation. Dans ce cas nous obtenons un modèle de ligne de produits logiciels partiellement dérivé.

Nous avons ainsi présenté dans cette section le processus de développement de Sequoia ainsi que les différents outils implémentés dans ce cadre. Nous rappelons que les outils qui implémentent les propositions de cette thèse sont intégrés dans l’environnement Sequoia. Nous expliquons dans la section suivante comment l’outil de consolidation et l’outil de fusion sont implémentés.