• Aucun résultat trouvé

Processus de développement dans MDA

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

4.3 L’approche MDA

4.3.1 Processus de développement dans MDA

modélisation et métamodélisation. La clé de MDA consiste en l’utilisation de modèles aux différentes phases de développement d’une application en s’appuyant sur le standard UML. Plus précisément, MDA lesquelles préconise l’élaboration des modèles :

– d’exigences (Computation Independant Model - CIM), dans lesquels aucune considération informatique n’apparait,

– d’analyse et de conception (Platform Independant Model - PIM)

– de code (Platform Specific Model - PSM).

Dans la section 4.3.5 nous discuterons ces trois types de modèles et leur place dans le processus de développement MDA. L’objectif principal de MDA(Blanc 2005), est l’établissement de modèles durables (PIM), sans faire allusion aux détails techniques des plateformes d’exécution (J2EE, .Net, PHP, Oracle, ect.), dans le but de permettre la génération automatique de la globalité des modèles de code (PSM) . Cette génération automatique est réalisable grâce à l’exécution des transformations de modèles. On saisit pourquoi le succés de MDA et de l’IDM en général, repose en grande partie sur la résolution de problème de transformation de modèle. Cette problématique a donnée lieu ces dernières années à plusieurs travaux scientifiques(Jézéquel, Defour et al. 2004) (Jouault 2006) et de normalisation (OMG 2003)

4.3.1 Processus de développement dans MDA

Nous avons insisté sur la place centrale qu’occupe les modèles dans l’IDM et dans l’approche MDA. C’est ce qui la distingue principalement des approches habituelles du génie. Nous avons vu aussi que MDA recommandait l’élaboration de différents modèles : modèle d’exigences CIM, modèle d’analyse et de conception abstraite PIM et modèle de code et de conception concrète PSM. Ces modèles de base seront présentés plus en détail dans les sous sections suivantes. Au dela de ces modèles de base, MDA préconise de modéliser n’importe quel artefact nécessaire au cycle de développement des applications. Nous pouvons donc trouver des modèles d’éxigence, de test, de sécurité, etc. Cependant, toute ces notions de modèles et de formalisme de modélisation ne sont pas suffisantes pour mettre en œuvre MDA. Un processus de développement (appelé aussi méthode de développement) est plus que nécessaire pour MDA. Une méthode définit une démarche reproductible qui procure des résultats crédibles. Tous les domaines de la connaissance utilisent des méthodes plus ou moins compliquées et plus ou moins formalisées.

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

50 Figure 4.3 Processus de développement selon l’approche MDA

Une méthode d’élaboration de logiciels selon l’approche MDA doit décrire comment construire des systèmes logiciels de manière fiable et reproductible en utilisant les différents types de modèles. La figure 4.3 illustre le processus de développement selon l’approche MDA. Cette figure en trois couloirs est une extension d’une première ébauche présentée dans (Kleppe, Warmer et al. 2003). Le couloir de gauche présente les activités du processus classique de développement de logiciel. Le couloir central présente les différents modèles impliqués dans chaque activité et les liens entre les différents modèles. Enfin, le couloir de droite présente les principaux formalismes préconisés à chaque étape et pour chaque type de modèle. Comme il a été remarqué dans (Kleppe, Warmer et al. 2003), les phases de développement dans MDA sont simillaires au processus habituel de développement de logiciels. La principale distinction demeure dans la nature des artefacts qui sont génères pendant le processus de développement. Les artefacts dans le cadre de MDA sont des modèles formels interprétables et manipulables par une machine.

4.3.1.1 Le modèle d’exigences CIM

Un modèle d’exigence doit indiquer l’application dans son milieu afin d’expliquer quels sont les services offerts par l’application et quelles sont les autres entités avec lesquelles il inter-agit. Le modèle d’exigence explique les besoins du client et symbolise ainsi la position de départ dans le cycle de développement. Les modèles d’exigences peuvent être vu comme des éléments contractuels, affectés à servir comme référence lorsqu’on voudra s’assurer qu’une application est appropriée aux demandes du client. Il est important de noter qu’un modèle d’exigences ne comporte pas d’information sur la réalisation de l’application ni sur les traitements. C’est pourquoi, dans le lexique MDA, les modèles d’exigences sont appelés les

51 CIM (Computa tion Independant Model), "modèle indépendant de la programmation". Avec UML, un modèle d’exigence peut se résumer à un diagramme de cas d’utilisation. Ce dernier contient en effet les fonctionnalités offertes par l’application (cas d’utilisation) ainsi que les différentes entités qui interagissent avec elles (acteurs) sans donner d’information sur le fonctionnement de l’application.

4.3.1.2 Le modèle PIM

Désque le modèle d’exigences est réalisé et validé par le client, commence alors le travail d’analyse et de conception. Dans cette phase MDA utilise les modèles appelés PIM (Platform Independant Model), désignés aussi par modèle d’analyse et de conception abstraite. En effet, ces modèles spécifiants généralement la logique métier de l’entreprise, sont libres de toute plate-forme technique et ne doivent pas englober d’informations sur les technologies qui seront utilisées pour déployer l’application. En incorporant les détails d’implémentations que très tard dans le cycle de développement, il est possible de maximiser la séparation des préoccupations entre la logique métier des applications et les techniques d’implémentation. Aujourdhui, UML s’es imposé comme la référence pour réaliser les modèles d’analyse et de conception. Il est important de noter que MDA ne fait que préconiser l’utilisation d’UML et qu’il n’exclue pas d’autres langages puissent être utilisés. En effet, l’IDM, au contraire, favorise la définition de langages de modélisation dédiée à un domaine particulier(Jouault 2006) (Domain Specific Languages – DSL) offrant ainsi aux utilisateurs des concepts propres à leur métier et dont ils ont la maîtrise. Ces langages sont généralement de petite taille et doivent être facilement manipulables, transformables, combinables, etc. Quels que soient les langages utilisés, le rôle des modèles d’analyse et de conception est de perpétuer la logique métier de l’entreprise et de faire le lien entre les modèles d’exigences et le code final de l’application. Les modèles PIM doivent être prolifiques, c’est à dire qu’ils doivent être plus précis et contenir plus d’information pour qu’une génération automatique de code soit possible antérieurement.

4.3.1.3 Le modèle PSM

La phase la plus délicate dans MDA, touche la génération de code. Le modèle PSM (Platform Specific Model), appelé aussi le modèle de code ou de conception concrète, est alors mis en jeux. MDA considère que le code final d’application peut être facilement acquis à partir du PSM. En effet, le code d’une application se synthétise à une suite de lignes textuelles, comme un fichier SQL, alors qu’un modèle de code est plutôt une représentation structurée incluant, par exemple, les concepts de table, clé primaire, clé étrangère, etc. L’écriture de code à partir

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

52 du modèle de code est donc une opération assez banale. L’essentielle différence entre un modèle de code PSM et un modèle d’analyse et de conception PIM réside dans le fait que le modèle de code est lié à une plate-forme d’exécution. Ainsi, une caractéristique importante des modèles de code est qu’ils assimilent les concepts des plate-formes d’exécution. Pour élaborer des modèles de code, MDA propose, entre autres, l’utilisation des profils UML (voir section 4.3.4). Un profil UML est une adaptation du langage UML à un domaine particulier.