SlideShare une entreprise Scribd logo
1  sur  37
Projet de fin d’études pour l’obtention d’un diplôme national d’ingénieur Atelier Agile de génération  de code d’une application riche  Spring basé sur l’approche MDSD Encadré par : M. Adel ELJ M. Hamda SAAD Réalisé par : Amen Allah BHAR Soutenu Le 15/07/2010
Plan 2
Introduction Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Présentation de la société d’accueil Présentation de la société d’accueil Problématique Cadre du projet Idées avant projet Constats Introduction ,[object Object]
Spécialité :
la formation, l’assistance et l’accompagnement dans les nouvelles méthodes de développement, les architectures et les technologies orientées surtout vers les plateformes à base de Java (Java EE, Spring, SOA, Eclipse, JBoss, JSF, ….)
Etude, conception, développement et gestion moderne de projets informatiques locaux et offshore en se basant surtout sur les méthodes agiles.3
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Problématique Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Très exigent en qualité et prix répondre plus rapidement aux besoins produire un code de qualité meilleure Client Fournisseur Change de besoins très rapidement être moins cher que les autres 4
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Tout projet commence  par des constats suivis par des idées  « avant-projet » 5
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Constat 1 : Code récurrent Application à développer Code métier  spécifique X Homme/Mois développeurs Code recurrent Y Homme/Mois 6
Introduction Liste/detail création filtre Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Constat 2: « Styles » de Cas d’utilisation récurrents Gestion Clients GererClients AjouterClient « extends » AjouterAdresse « extends » GererAdresseClient GererAdresse « extends » Employé « extends» 7 FiltrerAdresse
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Constat 3: UML est un langage de modélisation  ( ou Méta Modèle ) généraliste extensible par Stéréotypes ,[object Object]
 La création de nouveaux langages de modélisation n’était pas à la portée. Maintenant, il existe un cadre productif qui la facilite. 8
Introduction Générateur de code Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Problématique Constats Constat 1 : Code récurrent Application à développer Code métier  spécifique Code métier  spécifique développeurs X Homme/Mois Code recurrent idée ? Code recurrent développeurs Y Homme/Mois Code métier  spécifique Code recurrent 9 	on gagne Y Homme/Mois
Introduction «create» «ListDetail» «create» «ListDetail» «create» Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Problématique Idées avant projet Constats Constat 2: « Styles » de Cas d’utilisation récurrents idée ? Gestion Clients GererClients AjouterClient « extends » 1°/ créer des patrons « patterns » de cas d’utilisation standards ou UCP (Use Case Pattern). AjouterAdresse « extends » « extends » Employé GererAdresseClient GererAdresse 2°/ générer le comportement selon l’architecture logicielle de référence choisie. « extends» 10 FiltrerAdresse «filter»
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Problématique Idées avant projet Constats Constat 3: UML est un langage de modélisation ( ou Méta Modèle ) généraliste extensible par Stéréotypes idée ? Créer un langage de modélisation spécifique qui intègre un nouveau vocabulaire relatif à la définition des patterns et spécialement les « Use Case Pattern » ou Patrons de cas d’utilisation. Définir les modèles spécifiques en utilisant ce langage au lieu de UML. 11
Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Problématique Constats Atelier agile de génération de code  suivant l’approche MDSD     Méta-Modèle Editeur graphique Générateur de code 12
Analyse et spécification des besoins Méta-modèle DSL Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Approche MDSD Analyse et spécification des besoins Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code MDSD La méthode de développement dirigée par les modèles DSM Générateur de code 13
Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code ,[object Object],Schéma  général de fonctionnement 14 Générateur Code généré Modèle
Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Atelier JDJR de JavaTech: Just Design Just Run Outillage / Atelier Générateur de code Outil de  Modélisation du modèle DSM Outil de  Modélisation du  Méta-Model DSL Outil de  Modélisation du modèle DSM Outil de  Modélisation du  Méta-Model DSL DSM / instance du DSL Code généré DSL /  Méta-Model 15
Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Alistair Cockburn, parmi les initiateurs de l’idée des cas d’utilisation, décrits 5 niveaux de granularité  Stratégique Stratégique Vente de livres en ligne Niveau 1 Niveau 1 Tactique Tactique Gérer les transactions Niveau 2 Niveau 2 Passer une commande Niveau 3 Objectif utilisateur Niveau 3 Objectif utilisateur Niveau 4 Sous-fonction Niveau 4 Sous-fonction Sélectionner un produit 16 requête requête Niveau 5 Niveau 5 Insérer une ligne de commande
Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Vente de livres en ligne Stratégique Niveau 1 Gérer les transactions Tactique Niveau 2 Passer une commande Niveau 3 Objectif utilisateur Use Case Pattern Sélectionner un produit Niveau 4 Sous-fonction 17 Insérer une ligne de commande requête Niveau 5
Analyse et spécification des besoins Avantages des UCPs Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Modélisé dés le début des projets Facile à mettre en place Indépendant de la technologie  Répétable Base pour l’estimation des charges 18
Conception Create Manage ManageRole UCPs ………… Implémentation Conclusion Introduction Anal. et spéc. des besoins Conception Liste des UCPs dégagés Liste des UCPs dégagés View Editeur graphique Méta-modèle Architecture Générateur de code CreateRole Conception Search MasterDetailDetail Filter MasterDetail ListDetail 19
Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle DSL /  Méta-Model JDJR4JavaE JavaE: Applications Java Enterprise JDJR4JavaE JavaE: Applications Java Enterprise  Persistance  Processus <<UCP>> <<Classe de persistance>> 20
Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle modèle de persistance <<Business Object>> <<Entity>> JDJR4JavaE JavaE: Applications Java Enterprise Attribut Attribut <<Entity>> <<Entity>> <<Entity>> ………. 1 Enumération <<Business Object>> Value Object Value Object ………. * <<Entity>> 21 <<Entity>>
Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle modèle de persistance GestionSociete Exemple Departement Employe pays JDJR4JavaE JavaE: Applications Java Enterprise ,[object Object]
numDepa
numCin
  France
  nom
  nom. . . ,[object Object]
