SlideShare une entreprise Scribd logo
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

Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
Donia Hammami
 
Conception et réalisation d’une application Mobile banking
Conception et réalisation d’une application  Mobile banking  Conception et réalisation d’une application  Mobile banking
Conception et réalisation d’une application Mobile banking
Khaled Fayala
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Bomber Man
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
Mohamed Ayoub OUERTATANI
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
Ilyas CHAOUA
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
Nadir Haouari
 
Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE
Mhand
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
Ilef Ben Slima
 
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
Nidhal Harrathi
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
 
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
Fabrice HAUHOUOT
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
Semah Mhamdi
 
Présentation finale
Présentation finalePrésentation finale
Présentation finale
heniBa
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Presentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NETPresentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NET
Meher Zayani
 
Modele-elearning
Modele-elearningModele-elearning
Modele-elearning
Boughanmi Sobhi IHBOS
 
Presentation PFE
Presentation PFEPresentation PFE
Presentation PFE
asma amri
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
Ramzi Noumairi
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help desk
Raef Ghribi
 

Tendances (20)

Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Conception et réalisation d’une application Mobile banking
Conception et réalisation d’une application  Mobile banking  Conception et réalisation d’une application  Mobile banking
Conception et réalisation d’une application Mobile banking
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Exposé 1
Exposé   1Exposé   1
Exposé 1
 
Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE Presentation (SOUTENANCE) : PFE
Presentation (SOUTENANCE) : PFE
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
 
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
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Présentation finale
Présentation finalePrésentation finale
Présentation finale
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Presentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NETPresentation pfe application de pointage ASP.NET
Presentation pfe application de pointage ASP.NET
 
Modele-elearning
Modele-elearningModele-elearning
Modele-elearning
 
Presentation PFE
Presentation PFEPresentation PFE
Presentation PFE
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help desk
 

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 8
Arnaud 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 Development
Salma 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.0
Cedric 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 Mansouri
Mansouri 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 mars
Agile 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
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
Lotfi GAALOUL
 
Programme 2017 2018
Programme 2017 2018Programme 2017 2018
Programme 2017 2018
Bost Vincent
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
ahmedmiha
 
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 à z
Arnaud 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 JUG
Fabrice 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
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
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
 

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 …