Model Driven Architecture (MDA)

Model Driven Architecture (MDA)

Le MDA C’est une proposition à la fois d’une architecture et d’une démarche de développement. L’idée de base du MDA est la séparation des spécifications fonctionnelles d’un système des détails de son implé-mentation sur une plate-forme donnée. Pour cela, le MDA classe les modèles en modèles indépendants des plates-formes appelés PIM (Platform-Independent Models), et en modèles spécifiques appelés PSM (Platform-Specific Models) [14].
L’approche MDA permet de déployer un même modèle de type PIM sur plusieurs plates-formes (modèles PSM) grâce à des projections standardisées. Elle permet aux applications d’inter opérer en reliant leurs modèles et favorise l’adaptabilité aux évolutions des plates-formes et des techniques. La mise en œuvre du MDA est entièrement basée sur les modèles et leurs transformations[14].
D’après (Bézivin et Gérard,[8] ) la MDA fournit un processus de conception et met en œuvre des outils pour :
• Spécifier un système indépendamment de la plate-forme qui le supporte, et donc réaliser un PIM ;
• Enrichir ce modèle par étapes successives ;
• Spécifier les plateformes ;
• Choisir une plateforme particulière pour le système ;
• Transformer la spécification du système (PIM) en une autre spécification pour une plateforme particulière (PSM) ;
• Transformer un CIM en un PIM et un PIM en un autre PIM ;
• Raffiner le PSM jusqu’à obtenir une implémentation exécutable.
Les trois objectifs préliminaires de MDA sont la portabilité, l’interopérabilité et la réutilisabilité à travers une architecture de séparation des préoccupations.

 Les différents modèles de MDA

Le CIM (Computation Independent Model)

Il est indépendant de tout système informatique. C’est le modèle métier ou le modèle du domaine d’application. Le CIM permet la vision du système dans l’environnement où il opèrera, mais sans rentrer dans le détail de la structure du système, ni de son implémentation. Il aide à représenter ce que le système devra exactement faire[16].

Le PIM (Platform Independent Model)

Il est indépendant de toute plate-forme technique (EJB, CORBA, .NET,Ě) et ne contient pas d’informations sur les technologies qui seront utilisées pour déployer l’application. C’est un modèle informatique qui représente une vue partielle d’un CIM. Le PIM représente la logique métier spécifique au système ou le modèle de conception. Il représente le fonctionnement des entités et des services. Il doit être pérenne et durer au cours du temps. Il décrit le système, mais ne montre pas les détails de son utilisation sur la plate-forme[16].

Le PSM (Platform Specific Model)

Une fois le PIM est suffisamment détaillé, il est projeté vers un modèle spécifique (PSM). Pour obtenir un modèle spécifique, il faut choisir la ou les plates-formes d’exécution (plusieurs plates-formes peuvent être utilisées pour mettre en œuvre un même modèle). Les caractéristiques d’exécution et les informations de configuration qui ont été définies de façon générique sont converties pour tenir compte des spécificités de la plate-forme[4].

Le PDM (Platform Description Model)

Cette notion n’est pas encore bien définie par l’OMG, pour l’instant il s’agit plus d’une piste de recherche. Un PDM contient des informations pour la transformation de modèles vers une plate-forme en particulier, et il est spécifique de celle-ci. C’est un modèle de transformation qui va permettre le passage du PIM vers le PSM[16].
Figure 2: Les modèles du MDA pour réaliser une application[12].

Les transformations MDA

Les transformations possibles entre ces différents types de modèles sont représentées sur la Figure 3 [3]:
• Transformations PIM -> PIM et PSM -> PSM. Les transformations de type PIM vers PIM ou PSM vers PSM visent à enrichir, filtrer ou spécialiser le modèle. Il s’agit de transformations de modèle à modèle. Elles sont automatisables (ou partiellement automatisable) dans certains cas comme la traduction vers un autre langage mais les transformations de type raffinement ne le sont généralement pas ;
• Transformation PIM -> PSM. La transformation de PIM vers PSM permet de spécialiser le PIM en fonction de la plate-forme cible choisie. Elle n’est effectuée qu’une fois, le PIM suffisamment raffiné. Cette transformation de modèle à modèle est réalisée en s’appuyant sur les informations fournies par le PDM ;
• Transformation PSM -> code. La transformation de PSM vers l’implémentation (le code) est une transformation de type modèle à texte. Le code est parfois assimilé par certains à un PSM exécutable. Dans la pratique, il n’est généralement pas possible d’obtenir la totalité du code à partir du modèle et il est alors nécessaire de le compléter manuellement ;
• Transformations inverses PIM -> PSM et PSM -> code. Ces transformations sont des opérations de rétro-ingénierie (reverse engineering). Ce type de transformation pose de nombreuses difficultés mais il est essentiel pour la réutilisation de l’existant dans le cadre de l’approche MDA.
Figure 3: Les modèles et transformations dans l’approche MDA[16].

L’architecture MDA