prenom1 * 22
Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle modèle de processus Sous-processus JDJR4JavaE JavaE: Applications Java Enterprise <<UCP>> <<include>> <<UCP>> <<extends>> <<UCP>> 23
Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle GestionSociete modèle de processus GestionSociete Exemple GestionSociete Departement Employee Employee JDJR4JavaE JavaE: Applications Java Enterprise ,[object Object]
numCin
numCin<<ListDetail>> <<Search>> <<create>> ,[object Object]
nom

Contenu connexe

Tendances

Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebHarrathi Mohamed
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Ayed CHOKRI
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE Mhand
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...Mohamed Amine Mahmoudi
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesFabrice HAUHOUOT
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Bomber Man
 
rapport de stage
rapport de stagerapport de stage
rapport de stageMarouane Gh
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Ghali Rahma
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAOahmedmiha
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Yasmine Lachheb
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbiFaten Chalbi
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop amat samiâ boualil
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRHRiadh K.
 

Tendances (20)

Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2
 
rapport de stage
rapport de stagerapport de stage
rapport de stage
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
 
gestion de projet
gestion de projetgestion de projet
gestion de projet
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbi
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

Similaire à Diapo PFE

Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010MD DAY
 
MDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile DevelopmentMDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile DevelopmentSalma ES-Salmani
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0Cedric Vidal
 
Copie de exposã© pfe
Copie de exposã© pfeCopie de exposã© pfe
Copie de exposã© pfeRiadh K.
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 marsCdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 marsAgile Montréal
 
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Microsoft Technet France
 
Programme 2017 2018
Programme 2017 2018Programme 2017 2018
Programme 2017 2018Bost Vincent
 
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Soufiane KALLIDA
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à zArnaud Auroux
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
Cast Consulting
Cast ConsultingCast Consulting
Cast ConsultingCAST
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUGFabrice Bellingard
 

Similaire à Diapo PFE (20)

Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010
 
MDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile DevelopmentMDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile Development
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0
 
Copie de exposã© pfe
Copie de exposã© pfeCopie de exposã© pfe
Copie de exposã© pfe
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 marsCdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
Migration VB6 > .Net
Migration VB6 > .NetMigration VB6 > .Net
Migration VB6 > .Net
 
Agl2012
Agl2012Agl2012
Agl2012
 
Programme 2017 2018
Programme 2017 2018Programme 2017 2018
Programme 2017 2018
 
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à z
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
Cast Consulting
Cast ConsultingCast Consulting
Cast Consulting
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 

