Analyse d’un langage de programmation r´eflexif
orient´e composants
Etude de COMPO
FERRAND Anthony NELAUPE Lucas VERDIER Fr...
Introduction
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
Les connexions
...
Introduction
Introduction
Contexte : La r´eutilisabilit´e en d´eveloppement logiciel
D´evelopper un logiciel est tr`es coˆ...
Introduction
D´efinitions
Composant :
A run-time entity which provides and requires services through
ports. [Petr SPACEK, D...
Introduction
Notre objectif
Participer au d´eveloppement du langage orient´e composant : COMPO
Participer aux r´eflexions p...
Introduction
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
Les connexions
...
Focus sur le language COMPO
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
...
Focus sur le language COMPO
Focus sur le language COMPO
Langage d´evelopp´e par Petr SPACEK dans sa th`ese [Design and
Imp...
Focus sur le language COMPO
L’id´ee de programmation orient´ee composants
9/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de ...
Focus sur le language COMPO Les descripteurs de composant
Architecture du langage COMPO
Figure: M´etamod`ele du langage CO...
Focus sur le language COMPO Les descripteurs de composant
Informations pr´esentes dans un descripteur
Le requis : Ce dont ...
Focus sur le language COMPO Les ports
Les ports
Visibilit´e
Interne / Externe
Cardinalit´e
Simple / Multiple
Rˆole
Fourni ...
R´eflexions sur les am´eliorations possibles de COMPO
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteur...
R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments
Passage d’un port fourni
Figure: Exemple lor...
R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments
Passage d’un port fourni : apr`es ex´ecution...
R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments
Passage d’un port requis
Figure: Exemple lor...
R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments
Passage d’un port requis : apr`es ex´ecution...
R´eflexions sur les am´eliorations possibles de COMPO Type de retour d’op´eration
Retour d’un port fourni
Figure: Cas du re...
R´eflexions sur les am´eliorations possibles de COMPO Type de retour d’op´eration
Retour d’un port requis
Figure: Cas du re...
Nos contributions `a COMPO
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
L...
Nos contributions `a COMPO Ajout de syntaxe
Ajout de syntaxe
Connexion d’un port requis `a un litt´eral
Listing 2 – Syntax...
Nos contributions `a COMPO Modifications de syntaxe
Modifications de syntaxe
Faire une connexion avec le mot cl´e >>>
Listin...
Nos contributions `a COMPO Passage d’un port requis ou fourni
Passage d’un port requis ou fourni
Soient a et var des ports...
Nos contributions `a COMPO Retour par port requis ou fourni
Retour par port requis ou fourni
Soit portInterne un port requ...
Nos contributions `a COMPO Assertion sur le type de retour
Assertion sur le type de retour
Soit portInterne un port requis...
Gestion de projet
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
Les connex...
Gestion de projet
Gestion de projet
Gestion de projet agile.
R´eunion hebdomadaire avec M. Dony.
Un rapport livr´e `a chaq...
Conclusion
Sommaire
1 Introduction
2 Focus sur le language COMPO
Les descripteurs de composant
Les ports
Les connexions
3 ...
Conclusion
Conclusion
Plusieurs modes de connexion pour plusieurs comportements du programme.
Plusieurs mani`eres de chois...
Conclusion Critiques
Critiques
V´erification de compatibilit´e incompl`ete.
Pas d’expression du requis sur les arguments d’...
Conclusion Nos perspectives
Nos perspectives
Court terme
Continuer la v´erification de compatibilit´e
Impl´ementer la conne...
Conclusion Nos perspectives
Bibliographie
[1] Petr SPACEK. Design and Implementation of a Reflective Component-oriented Pro...
Conclusion Nos perspectives
Merci,
Nous allons maintenant faire une d´emonstration du syst`eme COMPO.
33/33 Ferrand, Nelau...
Prochain SlideShare
Chargement dans…5
×

Analyse d’un langage de programmation réflexif orienté composants Etude de COMPO

303 vues

Publié le

Analyse d’un langage de programmation réflexif
orient ́e composants
Etude de COMPO

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
303
Sur SlideShare
0
Issues des intégrations
0
Intégrations
20
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Analyse d’un langage de programmation réflexif orienté composants Etude de COMPO

  1. 1. Analyse d’un langage de programmation r´eflexif orient´e composants Etude de COMPO FERRAND Anthony NELAUPE Lucas VERDIER Fr´ed´eric Universit´e Montpellier II 24 f´evrier 2015 1/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 1 /
  2. 2. Introduction Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 2/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 2 /
  3. 3. Introduction Introduction Contexte : La r´eutilisabilit´e en d´eveloppement logiciel D´evelopper un logiciel est tr`es coˆuteux (en temps et en argent) Certains ´el´ements du programme sont redondants Solution : Le paradigme composant qui facilite la r´eutilisation Chaque partie du programme est cloisonn´ee Un programme est un assemblage de composants Un composant poss`ede une ou plusieurs tˆaches pr´ecises Chaque composant doit indiquer Ce qu’il fournit (provided) Ce dont il a besoin (required) Objectif : R´eutiliser les ´el´ements d´ej`a d´evelopp´es Programme moins sujet aux erreurs D´eveloppement plus rapide et donc moins coˆuteux 3/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 3 /
  4. 4. Introduction D´efinitions Composant : A run-time entity which provides and requires services through ports. [Petr SPACEK, Design and Implementation of a Reflective Component-oriented Programming and Modeling Language, 2013] Port : A port is a connection point (components are connected through their ports) and a communication point. [Chouki Tibermacine, Luc Fabresse, Pert Spacek, Christophe Dony, An Inheritance System for Structural & Behavioral Reuse in Component-based Software Programming, 2012] Connexion : Describes a binding from one to another port. [Petr SPACEK, Design and Implementation of a Reflective Component-oriented Programming and Modeling Language, 2013] 4/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 4 /
  5. 5. Introduction Notre objectif Participer au d´eveloppement du langage orient´e composant : COMPO Participer aux r´eflexions pour l’´evolution du langage. Contribuer `a son am´elioration 5/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 5 /
  6. 6. Introduction Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 6/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 6 /
  7. 7. Focus sur le language COMPO Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 7/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 7 /
  8. 8. Focus sur le language COMPO Focus sur le language COMPO Langage d´evelopp´e par Petr SPACEK dans sa th`ese [Design and Implementation of a Reflective Component-oriented Programming and Modeling Language, 2013]. Bas´e sur SmallTalk R´eflexif Le langage permet de Expliciter le requis Programmer pour et par la r´eutilisation 8/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 8 /
  9. 9. Focus sur le language COMPO L’id´ee de programmation orient´ee composants 9/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 9 /
  10. 10. Focus sur le language COMPO Les descripteurs de composant Architecture du langage COMPO Figure: M´etamod`ele du langage COMPO [Petr SPACEK, Design and Implementation of a Reflective Component-oriented Programming and Modeling Language, 2013] 10/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 10
  11. 11. Focus sur le language COMPO Les descripteurs de composant Informations pr´esentes dans un descripteur Le requis : Ce dont un composant a besoin pour fonctionner. Le fourni : Il s’agit des services que le composant d´ecrit propose. Architecture interne : Les composants peuvent ˆetre eux-mˆemes compos´es d’autres composants. On parle alors de composites. Les services : D´ecrit la logique m´etier des composants. Listing 1 – Syntaxe g´en´erale d’un descripteur 1 <Meta-descripteur> <Descripteur> extends <Super-descripteur>{ 2 requires { } 3 provides { } 4 architecture { } 5 <Services> 6 } 11/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 11
  12. 12. Focus sur le language COMPO Les ports Les ports Visibilit´e Interne / Externe Cardinalit´e Simple / Multiple Rˆole Fourni : liste les signatures de services offerts par un composant. Requis : liste les signatures de services requis par le composant. Liste de signatures de services Ports par d´efauts Un port fourni externe par d´efaut nomm´e default. Un port requis externe multiple nomm´e args. Un port requis interne nomm´e self. Un port requis interne nomm´e super 12/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 12
  13. 13. R´eflexions sur les am´eliorations possibles de COMPO Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 13/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 13
  14. 14. R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Passage d’un port fourni Figure: Exemple lors d’un passage d’un port fourni en argument `a o : avant modification de rAC . 14/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 14
  15. 15. R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Passage d’un port fourni : apr`es ex´ecution de exec Figure: Exemple lors d’un passage d’un port fourni en argument `a o : apr`es modification de rAC . 15/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 15
  16. 16. R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Passage d’un port requis Figure: Exemple lors d’un passage d’un port requis en argument `a o : avant modification de rAC . 16/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 16
  17. 17. R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Passage d’un port requis : apr`es ex´ecution de exec Figure: Exemple lors d’un passage d’un port requis en argument `a o : apr`es modification de rAC . 17/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 17
  18. 18. R´eflexions sur les am´eliorations possibles de COMPO Type de retour d’op´eration Retour d’un port fourni Figure: Cas du retour d’un port fourni : on renvoie `a l’appelant un port requis anonyme connect´e `a ce port . 18/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 18
  19. 19. R´eflexions sur les am´eliorations possibles de COMPO Type de retour d’op´eration Retour d’un port requis Figure: Cas du retour d’un port requis : on renvoie `a l’appelant le port requis . 19/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 19
  20. 20. Nos contributions `a COMPO Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 20/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 20
  21. 21. Nos contributions `a COMPO Ajout de syntaxe Ajout de syntaxe Connexion d’un port requis `a un litt´eral Listing 2 – Syntaxe d’une connexion `a un litt´eral 1 connect compteurVal@self to 1; 2 connect compteurVal@self to 3.14; 3 connect compteurVal@self to ’Hello World’; Section de code SmallTalk dans COMPO Listing 3 – Syntaxe d’une primitive smalltalk en COMPO 1 <! 2 Transcript crShow: ’Hello’. 3 > 21/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 21
  22. 22. Nos contributions `a COMPO Modifications de syntaxe Modifications de syntaxe Faire une connexion avec le mot cl´e >>> Listing 4 – Ancienne et nouvelle syntaxe d’une connexion 1 connect compteurVal@self to 1; "Ancienne syntaxe" 2 compteurVal >>> 1; "Nouvelle syntaxe" D´efinir un service avec le mot cl´e operation Listing 5 – Ancienne et nouvelle syntaxe d’un service 1 service foo() { 2 "Ancienne syntaxe" 3 } 4 5 operation foo() { 6 "Nouvelle syntaxe" 7 } 22/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 22
  23. 23. Nos contributions `a COMPO Passage d’un port requis ou fourni Passage d’un port requis ou fourni Soient a et var des ports requis. var est connect´e `a un port fourni. Listing 6 – Syntaxe du passage d’un port fourni en COMPO 1 a.foo(var); Listing 7 – Syntaxe du passage d’un port requis en COMPO 1 a.foo(!var); 23/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 23
  24. 24. Nos contributions `a COMPO Retour par port requis ou fourni Retour par port requis ou fourni Soit portInterne un port requis connect´e `a un port fourni. Listing 8 – Syntaxe de retour d’un port requis en COMPO 1 operation foo() { 2 return !portInterne; 3 } Listing 9 – Syntaxe de retour d’un port fourni en COMPO 1 operation foo() { 2 return portInterne; 3 } 24/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 24
  25. 25. Nos contributions `a COMPO Assertion sur le type de retour Assertion sur le type de retour Soit portInterne un port requis connect´e `a un port fourni. Listing 10 – Assertion de renvoie d’un port requis 1 operation foo() :req { 2 return !portInterne; 3 } Listing 11 – Assertion de renvoie d’un port fourni 1 operation foo() :pro { 2 return portInterne; 3 } 25/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 25
  26. 26. Gestion de projet Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 26/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 26
  27. 27. Gestion de projet Gestion de projet Gestion de projet agile. R´eunion hebdomadaire avec M. Dony. Un rapport livr´e `a chaque r´eunion. Une d´emonstration de nos ajouts les plus r´ecents. R´epartition des tˆaches suivants trois grands axes : Anthony Ferrand : Syntaxe et gestion du parser Lucas Nelaupe : Invocations de services et rapport Fr´ed´eric Verdier : R´eflexions th´eoriques, interface graphique et supervision 27/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 27
  28. 28. Conclusion Sommaire 1 Introduction 2 Focus sur le language COMPO Les descripteurs de composant Les ports Les connexions 3 R´eflexions sur les am´eliorations possibles de COMPO Les passages d’arguments Type de retour d’op´eration 4 Nos contributions `a COMPO Ajout de syntaxe Modifications de syntaxe Passage d’un port requis ou fourni Retour par port requis ou fourni Assertion sur le type de retour 5 Gestion de projet 6 Conclusion Critiques Nos perspectives 28/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 28
  29. 29. Conclusion Conclusion Plusieurs modes de connexion pour plusieurs comportements du programme. Plusieurs mani`eres de choisir un mode connexion (instruction de connexion, passage d’argument, retour d’op´eration). Augmentation de la syntaxe et impl´ementation des diff´erents modes de connexion en COMPO pour illustrer ces comportements. 29/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 29
  30. 30. Conclusion Critiques Critiques V´erification de compatibilit´e incompl`ete. Pas d’expression du requis sur les arguments d’op´erations Couche r´eflexive incompl`ete Impossibilit´e de recompiler les descripteurs du coeur du langage. Mot cl´e @ brise l’encapsulation dans les op´erations. 30/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 30
  31. 31. Conclusion Nos perspectives Nos perspectives Court terme Continuer la v´erification de compatibilit´e Impl´ementer la connexion partag´ee Moyen terme Impl´ementer les op´erations de la couche r´eflexive Interdire l’acc`es `a un port distant auquel on n’est pas connect´e Long terme Extraire COMPO de Pharo 31/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 31
  32. 32. Conclusion Nos perspectives Bibliographie [1] Petr SPACEK. Design and Implementation of a Reflective Component-oriented Programming and Modeling Language. 2013. [2] Pert Spacek Christophe Dony Chouki Tibermacine, Luc Fabresse. ”An Inheritance System for Structural & Behavioral Reuse in Component-based Software Programming”. 2012. [3] Lukas Renggli Jan Kurs, Guillaume Larcheveque. PetitParser : Building Modular Parsers. [4] Christelle Urtado Sylvain Vauttier Marianne Huchard Huaxi (Yulin) Zhang, Lei Zhang. A three-level component model in component-based software development. 32/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 32
  33. 33. Conclusion Nos perspectives Merci, Nous allons maintenant faire une d´emonstration du syst`eme COMPO. 33/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 f´evrier 2015 33

×