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

27 novembre 2003 Habilitation à Diriger des Recherches présentée par Didier Parigot Contribution à la Programmation Générative.

Présentations similaires


Présentation au sujet: "27 novembre 2003 Habilitation à Diriger des Recherches présentée par Didier Parigot Contribution à la Programmation Générative."— Transcription de la présentation:

1

2 27 novembre 2003 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches présentée par Didier Parigot Contribution à la Programmation Générative Rupture dans le développement logiciel provoquée par des bouleversements importants Fabrique Logicielle Mon thème de recherche : les langages de programmation La Programmation Générative caractérise humblement mes multiples travaux Les applications doivent être ouvertes et adaptables

3 27 novembre 2003 2 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion 4Pendant les questions : une démonstration ?

4 27 novembre 2003 3 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Ouvertes et adaptables Fabrique logicielle Modèles ou langages métiers générateurs programmes compilateurs Système langages applications exécution Code métier La glue Plate-forme Famille dapplication Contrôler les parties sensibles à lévolution Applications ouvertes et adaptables Applications évolutives Capturer un savoir-faire Production en « série »

5 27 novembre 2003 4 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion 4Pendant les questions : une démonstration ?

6 27 novembre 2003 5 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Grammaires Attribuées : Années 70 Méthode pour décrire la sémantique des langages 4Déclarative 4Le quoi, pas le comment : ensemble déquations entre attributs 4Syntaxe (abstraite) ou Modèle 4Exécutable (séquentielle, parallèle, incrémentale) 4Evaluateur d attributs 4Applications 4Sémantique des langages de programmation Nombreux travaux de recherche (1000 références) 4Théorie des GAs : classe de Grammaire Attribuée 4Pouvoir dexpression, applications Plus beaucoup de recherches depuis 1995 ?

7 27 novembre 2003 6 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Les raisons de léchec des GAs Méthode de programmation par séparations de préoccupation, par attributs 4Impérative, fonctionnelle, logique, par attributs Difficultés dans la construction dévaluateurs dattributs 4Classe de grammaire attribuée Langage pour les grammaires attribuées 4Un sous-langage ou un langage à part entière ? 4Transformation de programme Sémantique statique 4Méthode souvent comparée à une méthode de « parsing »

8 27 novembre 2003 7 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion 4Pendant les questions : une démonstration ?

9 27 novembre 2003 8 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches FNC-2 et SmartTools Deux fabriques logicielles Programmation générative Syntaxe Abstraite = XML Formalisme du W3C (XML) ou lOMG (UML), Langages dédiés (DSL), Patrons de conception, Programmation générative, Programmation par aspects (AOP), Programmation par composants, Model-Driven Architecture (MDA), Domain-Driven Development (3D), Software Factories

10 27 novembre 2003 9 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Les facteurs de bouleversements (1) Émergence de lInternet 4Les technologies XML 4Web sémantique, Application sur le Web Échange de données entre applications Applications distribuées, applications embarquées 4Architecture, mobilité, communication (P2P) Quel type de système informatique ? Nouvelles technologies 4Composants, protocole, matériels Quelle est LA technologie de demain ?

11 27 novembre 2003 10 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Les facteurs de bouleversements (2) Démocratisation de linformatique 4Ubiquitaire : présente partout Quel utilisateur va-ton découvrir ? (par hasard) Rapidité du développement 4Retour dinvestissement Quelle application pour demain ? (quelque mois) Réutilisation : composant 4monde ouvert Logiciel libre ? Formalismes Standards : W3C et OMG

12 27 novembre 2003 11 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion 4Pendant les questions : une démonstration ?

13 27 novembre 2003 12 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Pour répondre à ce bouleversement Les langages de programmation Patrons de conception Par séparation de préoccupations La programmation par aspects La programmation par composants La programmation par modèles par transformation Fertilisation croisée entre divers domaines de recherche Les applications doivent être ouvertes et adaptables

14 27 novembre 2003 13 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Programmation par aspects Application (classes) Tisseur Préoccupations (aspects ) Séparation des préoccupations Modèle daccroche Modèle: Abstraction de lapplication pour la préoccupation

15 27 novembre 2003 14 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Programmation par composants conteneur générateur code métier modèle de composant Séparation du code fonctionnel et code non fonctionnel Technologie code métier conteneur composant extensible Modèle : Abstraction du code métier pour le conteneur

16 27 novembre 2003 15 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Programmation par modèle de données Modèle de données 2Transformation Technologie1 Générateur Code métier Modèle de données 1 Indépendance du Modèle de données Technologie2 Technologie3 Modèle : Abstraction du code métier pour les données

