• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Diapo PFE
 

Diapo PFE

on

  • 22,672 views

Implémentation d’un atelier agile de génération de code d\'une application riche Spring basé sur l\'approche MDSD....

Implémentation d’un atelier agile de génération de code d\'une application riche Spring basé sur l\'approche MDSD.
Mots clés: Eclipse, MDSD, DSL, EMF, GMF, Acceleo, Hibernate, Spring, JSF, JBoss Richfaces, Spring Security.

Statistics

Views

Total Views
22,672
Views on SlideShare
22,658
Embed Views
14

Actions

Likes
8
Downloads
1,152
Comments
6

2 Embeds 14

http://www.linkedin.com 12
https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

16 of 6 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.
  • 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
  • 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 …

Diapo PFE Diapo PFE Presentation Transcript

  • 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
    • Fondation : début 2007
    • 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
    • L’utilisation de langages de modélisation (ou méta-modèles) restreints au domaine d’application est plus productif.
    • 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
    • Consiste à développer des templatesqui permettent de créer totalement ou partiellement une application à partir d’un modèle.
    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
    • Tunis
    • numDepa
    • numCin
    • France
    • nom
    • nom
    .
    .
    .
    • locale
    • prenom
    1
    *
    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
    • numDepa
    • numCin
    • numCin
    <<ListDetail>>
    <<Search>>
    <<create>>
    • nom
    • nom
    • nom
    <<include>>
    • locale
    • prenom
    • prenom
    <<ListEmployee>>
    <<SearchEmployee>>
    <<CreateEmployee>>
    <<extend>>
    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
    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
  • 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
    Générateur de code: basé sur Acceleo
    • Intégré à Eclipse, compatible EMF
    • Possède un éditeur de template de génération
    • Génération de code avec des chaines de génération configurables
    • La génération est incrémentale
    26
  • 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
  • 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
  • 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
  • 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é
  • 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
  • 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
  • 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
  • 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
  • Conclusion
    Conclusion
    Introduction
    Problématique
    Réalisation
    Solution
    Conception
    Travail réalisé :
    Développement d’un atelier de génération d’application web riche
    Conclusion
    Aspects bénéfiques :
    • Sur le plan pratique
    Découvrir des nouveaux Framework
    • Sur le plan personnel
    Importance de la communication
    Intégration dans la vie professionnel
    35
  • 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
  • Conclusion
    Anal. et spéc. des besoins
    Conception
    Introduction
    Conclusion
    Implémentation
    • Diminution de charge de travaille.
    Merci pour votre attention
    • Ce générateur est destiné aux sociétés de développement.
    • Extensible.
    37