Le modèle MDA est décomposé en 4 niveaux [9]:
• Le niveau M0 qui est le niveau des données réelles, est composé des informations que nous souhaitons modéliser. Ce niveau est souvent considéré comme étant le monde réel ;
• Le niveau M1 est composé de modèles d’information. Lorsque nous voulons décrire les informations de M0, le MDA considère que nous faisons un modèle appartenant au niveau M1. Tout modèle est exprimé dans un langage unique dont la définition est fournie explicitement au niveau M2 ;
• Le niveau M2 est donc composé de langages de définition des modèles d’information, appelés aussi méta-modèles. Un méta-modèle définit donc un langage de modélisation spécifique à un domaine et un profil définit un dialecte (une variante) de ce langage ;
• Le niveau M3 qui est composé d’une unique entité qui est le langage unique de définition des méta-modèles, aussi appelé le méta-méta-modèle ou le MOF (Meta-Object Facility). Le MOF définit la structure de tous les méta-modèles qui se trouvent au niveau M2. Le MOF est réflexif, c’est-à-dire que la description du MOF s’applique au MOF lui-même, ce qui permet de dire que le niveau M3 est le dernier niveau de l’architecture. Le niveau M3 correspond donc aux fonctionnalités universelles de modélisation logicielle, alors que le niveau M2 correspond aux aspects spécifiques des différents domaines, chaque aspect particulier étant pris en compte par un méta-modèle spécifique.
Figure 4: L’architecture MDA[11].

Le développement des applications mobiles

Le développement natif

Le développement natif consiste à développer avec les outils/langages propres à chaque système d’exploitation.
• Objective C avec l’IDE XCode pour iOS (Il vous faudra nécessairement un mac pour pouvoir compiler l’application) ;
• Java avec Eclipse pour Android ;
• C# avec Visual Studio pour Windows Phone.
Cette technique permet d’obtenir le résultat le plus proche du système ciblé. Nous utilisons les outils dédiés à chacun des environnements, et nous disposons des meilleures conditions pour la réalisation et les tests de notre application[6].
Figure 5: Stratégie de développement natif [5].

Le développement hybride

Si nous écartons la solution native pour des raisons de coût et de réactivité lors des mises à jour et des correctifs, il faut se diriger vers une approche qui permet de partager le maximum de code possible. Une des manières d’arriver à ce résultat est ce que nous appellons le “quasi-natif”. Le principe est simple : nous utilisons un seul langage de programmation, et nous développons une seule fois mais nous utilisons un ensemble d’outils pour compiler et packager une version de l’application adaptée à chaque cible. Pour cela, soit le code “générique”’ est traduit dans le langage compris par la plateforme puis compilé nativement, soit il est compris et exécuté par une machine virtuelle lors de l’exécution[5]. Deux frameworks sortent du lot pour atteindre cet objectif : Xamarin et Titanium.

Le développement web

Enfin, la dernière solution est de développer une application en utilisant les langages web classique : HTML, CSS et Javascript. En fait nous allons pouvoir compiler une application qui ne sera en fait qu’une WebView (une élément qui peut contenir une page Web) dans laquelle nous allons placer notre application crée en HTML. Pour créer une telle application, nous pouvons l’écrire en natif, en hybride (nous pouvons utiliser titanium pour ne créer qu’une webview), ou des solutions clefs en mains comme PhoneGap.
Figure 6: Stratégie de développement hybride(Xamarin) [5].
PhoneGap et Titanium offre quelques API permettant d’intéragir avec le téléphone directement depuis le Javascript[6]. Quelques Frameworks pour le développement web des applications mobiles tels que: PHONEGAP, jQuery Mobile..
Figure 7: Stratégie de développement web [5].

Approche MDA, pour le développement d’application mobile

Dans cette partie, nous expliquons la solution étape par étape :
• Nous supposons que l’application en langage naturel est le CIM qui aide à la construction des modèles successeurs le PIM et le PSM ;
• Nous devons transformer le CIM vers un modèle PIM à l’aide de langage DSL1, en utilisant l’outil Xtext [1] qui est une composante de TMF (Textual Modeling Framework) intégré dans le framework de modélisation d’Eclipse (Eclipse Modeling Framework : EMF) ;
• Nous implémentons Xtext pour définir un langage de méta-modélisation de notre application mobile;
• Nous utilisons cette grammaire pour écrire notre modèle (code PIM) ;
• Ensuite, nous appliquons la théorie de transformation de modèle PIM vers un modèle PSM pour chaque plateforme mobile ;
1Domain specific language:est un langage de programmation dont les spécifications sont conçues pour répondre aux contraintes d’un domaine d’application précis.
• Afin de définir le PSM, nous utilisons un générateur de code acceleo qui est une implémentation de l’Object Management Group (OMG) sur la norme de MOF, MOF Models to Text (MOFM2T).

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport gratuit propose le téléchargement des modèles gratuits de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie ?avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1 Introduction
2 Model Driven Architecture (MDA)
2.1 Les différents modèles de MDA
2.1.1 Le CIM (Computation Independent Model)
2.1.2 Le PIM (Platform Independent Model)
2.1.3 Le PSM (Platform Specific Model)
2.1.4 Le PDM (Platform Description Model)
2.2 Les transformations MDA
2.3 L’architecture MDA
3 Le développement des applications mobiles
3.1 Le développement natif
3.2 Le développement hybride
3.3 Le développement web
4 Approche MDA, pour le développement d’application mobile
4.1 Méta-modélisation
4.2 Conception de la méta-modélisation
4.3 Génération de code
4.4 Conception de la génération de code
5 Solution développée
5.1 La plateforme cible n Android z
5.2 Implémentation de langage DSL
5.2.1 Application
5.2.2 Ressource
5.2.3 View
5.2.4 screen
5.3 Implémentation de générateur de code
5.3.1 Le module generateManifest
5.3.2 Le module generateView
5.3.3 Le module generateResource
5.3.4 Le module generateScreen
5.4 Application de la méthode proposée
5.4.1 Application 1 : Une application mobile simple
5.4.2 Application2 : Application journal d’appel
5.5 Èvaluation
6 Conclusion
7 Perspective

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *