SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Mise en place d’un Framework de
Développement Mobile Multiplateformes
basé sur une approche MDA
Projet de Fin d’Études
Présenté en vue de l’obtention du titre
INGÉNIEUR D'ÉTAT
Soutenu par : Salma ES-SALMANI
Jury : Pr. Younes LAKHRISSI (Encadrant ENSA)
Pr. Nour El Houda CHAOUI (Encadrant ENSA)
Pr. Ghizlane KHAISSIDI (ENSA)
Pr. Safae HAJ BEN ALI (ENSA)
Pr. El Habib NFAOUI (Faculté des Sciences Fès)
2
1 - Introduction
3 - Étude Technique
4 - Mise en œuvre
2 – Contexte Général du Projet
5 – Conclusion et Perspectives
3
Étude Technique
Conclusion et
PerspectivesIntroduction
Contexte Général
du Projet
Mise en œuvre
Les développeurs de services sont confrontés à un challenge pour
développer des applications pour plusieurs plateformes …
4
Centre de R&D logiciel, créé en 2010
Mission : Développer au Maroc (en sa qualité d’interface entre
l’Université et l’entreprise) une activité de recherche et développement
orientée marché, dans le domaine des logiciels.
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
5
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
6
Présentation de MEDIA MOBILITY
• Éditeur d’applications mobiles, créé en 2007
• Présence internationale : Casablanca, Paris, Dubaï, San Francisco
Produits :
 Marketing Mobile
 Commerce Mobile
 Déploiement multiscreen
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
7
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
8
Problématiques
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
Comment couvrir un spectre maximal de devices (Objets
connectés, Smart TV, Smart Car …) avec un time-to-market
minimal et des coûts raisonnables?
Comment capitaliser sur le fonctionnel d’une application
indépendamment des préoccupations techniques afin d’en faciliter la
migration ?
Backend
Applications
Android/iOS natives
9
Environnement de Développement
Description des besoins
fonctionnelsExpert Métier
Ressources graphiques
(images, animations)Designer
Composants métiers
spécifiques (API, Web Services)Développeur
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
10
Étude du besoin
Étude technique
Rédaction du cahier de
charges
Conception et
Implémentation du DSL
Générateur de code
AvrilMarsFévrier Mai
Étude Technique
Conclusion et
Perspectives
Introduction Mise en œuvreContexte Général
du Projet
Approches typiques du développement mobile multiplateformes
11
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Approches typiques du développement mobile multiplateformes : Bilan
12
Attribut Application
Native
Application
Hybride
Mobile
Web
Facilité d’Apprentissage Difficile Moyen Facile
Performance Rapide Moyen Lent
Time To Market Long Court Court
Support des
fonctionnalités natives
(GPS, caméra, …)
Tout La plupart Aucune
Téléchargement à
partir du Store
Oui Oui Non
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Architecture Orientée Modèles : Principes
13
Décrire les besoins fonctionnels d’une
application indépendamment de la
plateforme d’exécution.
Passage d’une approche interprétative
à une approche transformationnelle.
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Architecture Orientée Modèles : Transformation de Modèles
14
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
CIM
Modèle Métier Indépendant
PIM
Modèle Indépendant de la
Plateforme
PSM
Android
PSM
iOS
PSM
BlackBerry
Code
Android
Code
iOS
Code
BlackBerry
PDM
Android
PDM
iOS
PDM
BlackBerry
Définition d’un Langage de Modélisation (DSL)
15
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Notation orientée à un domaine en particulier.
S'oppose conceptuellement aux langages de programmation généralistes.
Terrain d’entente entre l’expert métier et l’informaticien
Génération du code : Approche Template
16
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Méta Modèle DSL
Modèle de
l’application mobile
Interpréteur de
Template
Templates
Android, iOS, …
Code Android, iOS …
L’intérêt de la MDA pour le développement mobile
17
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Réduire les
problématiques de
fragmentation
La modélisation de
la logique métier
mise en avant
Industrialisation du
processus de
développement
L’économie
d’échelle
Approche Recommandée
18
Moteurdetransformation Template
Android
Template
iOS
Générateur de Code
Application
Native
Android
Application
Native
iOS
Fichiers/
Ressources
Application Web
Serveur d’applications
Base de
DonnéesGrammaire
du DSL
Modèle de
l’application
mobile
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction Mise en œuvreÉtude
Technique
Choix de l’outil de modélisation/Génération de code
19
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Choix de l’outil de modélisation/Génération de code
20
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Support de l’Eclipse Foundation,
Accès libre aux sources,
Licence gratuite.
Eclipse Modeling Framework
21
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Création et manipulation de modèles
Transformation de modèles vers d'autres modèles
Transformation de modèles vers du code
Le framework Xtext
22
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Le langage Xtend
23
• Génération de code à partir de Xtext
• Langage basé sur Java, mais en y intégrant des features venant de la
programmation fonctionnelle
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Architecture Fonctionnelle du Framework
24
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Architecture Technique du Framework
25
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Conception du Langage de Modélisation
26
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Architecture MVC du Langage de Modélisation
27
Le modèle : décrit les données manipulées par l'application
(interaction avec la base de données, traitements, intégrité).
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Architecture MVC du Langage de Modélisation
28
Présenter les résultats renvoyés par le modèle,
Renvoyer toute action de l'utilisateur au contrôleur.
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
La vue
Tabbed Pane
Grid Layout Pane
Architecture MVC du Langage de Modélisation
29
Gestion des évènements de
synchronisation
Analyse de la requête client
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Le contrôleur
Génération du code : Backend
30
• Application Java EE 6,
communique avec l’application
installée sur le device via une API
REST
• Les données sont échangées en
format JSON pour des raisons de
performance et d’intéropérabilité.
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Exemple d’une application générée
31
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Extension du Framework
32
Contexte Général
du Projet
Conclusion et
Perspectives
Introduction
Étude
Technique Mise en œuvre
Bundle de
Génération
Stratégie
de Build
Template
du projet
Bilan de la solution proposée
33
Contexte Général
du Projet
Mise en œuvreIntroduction
Étude
Technique
Conclusion et
Perspectives
Framework qui
couvre une grande
partie du cycle de
développement
Pérennisation du
savoir fonctionnel
Qualimétrie
logicielle
Perspectives d’Évolution
34
Mettre les modèles au coeur d’une usine de développement complète,
couvrant toutes les étapes du cycle de vie d’une application
Contexte Général
du Projet
Mise en œuvreIntroduction
Étude
Technique
Conclusion et
Perspectives
Questions - Réponses?
35

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Manuel uml-poweramc
Manuel uml-poweramcManuel uml-poweramc
Manuel uml-poweramc
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Uml
UmlUml
Uml
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
L Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueL Architecture Logicielle En Pratique
L Architecture Logicielle En Pratique
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Les limites-de-l uml (1)
Les limites-de-l uml (1)Les limites-de-l uml (1)
Les limites-de-l uml (1)
 
