• Aucun résultat trouvé

4 Chapitre VI L'Ingénierie Dirigée par les Modèles

4.3 L’approche MDA

4.3.4 Les profils UML

Nous ne pouvons pas affirmer qu’une approche est meilleure que l’autre dans la mesure où elles ont chacune des avantages et des inconvénients. En effet, en définissant un nouveau langage, il est possible de spécifier une notation qui conviendra parfaitement à une plateforme particulière. Cependant, comme ces nouveaux langages ne respectent pas la sémantique d’UML, il ne sera alors pas possible d’utiliser des outils tiers existants pour créer des modèles, générer du code, faire de la génération inversée, etc. Réciproquement les profils UML, autorisant l’utilisation d’outils de modélisation existants, peuvent ne pas fournir une

Chapitre IV – L’ingénierie Dirigée par les Modèles

56 notation suffisamment adéquate requise par certains systèmes. Le choix de l’approche à adopter s’avère ainsi non trivial. Cependant, l’historique d’UML, le fait qu’UML soit préconisé par le MOF et la définition de ce formalisme comme étant le standard de modélisation dans le milieu du génie logiciel, sont autant d’arguments qui incitent à opter pour l’utilisation de profils UML dans un cadre d’Ingénierie Dirigée par les Modèles.

Par nature, un modèle UML ne peut pas être productif (dans le sens où cette méthode est un formalisme de modélisation et non un langage de programmation), compte tenu de la multitude de langages existants et d’une sémantique trop générale. Il en découle le besoin de spécialiser, de profiler, UML pour des domaines précis. Un profil permet de spécialiser le formalisme UML pour un domaine particulier. De nombreux profils ont été développés pour des domaines ciblés ou des technologies particulières. Par exemple, les profils les plus répandus sont les profils CORBA et EJB. Dans le cas du profil EJB, il est par exemple possible de préciser qu’une classe au sens UML est une EJB Session ou un autre concept de ce domaine. Il est important de noter que les profils UML permettent la personnalisation de tout métamodèle définis à l’aide du MOF. D’une manière similaire, un profil UML peut aussi en spécialiser un autre. UML met en évidence différentes raisons pour lesquelles un développeur serait amené à spécialiser un métamodèle qu’il aurait défini :

• Pour obtenir une terminologie adaptée à une plateforme particulière ou à un domaine particulier.

• Pour définir une syntaxe pour des constructeurs qui n’auraient pas de notations dans le métamodèle existant.

• Pour définir une notation différente pour un élément déjà existant.

• Pour ajouter des concepts qui n’existent pas dans le métamodèle.

• Pour ajouter des contraintes restreignant l’utilisation du métamodèle et de ses constructeurs dans certains contextes.

• Pour ajouter des informations qui peuvent être utilisées lors de processus de transformation de modèles.

Un profil UML est défini comme un paquetage UML stéréotypé « profil » qui peut soit étendre un métamodèle ou un autre profil. Un profil UML est défini à l’aide de trois mécanismes : stéréotypes, contraintes et valeurs marquées.

Dans la figure 4.5, nous illustrons ces concepts par la déf

Dans cet exemple, nous ajoutons deux nouveaux éléments que nous nommons Teinture et Intensité. De plus, nous associons à ces deux éléments des propriétés telles que la couleur pour un élément de type Teinture et une i

Intensité. Dans cet exemple, nous restreignons l’utilisation de ces deux nouveaux éléments sur les méta-classes existantes Class et Association.

Figure

Un stéréotype est défini par un nom et par l’ensemble des méta

attaché. Graphiquement, les stéréotypes sont définis dans des boîtes du formalisme stéréotypées « Stereotypes ». Dans notre exemple le profi

type class et association peuvent être teintées, mais que seules les associations peuvent avoir une intensité. Les éléments du métamodèle sont spécifiés par les stéréotypes

« Metaclass ». La notation d’extension est matéri vers la méta-classe.

Il est possible d’ajouter des contraintes aux stéréotypes définis, imposant ainsi des restrictions aux éléments correspondants du métamodèle. Ces contraintes sont spécifiées à l’aide d’OCL(Richters and Gogolla 2002

doit avoir la même couleur que les classes liées de la manière suivante :

, nous illustrons ces concepts par la définition d’un profil simple et minimal. Dans cet exemple, nous ajoutons deux nouveaux éléments que nous nommons Teinture et Intensité. De plus, nous associons à ces deux éléments des propriétés telles que la couleur pour un élément de type Teinture et une intensité numérique pour un élément de type Intensité. Dans cet exemple, nous restreignons l’utilisation de ces deux nouveaux éléments sur

classes existantes Class et Association.

Figure 4.5 Exemple d’un profil UML.

Un stéréotype est défini par un nom et par l’ensemble des méta-classes auxquelles il est attaché. Graphiquement, les stéréotypes sont définis dans des boîtes du formalisme

stéréotypées « Stereotypes ». Dans notre exemple le profil UML indique que des éléments de type class et association peuvent être teintées, mais que seules les associations peuvent avoir une intensité. Les éléments du métamodèle sont spécifiés par les stéréotypes

« Metaclass ». La notation d’extension est matérialisée par une flèche allant du stéréotype

Il est possible d’ajouter des contraintes aux stéréotypes définis, imposant ainsi des restrictions aux éléments correspondants du métamodèle. Ces contraintes sont spécifiées à l’aide Richters and Gogolla 2002). Dans notre exemple nous spécifions qu’une association doit avoir la même couleur que les classes liées de la manière suivante :

