Création d’un langage d’action pour un logiciel MDA

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Introduction Rétro ingénierie d’interfaces graphiques
Etudes de cas A vous de faire Bases de données DRES – B. TALON.
Génie Logiciel 2 Julie Dugdale
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
19 septembre 2006 Tendances Logicielles MDD/MDA : Génération dapplications avec IBM Rational Software Architect Jean-Pierre Schoch –
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Projet n°4 : Objecteering
Exposé de Système - Informatique et Réseau
UML - Présentation.
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
Design Pattern MVC En PHP5.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
TP 3-4 BD21.
Bases de données orientées-objets
Gestion de la persistance des objets
Manipulation d’XML avec XSL
METADYNE... L’architecture clients-serveurs d’un hypermédia adaptatif
Alain Le Guennec Jean-Marc Jézéquel Action Triskell
Introduction aux Web Services Partie 1. Technologies HTML-XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
Contrôles d'accès aux données
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
Analyse et Conception orientée objet
Geti2101 : Systèmes d’Information et Informatique
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
Complément Le diagramme des classes
MOT Éditeur de modèles de connaissances par objets typés
Le formulaire Les chaînes de requêtes. Les chaînes de requêtes (QueryStrings) correspondent à des informations associées à l'adresse URL avec un point.
Cours de Base de Données & Langage SQL
JSP (Java Server Pages)
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Projet de Master première année 2007 / 2008
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Initiation au web dynamique - TP
Stage essaim 3 ème année Stage DRT 1 ère année P ROTOTYPING S UITE Intégration à P ROTOTYPING S UITE O BJECT C ONSTRAINT L ANGAGE Développement d’un Interpréteur.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
PHP & My SQL.
1 PLAN I. Eclipse Modeling Framework  Présentation  Le modèle Ecore  Code généré  Utilisation de template II.Graphical Modeling Framework  Présentation.
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
Linq & les expressions lambda. L Language In Integrated Q Query.
Advanced Boolean Equation Language
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JavaScript.
Programmation objet La base.
Créer des packages.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
MIGRATION DE BASE DE DONNÉES la méthode générale
Acquisition d’information sur internet
2 Processus de conception de BD
Power AMC-Rational Rational Rose, Étude comparative
 Formulaires HTML : traiter les entrées utilisateur
ISNET-43 Atelier de génie logiciel Approche fonctionnelle ou objets Concurrence ou complémentarité ? Synthèse.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Le diagramme de composants
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Dreamweaver Séance 1.
{ Java Server Pages Par Billy et Mike.  Introduction  Qu’est-ce que JSP?  Pourquoi utiliser JSP?  Développement  Balises  Servlets  Conclusion.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
Transcription de la présentation:

Création d’un langage d’action pour un logiciel MDA Soutenance de DRT GEII Proposé par l’UHA (Essaim) Réalisé au sein d’ObjeXion Software

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

Netsilon: présentation

Netsilon: modélisation Navigation (Propriétaire) Modeleur UML Objets Métier (Diagrammes de classes) Apparence Graphique (HTML) Éditeur Page web

Création d’un langage d’action pour un logiciel MDA Xion Optimisation SQL Éditeur de code Gestion des objets métier

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

Xion: réalisation Analyse Lexicale Analyse Syntaxique Analyse Sémantique Xion Tokens Arbre 1 Arbre 2 Génération Adaptative Génération Intermédiaire Scripts Meta-Langage

Xion: contrôle des types Rapport p.8

Xion: contrôle des types Rapport p.9

Xion: contrôle des types Rapport p.9

Xion: contrôle des types Rapport p.9

Xion: contrôle des types Rapport p.9

Xion: contrôle des types Rapport p.9

Xion: arbre abstrait (2) Rapport p.11

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)

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

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

Optimisation SQL: exemple 2 Un code Xion: maPersonne.enfants->collect(nom) Le script correspondant: Ensemble(Personne) tmp1 = execute_SQL( ‘SELECT enfant FROM parents_enfants WHERE parents = ‘ + 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) Fin tant que

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

Basé sur les appels d’opérations prédéfinies Optimisation SQL: 4 cas Basé sur les appels d’opérations prédéfinies Déclencheur: quand rien n’a précédemment été optimisé Continueur: modifie l’optimisé existant Continueur d’itération: modifie l’existant dans une opération d’itération Xion comme « select » ou « sortedBy » Continueur de « collect »: modifie l’existant dans un « collect »

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

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

Optimisation SQL: Optimizer Rapport p.16

Optimisation SQL: Analyzer Rapport p.16

Optimisation SQL: OptimizingElement Rapport p.16

Optimisation SQL: Continueurs Rapport p.16

Optimisation SQL: Itérateurs Rapport p.16

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

Coloration syntaxique Rapport p.21

Complétion sémantique Liste les champs accessibles d’un 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 i.max(21); mesPersonnes->select (i: i.mari. Devient Personne i; i.mari;

Gestion des objets métier Pour nourrir la base de données d’objets

Conclusion Xion est incontournable pour modéliser une application web avec Netsilon. Pas de langage d’action… Pourquoi pas Xion ? Xion, a l’instar des autres langages, ne résout pas tous les problèmes: besoin d’extension au langage par profilage.