17 27 novembre 2003 16 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Evolution des langages de programmation Par séparation de préoccupations Le corps des méthodes, fonctions, etc... La programmation par composants les appels, les interfaces La programmation par modèles la structure de données Les langages de programmation Les applications doivent être ouvertes et adaptables Modèles ou langages métiers Générateurs Nouveaux langages de programmation Modèle: une abstraction pour une préoccupation

18 27 novembre 2003 17 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion 4Pendant les questions : une démonstration ?

19 27 novembre 2003 18 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Fabrique logicielle : SmartTools Générateurs PIMPSM Modèle de données Modèle sémantique Modèle de composants Modèle de vue La glue Code métier Plate-forme Modèle pivot Modèle projetable Composant extensible approche MDA Composant MDA Partie écrite par le programmeur Les parties sensibles à lévolution Modèles Indépendants (PIM)Modèles Spécifiques (PSM) Approche MDA Autres préoccupations Autres modèles

20 27 novembre 2003 19 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le modèle de données (1) Objectifs Modèle indépendant : PIM 4Dun langage de programmation (dune plate-forme) : format neutre 4des générateurs qui instrument le modèle : PSMs Utilisation des efforts de standardisation du W3C 4souvrir vers des champs dapplication plus vastes !!

21 27 novembre 2003 20 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches UML MOF Modèle de données (2) Modèle de données Méta-langage : Absynt Traducteurs DTD Schema XML Générateurs Classes en Java (DOM) Instance de XML Java XML Conforme à Se serialise en Se représente en PSM Cosy Centaur Modèle 1 de données Modèle 2 de données Dans FNC-2 : ASX, notre méta-langage Niveau Méta

22 27 novembre 2003 21 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le modèle de données : modèle pivot (3) Impact des technologies XML Modélisation UML (programmation OO) 4MOF, méta-langage (les 4 niveaux) 4Modélisation des modèles métiers Base de données XML (XQuery) Web sémantique : Ontologies (RDF) Donnée (interrogation) = Programme (exécution) ? Transformation de modèle (MDA) Sémantique associée ?

23 27 novembre 2003 22 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le modèle sémantique Contexte Sémantique dun modèle = ensemble des traitements 4Statique comme dynamique Divers domaines hors du cadre classique des langages 4Sémantique plus souple Objectifs Notre approche 4Simple (proche de limplantation) et pragmatique 4Projetable par transformation du modèle de base 4Séparation entre le modèle et les actions sémantiques

24 27 novembre 2003 23 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le modèle sémantique : Solution Patron de conception « visiteur » 4Séparation entre la structure et les traitements pour de meilleures réutilisation et indépendance vis-à-vis du modèle 4Flot de contrôle lié au traitement 4Parcours de la structure de données Programmation par aspect sur ce type de programmation 4programmation générative 4Structure + flot de contrôle + actions = programme Utile pour la projection de la sémantique induite par une transformation du modèle de base

25 27 novembre 2003 24 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Projection de la sémantique Modèle 2 Transformation Technologie2 Modèle 1 Technologie1 traitement Projection daspects Projection dynamique ? Par exemple pour les composants

26 27 novembre 2003 25 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Architecture : Modèle de composants Contexte Composants Langages 4Ma propre expérience (FNC-2, Cosy, SmartTools) Composants Systèmes (Applications distribuées) 4Nombreuses technologies et Travaux de recherche Objectifs Séparation des préoccupations Apport dun certain savoir-faire Problèmes et Questions Définition de la notion de composant ? 4(boite noire ou grise) Topologie ? Gestion ? Déploiement ? Indépendance vis-à-vis dune technologie

27 27 novembre 2003 26 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Modèle de composant : notre approche Architecture de SmartTools Méta-outil La méthode Définir un modèle de composant Abstrait 4indépendant dune technologie particulière Définition des transformations vers dautres modèles de composants : approche MDA Le modèle de composant Fortement basé sur un modèle neutre (PIM) P2P, Topologie dynamique Composant Extensible (services)

28 27 novembre 2003 27 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Connexion Générateur Modèle de composant Gestionnaire de composant Création Programmation par composants Modèle de données Modèle de vues Modèle dinterface Modèle sémantique Document Vue graphique Interface graphique Collaboration entre les divers modèles Capture dun savoir-faire Nouvelle notion de Type (interface)

29 27 novembre 2003 28 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Modèle de composants : transformation EJB Interfaces Home et Remote Eclipse API Eclipse ? Modèle de composants abstrait Fichier IDL + Classe Server CORBA CCM SmartTools Classe conteneur + Classe extension Façade Générateurs Fichier WSLD + Classe SOAP Web Services MDA PIM PSM Différentes interprétations de la notion de composant

30 27 novembre 2003 29 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches GUI : Le Modèle de vue Objectifs Mettre la forme logique au centre du débat Définir dabord le modèle de données Merci à XML !! Vue graphique hautement configurable 4IHM extensible, multi-support IDE ne doit pas être au centre de lapplication Petits langages métiers (en XML) 4tous nos modèles sont définis en XML

