27 novembre 2003 didier.parigot@inria.fr habilitation à diriger des recherches présentée par...
Post on 04-Apr-2015
111 Views
Preview:
TRANSCRIPT
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 LogicielleMon thème de recherche :les langages de programmationLa Programmation Générative
caractérise humblementmes multiples travaux Les applications doivent être
ouvertes et adaptables
27 novembre 2003 2Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion Pendant les questions : une démonstration ?
27 novembre 2003 3Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Ouvertes et adaptables
Fabrique logicielle
Modèles ou langagesmétiers
générateurs
programmes
compilateurs
Système
langages
applications
exécution
Code métier
La glue
Plate-forme
Famille d’application
Contrôler les parties sensibles à l’évolution
Applications ouvertes etApplications ouvertes et
adaptables adaptables
Applications évolutives Applications évolutives
Capturer un savoir-faireCapturer un savoir-faire
Production en « série » Production en « série »
27 novembre 2003 4Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion Pendant les questions : une démonstration ?
27 novembre 2003 5Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Grammaires Attribuées : Années 70
Méthode pour décrire la sémantique des langages Déclarative
Le quoi, pas le comment : ensemble d’équations entre attributs Syntaxe (abstraite) ou Modèle
Exécutable (séquentielle, parallèle, incrémentale) Evaluateur d ’attributs
Applications Sémantique des langages de programmation
Nombreux travaux de recherche (1000 références) Théorie des GAs : classe de Grammaire Attribuée Pouvoir d’expression, applications
Plus beaucoup de recherches depuis 1995 ?
27 novembre 2003 6Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Les raisons de l’échec des GAs
Méthode de programmation par séparations de préoccupation, par attributs Impérative, fonctionnelle, logique, par attributs
Difficultés dans la construction d’évaluateurs d’attributs Classe de grammaire attribuée
Langage pour les grammaires attribuées Un sous-langage ou un langage à part entière ? Transformation de programme
Sémantique statique Méthode souvent comparée à une méthode de «
parsing »
27 novembre 2003 7Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion Pendant les questions : une démonstration ?
27 novembre 2003 8Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
FNC-2 et SmartTools
Deux fabriques logiciellesProgrammation générativeSyntaxe Abstraite = XML
Formalisme du W3C (XML) ou l’OMG (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
27 novembre 2003 9Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Les facteurs de bouleversements (1)
Émergence de l’Internet Les technologies XML Web sémantique, Application sur le Web
Échange de données entre applications
Applications distribuées, applications embarquées Architecture, mobilité, communication (P2P)
Quel type de système informatique ?
Nouvelles technologies Composants, protocole, matériels
Quelle est LA technologie de demain ?
27 novembre 2003 10Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Les facteurs de bouleversements (2)
Démocratisation de l’informatique Ubiquitaire : présente partout
Quel utilisateur va-t’on découvrir ? (par hasard)
Rapidité du développement Retour d’investissement
Quelle application pour demain ? (quelque mois)
Réutilisation : composant monde ouvert
Logiciel libre ?Formalismes Standards : W3C et OMG
27 novembre 2003 11Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion Pendant les questions : une démonstration ?
27 novembre 2003 12Didier.Parigot@inria.f
r 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èlespar transformation
Fertilisation croisée entre divers
domaines de recherche
Les applications doivent être ouvertes et adaptables
27 novembre 2003 13Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Programmation par aspects
Application(classes)
Tisseur
Préoccupations(aspects)
Séparation des préoccupations
Modèle d’accroche
Modèle: Abstraction de l’application pour la préoccupation
27 novembre 2003 14Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Programmation par composants
conteneurgénérateur
code métier
modèle de composant
Séparation du code fonctionnel et code non fonctionnel
Technologie
code métier
conteneur
composant extensibleModèle : Abstraction du code métier pour le conteneur
27 novembre 2003 15Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Programmation par modèle de données
Modèle de données 2 Transformation
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
27 novembre 2003 16Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Evolution des langages de programmation
Par séparation de préoccupationsLe corps des méthodes, fonctions, etc...
La programmation par composantsles appels, les interfaces
La programmation par modèlesla structure de données
Les langages de
programmation
Les applications doivent être ouvertes et adaptables
Modèles ou langagesmétiers
Générateurs
Nouveaux langages de Nouveaux langages de
programmationprogrammation
Modèle: une abstraction Modèle: une abstraction
pour une préoccupation pour une préoccupation
27 novembre 2003 17Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion Pendant les questions : une démonstration ?
27 novembre 2003 18Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Fabrique logicielle : SmartTools
Générateurs
PIMPIM PSM
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 programmeurLes parties sensibles à l’évolutionModèles Indépendants (PIM) Modèles Spécifiques (PSM)Approche MDA
Autres préoccupationsAutres préoccupations
Autres modèles Autres modèles
27 novembre 2003 19Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le modèle de données (1)
ObjectifsModèle indépendant : PIM
D’un langage de programmation (d’une plate-forme) : format neutre
des générateurs qui instrument le modèle : PSMs
Utilisation des efforts de standardisation du W3C s’ouvrir vers des champs d’application plus vastes !!
27 novembre 2003 20Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
UMLMOF
Modèle de données (2)
Modèle de donnéesMéta-langage : Absynt
Traducteurs
DTD
Schema XML
Générateurs
Classes en Java(DOM)
Instance de
XMLXML
JavaXML
XMLXML
Conforme à Se serialise en
Se représente en
PSMPSM
Cosy CosyCentaurCentaur
Modèle 1 de données
Modèle 2 de données
Dans FNC-2 :Dans FNC-2 :
ASX, notre méta-langageASX, notre méta-langage
Niveau Méta
27 novembre 2003 21Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le modèle de données : modèle pivot (3)
Impact des technologies XML
Modélisation UML (programmation OO) MOF, méta-langage (les 4 niveaux) Modé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 ?
27 novembre 2003 22Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le modèle sémantique
ContexteSémantique d’un modèle = ensemble des
traitements Statique comme dynamique
Divers domaines hors du cadre classique des langages Sémantique plus souple
Objectifs Notre approche
Simple (proche de l’implantation) et pragmatique Projetable par transformation du modèle de base
Séparation entre le modèle et les actions sémantiques
27 novembre 2003 23Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le modèle sémantique : Solution
Patron de conception « visiteur » Séparation entre la structure et les traitements pour
de meilleures réutilisation et indépendance vis-à-vis du modèle
Flot de contrôle lié au traitement Parcours de la structure de données
Programmation par aspect sur ce type de programmation programmation générative Structure + flot de contrôle + actions = programme
Utile pour la projection de la sémantique induite par une transformation du modèle de base
27 novembre 2003 24Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Projection de la sémantique
Modèle 2 TransformationTechnologie2
Modèle 1
Technologie1
traitement
Projectiond’aspects
Projection dynamique ?Projection dynamique ?
Par exemple pour Par exemple pour
les composantsles composants
27 novembre 2003 25Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Architecture : Modèle de composants
Contexte Composants Langages
Ma propre expérience (FNC-2, Cosy, SmartTools) Composants Systèmes (Applications distribuées)
Nombreuses technologies et Travaux de recherche
Objectifs Séparation des préoccupations Apport d’un certain savoir-faire
Problèmes et Questions Définition de la notion de composant ?
(boite noire ou grise) Topologie ? Gestion ? Déploiement ? Indépendance vis-à-vis d’une technologie
27 novembre 2003 26Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Modèle de composant : notre approche
Architecture de SmartToolsMéta-outil
La méthodeDéfinir un modèle de composant Abstrait
indépendant d’une technologie particulière
Définition des transformations vers d’autres modèles de composants : approche MDA
Le modèle de composantFortement basé sur un modèle neutre (PIM)P2P, Topologie dynamiqueComposant Extensible (services)
27 novembre 2003 27Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Connexion
Générateur
Modèle de composant
Gestionnairede composant
Création
Programmation par composants
Modèle de données
Modèle de vues
Modèle d’interface
Modèle sémantique
Document
Vue graphique
Vue graphique
Interface graphique
Collaboration entre Collaboration entre
les divers modèles les divers modèles Capture d’un savoir-faire Capture d’un savoir-faire
Nouvelle notion de Nouvelle notion de
Type (interface)Type (interface)
27 novembre 2003 28Didier.Parigot@inria.f
r 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étationsDifférentes interprétations
de la notion de la notion
de composant de composant
27 novembre 2003 29Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
GUI : Le Modèle de vue
Objectifs Mettre la forme logique au centre du débat
Définir d’abord le modèle de donnéesMerci à XML !!
Vue graphique hautement configurable
IHM extensible, multi-support
IDE ne doit pas être au centre de l’application
Petits langages métiers (en XML) tous nos modèles sont définis en XML
27 novembre 2003 30Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Modèle de vues : langage Cosynt Modèle de donnéesModèle de syntaxe concrète
Composant logique Composant vue
Modèle de vue Modèle de style
XSLT
JTOM
QVT
Transformation de modèle : approche MDA
MDA
Transformations PIMà
Transformations PSMComposant MDA
Entrée
Sortie
parseur Transformation XSLT Feuille de style
Fusion de transformationFusion de transformation
Transformations symétriquesTransformations symétriques
IncrémentaleIncrémentale
Double approche MDADouble approche MDA
27 novembre 2003 31Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Le plan
Idée intuitive de la notion de Fabrique Logicielle
Passé : FNC-2 Résumé rapide de mes travaux sur les grammaires
attribuées
Présent et futur : SmartTools Les facteurs de ces bouleversements l’approche de fabrique logicielle L es quatre modèles dans SmartTools
Conclusion : SmartTools ? Pendant les questions : une démonstration ?
27 novembre 2003 32Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
SmartTools : c’est QUOI ?
Une application fabriquée par une fabrique logicielle modèle de données, sémantique, composants et autres
services
Tester notre approche
Une application qui permet de construire une fabrique définir des modèles métiers
Proposer et étendre l’approche
Une fabrique qui permet de concevoir une application rapidement (une famille). Tous nos langages sont définis en XML
Construire des applications (champ d’application)
27 novembre 2003 33Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Un monstre ? Application auto-générée
Composant de base Gestionnairede composant
Interface Utilisateur
Noyau
Générateurs Générateurde composant
Générateurde modèle
Générateurde sémantique
Générateurde vue
0%
En phase de production
Générateurs Générateurde composant
Générateurde modèle
Générateurde sémantique
Générateurde vue
100%
En mode ligne de commande
ApplicationsComposant logique X
Composant vue X
Composant logique Y
Composant vue Y
En mode non interactif ou en immersion
Composant de base Gestionnairede composant
Interface Utilisateur
100%50%
Cosynt
XprofileCoq
(XML)
XML générique
N % d’utilisation de la fabrique
DTDXML
schema
XSLT JavaMathML SVGHTML
ant CSSAbsyntcdml
lml
WSDL IDLbibtexRA
INRIAB
Syntax(relax)
EDF(UML)
Champ d’application ? Champ d’application ?
27 novembre 2003 34Didier.Parigot@inria.f
r 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…Etc…
Plus de questions quePlus de questions que
de réponses de réponses
MaisMais
un prototype de rechercheun prototype de recherche
existe déjà :existe déjà :
SmartToolsSmartTools
27 novembre 2003 35Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Conclusion : Macro-programmation
De la Micro-programmation à la Macro-programmation préoccupations, composants, modèles
Nouveau style de programmation Hyper dynamique
Support logiciel pour d’autres domaines comme : Web Sémantique Base de Données GRID computing
Le nombre d’utilisateurs de la Macro-programmation va croître beaucoup plus vite que pour la micro
Abstraction : modèles plus propice aux méthodes formelles ?
27 novembre 2003 36Didier.Parigot@inria.f
r 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
SmartToolsAlexandre 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
27 novembre 2003 37Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
FIN
QUESTIONS ?
Une Fabrique Logiciellewww-sop.inria.fr/oasis/SmartTools
Présentation (PIM)Démonstration (PSM)
27 novembre 2003 38Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Un exemple d’auto-utilisation : GUI
27 novembre 2003 39Didier.Parigot@inria.f
r Habilitation à Diriger des Recherches
Aperçu de SmartTools
top related