57 inition d’un profil simple et minimal. Dans cet exemple, nous ajoutons deux nouveaux éléments que nous nommons Teinture et Intensité. De plus, nous associons à ces deux éléments des propriétés telles que la couleur ntensité numérique pour un élément de type Intensité. Dans cet exemple, nous restreignons l’utilisation de ces deux nouveaux éléments sur

classes auxquelles il est attaché. Graphiquement, les stéréotypes sont définis dans des boîtes du formalisme UML, indique que des éléments de type class et association peuvent être teintées, mais que seules les associations peuvent avoir une intensité. Les éléments du métamodèle sont spécifiés par les stéréotypes

alisée par une flèche allant du stéréotype

Il est possible d’ajouter des contraintes aux stéréotypes définis, imposant ainsi des restrictions aux éléments correspondants du métamodèle. Ces contraintes sont spécifiées à l’aide . Dans notre exemple nous spécifions qu’une association

Chapitre IV – L’ingénierie Dirigée par les Modèles

58 Régle 4.1 Exemple de contrainte OCL.

Des valeurs marquées permettent de définir des méta attributs attachés à la méta classe du métamodèle étendu par un profil UML. Les valeurs marquées possèdent un nom et un type et sont associées à un stéréotype. Dans l’exemple de la figure 4.5, le stéréotype Intensité possède une valeur marquée intensité de type entier. Graphiquement, les valeurs marquées sont spécifiées comme étant des attributs de la classe définissant un stéréotype.

Un profil UML est donc un ensemble de stéréotypes, contraintes et valeurs marquées. Comme nous l’avons mentionné précédemment, le mécanisme de profil permet d’étendre la syntaxe et la sémantique des éléments. Les profils UML restent un moyen efficace lorsque l’on souhaite spécialiser la sémantique d’UML à un domaine particulier.

Différents profils ont été définis et publiquement disponibles. Certains de ces profils ont été adoptés et standardisés par l’OMG, tels que le profil pour CORBA, CCM (CORBA Component Model), EDOC (Enterprise Distributer Object Computing) et le profil EAI (Enterprise Application Integration). Cette liste est non exhaustive. De nombreux profils ont été définis et d’autres sont en cours d’approbation par l’OMG. L’intérêt de ces profils publics est de pouvoir être réutilisables par toute application de modélisation UML.

Dans le cadre d’une approche d’Ingénierie Dirigée par les Modèles, les activités les plus importantes sont la modélisation des différents aspects d’un système et la définition de transformations d’un modèle vers un autre d’une manière automatique. Nous aborderons la problématique de transformation de modèles dans la section 4.3.5

Les profils UML peuvent tenir un rôle important dans la description de la plateforme cible et dans les règles de transformation entre les modèles. Si nous utilisons des profils UML pour spécifier le métamodèle d’une plateforme spécifique, cela garantira que les modèles

59 dérivés seront en concordance avec UML. Nous pouvons affirmer que le succès d’une approche IDM réside dans l’utilisation maximale de standards.

Les mécanismes fournis par les profils UML conviennent à la description de modèles pour toute plateforme. Nous avons besoin de définir des correspondances (mappings) entre chaque élément d’un PIM, et les stéréotypes, contraintes, et valeurs marquées qui forment un profil UML. L’idée d’un profil UML dans une approche IDM est d’utiliser les stéréotypes définissant les concepts d’un PIM et de produire les éléments correspondants du PSM.

Dans cette section, nous avons présenté les profils UML comme étant un moyen efficace d’étendre le métamodèle UML pour le personnaliser à la sémantique d’une plateforme et d’un domaine spécifique. Les outils actuels de modélisation permettent la définition et l’utilisation de profils mais uniquement au niveau graphique. Cela signifie que la vérification des contraintes associées aux stéréotypes n’est pas ou très peu supportée ce qui nous amènera à proposer un mécanisme de définition de contraintes et plus précisément un formalisme de validation incrémentale que nous présenterons dans la seconde partie de cette thèse concernant nos contributions.