31 27 novembre 2003 30 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Modèle de vues : langage Cosynt Modèle de donnéesModèle de syntaxe concrète Composant logiqueComposant vue Modèle de vueModèle de style XSLT JTOM QVT Transformation de modèle : approche MDA MDA Transformations PIM à Transformations PSM Composant MDA Entrée Sortie parseurTransformation XSLTFeuille de style Fusion de transformation Transformations symétriques Incrémentale Double approche MDA Double approche MDA

32 27 novembre 2003 31 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Le plan Idée intuitive de la notion de Fabrique Logicielle Passé : FNC-2 4Résumé rapide de mes travaux sur les grammaires attribuées Présent et futur : SmartTools 4Les facteurs de ces bouleversements 4lapproche de fabrique logicielle 4Les quatre modèles dans SmartTools Conclusion : SmartTools ? 4Pendant les questions : une démonstration ?

33 27 novembre 2003 32 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches SmartTools : cest QUOI ? Une application fabriquée par une fabrique logicielle 4modèle de données, sémantique, composants et autres services Tester notre approche Une application qui permet de construire une fabrique 4définir des modèles métiers Proposer et étendre lapproche Une fabrique qui permet de concevoir une application rapidement (une famille). 4Tous nos langages sont définis en XML Construire des applications (champ dapplication)

34 27 novembre 2003 33 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Un monstre ? Application auto-générée Composant de base Gestionnaire de composant Interface Utilisateur Noyau Générateurs Générateur de composant Générateur de modèle Générateur de sémantique Générateur de vue 0% En phase de production Générateurs Générateur de composant Générateur de modèle Générateur de sémantique Générateur de vue 100% En mode ligne de commande Applications Composant logique X Composant vue X Composant logique Y Composant vue Y En mode non interactif ou en immersion Composant de base Gestionnaire de composant Interface Utilisateur 100%50% Cosynt Xprofile Coq (XML) XML générique N % dutilisation de la fabrique DTD XML schema XSLT Java MathML SVG HTML ant CSS Absynt cdml lml WSDLIDL bibtex RA INRIA B Syntax (relax) EDF (UML) Champ dapplication ? Champ dapplication ?

35 27 novembre 2003 34 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Conclusion : Macro-Programmation ? Les langages de programmation classique ne sont pas LA solution ? Modèle indépendant / inter-discipline ? Processus de développement / Incrémental ? Modèle de conception / Modèle de production ? Modèle universel / Modèle métier ? Applications ouvertes et adaptables ? Modèle pour chaque préoccupation ? AOP / directement sur le modèle ? Transformation Dynamique / projection des traitements ? Programmation générative / Méta-programmation ? Etc… Plus de questions que de réponses de réponses Mais un prototype de recherche existe déjà : SmartTools

36 27 novembre 2003 35 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Conclusion : Macro-programmation De la Micro-programmation à la Macro-programmation 4préoccupations, composants, modèles Nouveau style de programmation 4Hyper dynamique Support logiciel pour dautres domaines comme : 4Web Sémantique 4Base de Données 4GRID computing Le nombre dutilisateurs de la Macro-programmation va croître beaucoup plus vite que pour la micro Abstraction : modèles plus propice aux méthodes formelles ?

37 27 novembre 2003 36 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Un travail d'équipe : un grand MERCI à !!! Martin Jourdan : Grammaires Attribuées Catherine Julié, Bruno Marmol, Carole Lebellec, Aziz Souza, Gilles Roussel, Etienne Duris et Loic Correnson SmartTools Alexandre Fau, Pascal Degenne et Carine Courbis Stagiaires et Ingénieurs J. Bonnet, C. Ayrault, O. Durin, E. Planes, C. Zylberman, D. Devillar, J.P Jouve, R. Gomez, P. Bazet, B. Amilien, P. Rouzier, H. Benvel, G. Le Batard, S. Leibovitsch, R. Forax, A. Bergel, T. Abbondanza, J.L Baudoin, D. Nade, J.G Variamparembil, O. Chabrol, P. Farrugia, L. Cognard, P. Canalda, A. Rizk, T. Gaal, F. Chalaux, J. Fillon, C. Pasquier, C. Helm

38 27 novembre 2003 37 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches FIN QUESTIONS ? Une Fabrique Logicielle www-sop.inria.fr/oasis/SmartTools Présentation (PIM) Démonstration (PSM)

39 27 novembre 2003 38 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Un exemple dauto-utilisation : GUI

40 27 novembre 2003 39 Didier.Parigot@inria.fr Habilitation à Diriger des Recherches Aperçu de SmartTools


Télécharger ppt "27 novembre 2003 Habilitation à Diriger des Recherches présentée par Didier Parigot Contribution à la Programmation Générative."

Présentations similaires


Annonces Google