Diapo PFE

  • 1. Projet de fin d’études pour l’obtention d’un diplôme national d’ingénieur Atelier Agile de génération de code d’une application riche Spring basé sur l’approche MDSD Encadré par : M. Adel ELJ M. Hamda SAAD Réalisé par : Amen Allah BHAR Soutenu Le 15/07/2010
  • 3.
  • 5. la formation, l’assistance et l’accompagnement dans les nouvelles méthodes de développement, les architectures et les technologies orientées surtout vers les plateformes à base de Java (Java EE, Spring, SOA, Eclipse, JBoss, JSF, ….)
  • 6. Etude, conception, développement et gestion moderne de projets informatiques locaux et offshore en se basant surtout sur les méthodes agiles.3
  • 7. Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Problématique Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Très exigent en qualité et prix répondre plus rapidement aux besoins produire un code de qualité meilleure Client Fournisseur Change de besoins très rapidement être moins cher que les autres 4
  • 8. Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Tout projet commence par des constats suivis par des idées « avant-projet » 5
  • 9. Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Constat 1 : Code récurrent Application à développer Code métier spécifique X Homme/Mois développeurs Code recurrent Y Homme/Mois 6
  • 10. Introduction Liste/detail création filtre Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Constats Problématique Constat 2: « Styles » de Cas d’utilisation récurrents Gestion Clients GererClients AjouterClient « extends » AjouterAdresse « extends » GererAdresseClient GererAdresse « extends » Employé « extends» 7 FiltrerAdresse
  • 11.
  • 12. La création de nouveaux langages de modélisation n’était pas à la portée. Maintenant, il existe un cadre productif qui la facilite. 8
  • 13. Introduction Générateur de code Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Problématique Constats Constat 1 : Code récurrent Application à développer Code métier spécifique Code métier spécifique développeurs X Homme/Mois Code recurrent idée ? Code recurrent développeurs Y Homme/Mois Code métier spécifique Code recurrent 9 on gagne Y Homme/Mois
  • 14. Introduction «create» «ListDetail» «create» «ListDetail» «create» Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Problématique Idées avant projet Constats Constat 2: « Styles » de Cas d’utilisation récurrents idée ? Gestion Clients GererClients AjouterClient « extends » 1°/ créer des patrons « patterns » de cas d’utilisation standards ou UCP (Use Case Pattern). AjouterAdresse « extends » « extends » Employé GererAdresseClient GererAdresse 2°/ générer le comportement selon l’architecture logicielle de référence choisie. « extends» 10 FiltrerAdresse «filter»
  • 15. Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Problématique Idées avant projet Constats Constat 3: UML est un langage de modélisation ( ou Méta Modèle ) généraliste extensible par Stéréotypes idée ? Créer un langage de modélisation spécifique qui intègre un nouveau vocabulaire relatif à la définition des patterns et spécialement les « Use Case Pattern » ou Patrons de cas d’utilisation. Définir les modèles spécifiques en utilisant ce langage au lieu de UML. 11
  • 16. Introduction Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Présentation de la société d’accueil Cadre du projet Idées avant projet Problématique Constats Atelier agile de génération de code suivant l’approche MDSD Méta-Modèle Editeur graphique Générateur de code 12
  • 17. Analyse et spécification des besoins Méta-modèle DSL Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Approche MDSD Analyse et spécification des besoins Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code MDSD La méthode de développement dirigée par les modèles DSM Générateur de code 13
  • 18.
  • 19. Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Atelier JDJR de JavaTech: Just Design Just Run Outillage / Atelier Générateur de code Outil de Modélisation du modèle DSM Outil de Modélisation du Méta-Model DSL Outil de Modélisation du modèle DSM Outil de Modélisation du Méta-Model DSL DSM / instance du DSL Code généré DSL / Méta-Model 15
  • 20. Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Alistair Cockburn, parmi les initiateurs de l’idée des cas d’utilisation, décrits 5 niveaux de granularité Stratégique Stratégique Vente de livres en ligne Niveau 1 Niveau 1 Tactique Tactique Gérer les transactions Niveau 2 Niveau 2 Passer une commande Niveau 3 Objectif utilisateur Niveau 3 Objectif utilisateur Niveau 4 Sous-fonction Niveau 4 Sous-fonction Sélectionner un produit 16 requête requête Niveau 5 Niveau 5 Insérer une ligne de commande
  • 21. Analyse et spécification des besoins Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Vente de livres en ligne Stratégique Niveau 1 Gérer les transactions Tactique Niveau 2 Passer une commande Niveau 3 Objectif utilisateur Use Case Pattern Sélectionner un produit Niveau 4 Sous-fonction 17 Insérer une ligne de commande requête Niveau 5
  • 22. Analyse et spécification des besoins Avantages des UCPs Anal. et spéc. des besoins Implémentation Conclusion Conception Introduction Approche MDSD Avantages des UCPs Niveau de granularité des UCPs Architecture générale Mécanisme de génération de code Modélisé dés le début des projets Facile à mettre en place Indépendant de la technologie Répétable Base pour l’estimation des charges 18
  • 23. Conception Create Manage ManageRole UCPs ………… Implémentation Conclusion Introduction Anal. et spéc. des besoins Conception Liste des UCPs dégagés Liste des UCPs dégagés View Editeur graphique Méta-modèle Architecture Générateur de code CreateRole Conception Search MasterDetailDetail Filter MasterDetail ListDetail 19
  • 24. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle DSL / Méta-Model JDJR4JavaE JavaE: Applications Java Enterprise JDJR4JavaE JavaE: Applications Java Enterprise Persistance Processus <<UCP>> <<Classe de persistance>> 20
  • 25. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle modèle de persistance <<Business Object>> <<Entity>> JDJR4JavaE JavaE: Applications Java Enterprise Attribut Attribut <<Entity>> <<Entity>> <<Entity>> ………. 1 Enumération <<Business Object>> Value Object Value Object ………. * <<Entity>> 21 <<Entity>>
  • 26.
  • 31.
  • 33. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Présentation du méta modèle modèle de processus Sous-processus JDJR4JavaE JavaE: Applications Java Enterprise <<UCP>> <<include>> <<UCP>> <<extends>> <<UCP>> 23
  • 34.
  • 36.
  • 37. nom
  • 38.
  • 41. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Editeur graphique Méta-modèle Architecture Générateur de code Graphic Modeling Framework Modèle graphique Modèle de génération graphique Méta-modèle Modèle de mappage Editeur graphique 25 Modèle des outils
  • 42.
  • 43. Possède un éditeur de template de génération
  • 44. Génération de code avec des chaines de génération configurables
  • 45. La génération est incrémentale26
  • 46. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Méta-modèle Editeur graphique Architecture Générateur de code Template de génération 27
  • 47. Conception Anal. et spéc. des besoins Implémentation Conclusion Introduction Conception Liste des UCPs dégagés Architecture Méta-modèle Editeur graphique Générateur de code Architecture générale Template Template Moteur de Template . . . Couche présentation Couche de persistance Couche métier Méta-modèle Modèle 28 Résultat Génération
  • 48. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Editeur graphique Editeur graphique Exemples de l’application générée Framework utilisés Architecture de l’application Implémentation 29
  • 49. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Architecture de l’application Editeur graphique Exemples de l’application générée Framework utilisés Architecture de l’application Page jsp Page jsp Page jsp Page jsp Bean managé Bean managé Service Service DAO DAO DAO DAO 30 Entité Entité Entité Entité
  • 50. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Editeur graphique Framework utilisés Exemples de l’application générée Architecture de l’application Couche persistance Couche Métier Couche présentation Validation Authentification 31
  • 51. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Editeur graphique Exemples de l’application générée Architecture de l’application Framework utilisés pays Adresse <<Enum>> Pays USA Canada UK Australia 32
  • 52. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Editeur graphique Exemples de l’application générée Architecture de l’application Framework utilisés Categorie « ListDetail » GererCategories Employé « extends » 33 « Create » AjouterCategorie 33
  • 53. Implémentation Implémentation Anal. et spéc. des besoins Conclusion Conception Introduction Editeur graphique Exemples de l’application générée Architecture de l’application Framework utilisés 1 * Categorie Produit « extends » « Create » AjouterProduit « MasterDetail » GererProduits Employé «Manage » GererProduit 34 « extends » 34
  • 54.
  • 55. Conclusion Anal. et spéc. des besoins Conception Introduction Conclusion Implémentation Perspectives SOA Cloud 4 4 JDJR 4 Application Java Entreprise Couche métier Couche présentation Persistance ZK 36 JSF Spring WebFlow Struts EJB3 JPA Hibernate Spring Icefaces Richfaces
  • 56.

Notes de l'éditeur

  1. Un Template de génération est un patron qui se doit de délimiter de façon claire le texte statique généré et les éléments variables. Avec Acceleo, cette limite est claire et facilite la lecture des scripts par une tierce personne. C’est en procédant à une transformation automatique Model To Text que Acceleo nous permet de générer du code en remplaçant les parties variables par leur valeurs à partir d’une instance de modèle.
  2. Pour conclure Le travail réaliser est le développement d’un atelier pour la génération d’application web riche.Ce projet nous a donné beaucoup d’aspects bénéfiques :- Sur le plan pratique, il nous a permit d’enrichir nos connaissances en termes de programmation Java/J2EE, de concept Web et de découvrir de nouveaux Framework tel que Spring et JSF/RichFaces- Sur le plan personnel, l’apport de ce travail a été d’une importance considérable de la communication pour le bon déroulement d’un projet.- Et il nous a donnée une idée sur la vie professionnel
  3. Cependant, notre atelier reste ouvert à plusieurs extensions qui peuvent être ajoutés. Notre atelier englobe pour le moment les applications Java d’entreprise, on pourra élargir notre atelier en ajoutant le support de nouveaux Framework comme …Ainsi, on pourra l’élargir pour englober de nouveaux domaines comme …