La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Création dun langage daction pour un logiciel MDA Soutenance de DRT GEII Proposé par lUHA (Essaim) Réalisé au sein dObjeXion Software.

Présentations similaires


Présentation au sujet: "Création dun langage daction pour un logiciel MDA Soutenance de DRT GEII Proposé par lUHA (Essaim) Réalisé au sein dObjeXion Software."— Transcription de la présentation:

1 Création dun langage daction pour un logiciel MDA Soutenance de DRT GEII Proposé par lUHA (Essaim) Réalisé au sein dObjeXion Software

2 Première partie (résumé): Développement dun Interpréteur OCL pour une Machine Virtuelle UML Fichier de Stockage Application Fichier déchanges Flux dinformations significatives Modèle sous Rational ROSE Fichier XMI ObjeXionPrototypingsuite Model Prototyper ObjeXion Link FacSimile Base de données relationnelle (mdb) Formatage Alimentation

3 Netsilon: présentation

4 Netsilon: modélisation ModeleurUML ObjetsMétier (Diagrammes de classes) ApparenceGraphique(HTML) Navigation(Propriétaire) Éditeur Page web

5 Création dun langage daction pour un logiciel MDA Xion Xion Optimisation SQL Optimisation SQL Éditeur de code Éditeur de code Gestion des objets métier Gestion des objets métier

6 Xion: besoins Description dopérations à effet de bord Description dopérations à effet de bord Navigation dans le modèle métier Navigation dans le modèle métier Traduisible en PHP, JSP, Servlet Traduisible en PHP, JSP, Servlet Rien ny répond ! (C++, Java, SDL, OCL,…) Solution adoptée: « mélanger » Java et OCL

7 Xion: réalisation Analyse Lexicale Analyse Syntaxique Analyse Sémantique XionTokensArbre 1 Génération Intermédiaire Arbre 2 Génération Adaptative Meta-LangageScripts

8 Xion: contrôle des types Rapport p.8

9 Xion: contrôle des types Rapport p.9

10 Xion: contrôle des types Rapport p.9

11 Xion: contrôle des types Rapport p.9

12 Xion: contrôle des types Rapport p.9

13 Xion: contrôle des types Rapport p.9

14 Xion: arbre abstrait (2) Rapport p.11

15 Optimisation SQL Prenons un exemple de modèle métier: Ce qui donne les tables: personne(OID, nom, prenom) mariage(OID, #mari, #femme) parents_enfants(#parents, #enfants)

16 Optimisation SQL « Personne » est traduit par une classe en langage cible: classe Personne attribut oid : String attribut oid : String fonction get_nom : String fonction get_nom : String retourne execute_SQL( retourne execute_SQL( SELECT personne.nom SELECT personne.nom FROM personne FROM personne WHERE pesonne.OID = + oid WHERE pesonne.OID = + oid ) fin get_nom fin get_nom fonction set_nom (nom:String) fonction set_nom (nom:String) execute_SQL( execute_SQL( UPDATE personne UPDATE personne SET nom = + nom + SET nom = + nom + WHERE OID = + oid WHERE OID = + oid ) fin set_nom … fin set_nom …

17 Optimisation SQL: exemple 1 Un code Xion: Le script correspondant: maPersonne.enfants execute_SQL( SELECT enfants SELECT enfants FROM parents_enfants FROM parents_enfants WHERE parents = WHERE parents = + maPersonne.oid + maPersonne.oid )

18 Optimisation SQL: exemple 2 Un code Xion: Le script correspondant: maPersonne.enfants->collect(nom) Ensemble(Personne) tmp1 = execute_SQL( SELECT enfant SELECT enfant FROM parents_enfants FROM parents_enfants WHERE parents = WHERE parents = + maPersonne.oid + maPersonne.oid ) Ensemble(String) tmp2 = Ensemble vide Enumération e = tmp1.éléments Tant que e a des éléments faire tmp2.ajoute(e.suivant.get_nom) tmp2.ajoute(e.suivant.get_nom) Fin tant que

19 Optimisation SQL: exemple 2 idéal Un code Xion: Le code idéal: maPersonne.enfants->collect(nom) execute_SQL( SELECT personne.nom SELECT personne.nom FROM personne WHERE personne.OID in ( SELECT parent_enfant.enfant FROM parent_enfant WHERE parent_enfant.parent = WHERE parent_enfant.parent = + maPersonne.oid + ) + maPersonne.oid + ) )

20 Optimisation SQL: 4 cas Déclencheur: quand rien na précédemment été optimisé Déclencheur: quand rien na précédemment été optimisé Continueur: modifie loptimisé existant Continueur: modifie loptimisé existant Continueur ditération: modifie lexistant dans une opération ditération Xion comme « select » ou « sortedBy » Continueur ditération: modifie lexistant dans une opération ditération Xion comme « select » ou « sortedBy » Continueur de « collect »: modifie lexistant dans un « collect » Continueur de « collect »: modifie lexistant dans un « collect » Basé sur les appels dopérations prédéfinies

21 Déclencheur Optimisation SQL: les liens maPersonne.mari SELECT mari FROM mariage WHERE femme = WHERE femme = maPersonne.mari.enfants SELECTenfants FROM parents_enfants WHERE parents IN ( SELECT mari FROM mariage WHERE femme = ) Continueur mari maPersonne enfants mari maPersonne

22 Déclencheur Optimisation SQL: les liens maPersonne.enfants SELECT enfants FROM parents_enfants WHERE parents = WHERE parents = maPersonne.enfants-> select(mari == autrePersonne) SELECT enfants FROM parents_enfants, mariage WHERE parents = WHERE parents = AND enfants = femme AND mari = AND mari = Continueur ditération enfants maPersonne select enfant maPersonneautrePersonnemari ==

23 Optimisation SQL: Optimizer Rapport p.16

24 Optimisation SQL: Analyzer Rapport p.16

25 Optimisation SQL: OptimizingElement Rapport p.16

26 Optimisation SQL: Continueurs Rapport p.16

27 Optimisation SQL: Itérateurs Rapport p.16

28 Éditeur de code Fonctionnalités classiques Fonctionnalités classiques Coloration syntaxique Coloration syntaxique Complétion sémantique Complétion sémantique Netsilon est innovant => Difficile à appréhender

29 Coloration syntaxique Rapport p.21

30 Complétion sémantique Liste les champs accessibles dun objet Réutilisation des premières couches du compilateur Mise en forme du texte transmis au compilateur Integer i = 0; this.setAttribute(i.max(21). Devient Integer i = 0; i.max(21); mesPersonnes->select (i: i.mari. Devient Personne i; i.mari;

31 Gestion des objets métier Pour nourrir la base de données dobjets

32 Conclusion Xion est incontournable pour modéliser une application web avec Netsilon. Pas de langage daction… Pourquoi pas Xion ? Xion, a linstar des autres langages, ne résout pas tous les problèmes: besoin dextension au langage par profilage.


Télécharger ppt "Création dun langage daction pour un logiciel MDA Soutenance de DRT GEII Proposé par lUHA (Essaim) Réalisé au sein dObjeXion Software."

Présentations similaires


Annonces Google