les style d'architecture
les style d'architecture les style d'architecture
les style d'architecture
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Cours uml
Cours umlCours uml
Cours uml
 
Xml
XmlXml
Xml
 
Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
 
Uml
UmlUml
Uml
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 

Andere mochten auch

Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipsemeriem sari
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008William Piers
 
Textual Modeling Framework Xtext
Textual Modeling Framework XtextTextual Modeling Framework Xtext
Textual Modeling Framework XtextSebastian Zarnekow
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
mis
mismis
misISIG
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...RealTime-at-Work (RTaW)
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. OCCIware
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباءErradi Mohamed
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsJordi Cabot
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 

Andere mochten auch (20)

Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
 
Idm et ihm
Idm et ihmIdm et ihm
Idm et ihm
 
Textual Modeling Framework Xtext
Textual Modeling Framework XtextTextual Modeling Framework Xtext
Textual Modeling Framework Xtext
 
Acceleo Code Generation
Acceleo Code GenerationAcceleo Code Generation
Acceleo Code Generation
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
mis
mismis
mis
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
What fUML can bring to MBSE?
What fUML can bring to MBSE?What fUML can bring to MBSE?
What fUML can bring to MBSE?
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 

Ähnlich wie MDA for Cross-Platform Mobile Development

conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
Présentation Eutech 2016
Présentation Eutech 2016Présentation Eutech 2016
Présentation Eutech 2016Eutech SSII
 
Projet PFE corrigé latest
Projet PFE corrigé latestProjet PFE corrigé latest
Projet PFE corrigé latestahed bf
 
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)Houssem BOULFRAKH - WebPhone (Projet de fin d'études)
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)Houssam_Eddine Boulfrakh
 
Intégration Continue pour Android
Intégration Continue pour AndroidIntégration Continue pour Android
Intégration Continue pour AndroidSalma ES-Salmani
 
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware
 
MEGA International: Senior .NET Developer
MEGA International: Senior .NET DeveloperMEGA International: Senior .NET Developer
MEGA International: Senior .NET DeveloperJason De Oliveira
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAOahmedmiha
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
memoire sur la technologie de RIA
memoire sur la technologie de RIAmemoire sur la technologie de RIA
memoire sur la technologie de RIAifis
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devopsEmmanuel Roldan
 
MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer Jason De Oliveira
 

Ähnlich wie MDA for Cross-Platform Mobile Development (20)

PFE kahlaoui Mohamed Ghassen
PFE kahlaoui Mohamed GhassenPFE kahlaoui Mohamed Ghassen
PFE kahlaoui Mohamed Ghassen
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
 
Présentation Eutech 2016
Présentation Eutech 2016Présentation Eutech 2016
Présentation Eutech 2016
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
output
outputoutput
output
 
Projet PFE corrigé latest
Projet PFE corrigé latestProjet PFE corrigé latest
Projet PFE corrigé latest
 
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)Houssem BOULFRAKH - WebPhone (Projet de fin d'études)
Houssem BOULFRAKH - WebPhone (Projet de fin d'études)
 
Intégration Continue pour Android
Intégration Continue pour AndroidIntégration Continue pour Android
Intégration Continue pour Android
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCS
 
MEGA International: Senior .NET Developer
MEGA International: Senior .NET DeveloperMEGA International: Senior .NET Developer
MEGA International: Senior .NET Developer
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
memoire sur la technologie de RIA
memoire sur la technologie de RIAmemoire sur la technologie de RIA
memoire sur la technologie de RIA
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops
 
MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer
 
Makrem DJEBALI CV
Makrem DJEBALI  CVMakrem DJEBALI  CV
Makrem DJEBALI CV
 

MDA for Cross-Platform Mobile Development

  • 1. Mise en place d’un Framework de Développement Mobile Multiplateformes basé sur une approche MDA Projet de Fin d’Études Présenté en vue de l’obtention du titre INGÉNIEUR D'ÉTAT Soutenu par : Salma ES-SALMANI Jury : Pr. Younes LAKHRISSI (Encadrant ENSA) Pr. Nour El Houda CHAOUI (Encadrant ENSA) Pr. Ghizlane KHAISSIDI (ENSA) Pr. Safae HAJ BEN ALI (ENSA) Pr. El Habib NFAOUI (Faculté des Sciences Fès)
  • 2. 2 1 - Introduction 3 - Étude Technique 4 - Mise en œuvre 2 – Contexte Général du Projet 5 – Conclusion et Perspectives
  • 3. 3 Étude Technique Conclusion et PerspectivesIntroduction Contexte Général du Projet Mise en œuvre Les développeurs de services sont confrontés à un challenge pour développer des applications pour plusieurs plateformes …
  • 4. 4 Centre de R&D logiciel, créé en 2010 Mission : Développer au Maroc (en sa qualité d’interface entre l’Université et l’entreprise) une activité de recherche et développement orientée marché, dans le domaine des logiciels. Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 5. 5 Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 6. 6 Présentation de MEDIA MOBILITY • Éditeur d’applications mobiles, créé en 2007 • Présence internationale : Casablanca, Paris, Dubaï, San Francisco Produits :  Marketing Mobile  Commerce Mobile  Déploiement multiscreen Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 7. 7 Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 8. 8 Problématiques Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet Comment couvrir un spectre maximal de devices (Objets connectés, Smart TV, Smart Car …) avec un time-to-market minimal et des coûts raisonnables? Comment capitaliser sur le fonctionnel d’une application indépendamment des préoccupations techniques afin d’en faciliter la migration ?
  • 9. Backend Applications Android/iOS natives 9 Environnement de Développement Description des besoins fonctionnelsExpert Métier Ressources graphiques (images, animations)Designer Composants métiers spécifiques (API, Web Services)Développeur Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 10. 10 Étude du besoin Étude technique Rédaction du cahier de charges Conception et Implémentation du DSL Générateur de code AvrilMarsFévrier Mai Étude Technique Conclusion et Perspectives Introduction Mise en œuvreContexte Général du Projet
  • 11. Approches typiques du développement mobile multiplateformes 11 Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique
  • 12. Approches typiques du développement mobile multiplateformes : Bilan 12 Attribut Application Native Application Hybride Mobile Web Facilité d’Apprentissage Difficile Moyen Facile Performance Rapide Moyen Lent Time To Market Long Court Court Support des fonctionnalités natives (GPS, caméra, …) Tout La plupart Aucune Téléchargement à partir du Store Oui Oui Non Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique
  • 13. Architecture Orientée Modèles : Principes 13 Décrire les besoins fonctionnels d’une application indépendamment de la plateforme d’exécution. Passage d’une approche interprétative à une approche transformationnelle. Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique
  • 14. Architecture Orientée Modèles : Transformation de Modèles 14 Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique CIM Modèle Métier Indépendant PIM Modèle Indépendant de la Plateforme PSM Android PSM iOS PSM BlackBerry Code Android Code iOS Code BlackBerry PDM Android PDM iOS PDM BlackBerry
  • 15. Définition d’un Langage de Modélisation (DSL) 15 Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique Notation orientée à un domaine en particulier. S'oppose conceptuellement aux langages de programmation généralistes. Terrain d’entente entre l’expert métier et l’informaticien
  • 16. Génération du code : Approche Template 16 Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique Méta Modèle DSL Modèle de l’application mobile Interpréteur de Template Templates Android, iOS, … Code Android, iOS …
  • 17. L’intérêt de la MDA pour le développement mobile 17 Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique Réduire les problématiques de fragmentation La modélisation de la logique métier mise en avant Industrialisation du processus de développement L’économie d’échelle
  • 18. Approche Recommandée 18 Moteurdetransformation Template Android Template iOS Générateur de Code Application Native Android Application Native iOS Fichiers/ Ressources Application Web Serveur d’applications Base de DonnéesGrammaire du DSL Modèle de l’application mobile Contexte Général du Projet Conclusion et Perspectives Introduction Mise en œuvreÉtude Technique
  • 19. Choix de l’outil de modélisation/Génération de code 19 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 20. Choix de l’outil de modélisation/Génération de code 20 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre Support de l’Eclipse Foundation, Accès libre aux sources, Licence gratuite.
  • 21. Eclipse Modeling Framework 21 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre Création et manipulation de modèles Transformation de modèles vers d'autres modèles Transformation de modèles vers du code
  • 22. Le framework Xtext 22 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 23. Le langage Xtend 23 • Génération de code à partir de Xtext • Langage basé sur Java, mais en y intégrant des features venant de la programmation fonctionnelle Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 24. Architecture Fonctionnelle du Framework 24 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 25. Architecture Technique du Framework 25 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 26. Conception du Langage de Modélisation 26 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 27. Architecture MVC du Langage de Modélisation 27 Le modèle : décrit les données manipulées par l'application (interaction avec la base de données, traitements, intégrité). Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 28. Architecture MVC du Langage de Modélisation 28 Présenter les résultats renvoyés par le modèle, Renvoyer toute action de l'utilisateur au contrôleur. Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre La vue Tabbed Pane Grid Layout Pane
  • 29. Architecture MVC du Langage de Modélisation 29 Gestion des évènements de synchronisation Analyse de la requête client Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre Le contrôleur
  • 30. Génération du code : Backend 30 • Application Java EE 6, communique avec l’application installée sur le device via une API REST • Les données sont échangées en format JSON pour des raisons de performance et d’intéropérabilité. Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 31. Exemple d’une application générée 31 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre
  • 32. Extension du Framework 32 Contexte Général du Projet Conclusion et Perspectives Introduction Étude Technique Mise en œuvre Bundle de Génération Stratégie de Build Template du projet
  • 33. Bilan de la solution proposée 33 Contexte Général du Projet Mise en œuvreIntroduction Étude Technique Conclusion et Perspectives Framework qui couvre une grande partie du cycle de développement Pérennisation du savoir fonctionnel Qualimétrie logicielle
  • 34. Perspectives d’Évolution 34 Mettre les modèles au coeur d’une usine de développement complète, couvrant toutes les étapes du cycle de vie d’une application Contexte Général du Projet Mise en œuvreIntroduction Étude Technique Conclusion et Perspectives