analyse d’un langage de programmation réflexif orienté composants etude de compo

Click here to load reader

Post on 21-Jul-2015

35 views

Category:

Software

0 download

Embed Size (px)

TRANSCRIPT

  • Analyse dun langage de programmation reflexiforiente composantsEtude de COMPO

    FERRAND Anthony NELAUPE Lucas VERDIER Frederic

    Universite Montpellier II

    24 fevrier 2015

    1/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 1 / 33

  • Introduction

    Sommaire

    1 Introduction

    2 Focus sur le language COMPOLes descripteurs de composantLes portsLes connexions

    3 Reflexions sur les ameliorations possibles de COMPOLes passages dargumentsType de retour doperation

    4 Nos contributions a` COMPOAjout de syntaxeModifications de syntaxePassage dun port requis ou fourniRetour par port requis ou fourniAssertion sur le type de retour

    5 Gestion de projet

    6 ConclusionCritiquesNos perspectives

    2/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 2 / 33

  • Introduction

    Introduction

    Contexte : La reutilisabilite en developpement logiciel

    Developper un logiciel est tre`s couteux (en temps et en argent)

    Certains elements du programme sont redondants

    Solution : Le paradigme composant qui facilite la reutilisation

    Chaque partie du programme est cloisonnee

    Un programme est un assemblage de composants

    Un composant posse`de une ou plusieurs taches precises

    Chaque composant doit indiquer

    Ce quil fournit (provided)Ce dont il a besoin (required)

    Objectif : Reutiliser les elements deja` developpes

    Programme moins sujet aux erreurs

    Developpement plus rapide et donc moins couteux

    3/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 3 / 33

  • Introduction

    Definitions

    Composant :

    A run-time entity which provides and requires services throughports. [Petr SPACEK, Design and Implementation of aReflective Component-oriented Programming and ModelingLanguage, 2013]

    Port :A port is a connection point (components are connected throughtheir ports) and a communication point.

    [Chouki Tibermacine, Luc Fabresse, Pert Spacek, Christophe Dony, AnInheritance System for Structural & Behavioral Reuse inComponent-based Software Programming, 2012]

    Connexion :Describes a binding from one to another port.

    [Petr SPACEK, Design and Implementation of a ReflectiveComponent-oriented Programming and Modeling Language, 2013]

    4/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 4 / 33

  • Introduction

    Notre objectif

    Participer au developpement du langage oriente composant : COMPO

    Participer aux reflexions pour levolution du langage.

    Contribuer a` son amelioration

    5/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 5 / 33

  • Introduction

    Sommaire1 Introduction2 Focus sur le language COMPO

    Les descripteurs de composantLes portsLes connexions

    3 Reflexions sur les ameliorations possibles de COMPOLes passages dargumentsType de retour doperation

    4 Nos contributions a` COMPOAjout de syntaxeModifications de syntaxePassage dun port requis ou fourniRetour par port requis ou fourniAssertion sur le type de retour

    5 Gestion de projet6 Conclusion

    CritiquesNos perspectives

    6/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 6 / 33

  • Focus sur le language COMPO

    Sommaire

    1 Introduction

    2 Focus sur le language COMPOLes descripteurs de composantLes portsLes connexions

    3 Reflexions sur les ameliorations possibles de COMPOLes passages dargumentsType de retour doperation

    4 Nos contributions a` COMPOAjout de syntaxeModifications de syntaxePassage dun port requis ou fourniRetour par port requis ou fourniAssertion sur le type de retour

    5 Gestion de projet

    6 ConclusionCritiquesNos perspectives

    7/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 7 / 33

  • Focus sur le language COMPO

    Focus sur le language COMPO

    Langage developpe par Petr SPACEK dans sa the`se [Design andImplementation of a Reflective Component-oriented Programming andModeling Language, 2013].

    Base sur SmallTalk

    Reflexif

    Le langage permet de

    Expliciter le requisProgrammer pour et par la reutilisation

    8/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 8 / 33

  • Focus sur le language COMPO

    Lidee de programmation orientee composants

    9/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 9 / 33

  • Focus sur le language COMPO Les descripteurs de composant

    Architecture du langage COMPO

    Figure: Metamode`le du langage COMPO [Petr SPACEK, Design and Implementationof a Reflective Component-oriented Programming and Modeling Language, 2013]

    10/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 10 / 33

  • Focus sur le language COMPO Les descripteurs de composant

    Informations presentes dans un descripteur

    Le requis : Ce dont un composant a besoin pour fonctionner.

    Le fourni : Il sagit des services que le composant decrit propose.

    Architecture interne : Les composants peuvent etre eux-memes composesdautres composants. On parle alors de composites.

    Les services : Decrit la logique metier des composants.

    Listing 1 Syntaxe generale dun descripteur

    1 extends {

    2 requires { }

    3 provides { }

    4 architecture { }

    5

    6 }

    11/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 11 / 33

  • Focus sur le language COMPO Les ports

    Les ports

    Visibilite

    Interne / Externe

    Cardinalite

    Simple / Multiple

    Role

    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 defauts

    Un port fourni externe par defaut nomme default.

    Un port requis externe multiple nomme args.

    Un port requis interne nomme self.

    Un port requis interne nomme super

    12/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 12 / 33

  • Reflexions sur les ameliorations possibles de COMPO

    Sommaire

    1 Introduction

    2 Focus sur le language COMPOLes descripteurs de composantLes portsLes connexions

    3 Reflexions sur les ameliorations possibles de COMPOLes passages dargumentsType de retour doperation

    4 Nos contributions a` COMPOAjout de syntaxeModifications de syntaxePassage dun port requis ou fourniRetour par port requis ou fourniAssertion sur le type de retour

    5 Gestion de projet

    6 ConclusionCritiquesNos perspectives

    13/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 13 / 33

  • Reflexions sur les ameliorations possibles de COMPO Les passages darguments

    Passage dun port fourni

    Figure: Exemple lors dun passage dun port fourni en argument a` o : avant modificationde rAC

    .

    14/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 14 / 33

  • Reflexions sur les ameliorations possibles de COMPO Les passages darguments

    Passage dun port fourni : apre`s execution de exec

    Figure: Exemple lors dun passage dun port fourni en argument a` o : apre`s modificationde rAC

    .

    15/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 15 / 33

  • Reflexions sur les ameliorations possibles de COMPO Les passages darguments

    Passage dun port requis

    Figure: Exemple lors dun passage dun port requis en argument a` o : avant modificationde rAC

    .

    16/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 16 / 33

  • Reflexions sur les ameliorations possibles de COMPO Les passages darguments

    Passage dun port requis : apre`s execution de exec

    Figure: Exemple lors dun passage dun port requis en argument a` o : apre`s modificationde rAC

    .

    17/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 17 / 33

  • Reflexions sur les ameliorations possibles de COMPO Type de retour doperation

    Retour dun port fourni

    Figure: Cas du retour dun port fourni : on renvoie a` lappelant un port requis anonymeconnecte a` ce port

    .

    18/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 18 / 33

  • Reflexions sur les ameliorations possibles de COMPO Type de retour doperation

    Retour dun port requis

    Figure: Cas du retour dun port requis : on renvoie a` lappelant le port requis

    .

    19/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 19 / 33

  • Nos contributions a` COMPO

    Sommaire

    1 Introduction

    2 Focus sur le language COMPOLes descripteurs de composantLes portsLes connexions

    3 Reflexions sur les ameliorations possibles de COMPOLes passages dargumentsType de retour doperation

    4 Nos contributions a` COMPOAjout de syntaxeModifications de syntaxePassage dun port requis ou fourniRetour par port requis ou fourniAssertion sur le type de retour

    5 Gestion de projet

    6 ConclusionCritiquesNos perspectives

    20/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 20 / 33

  • Nos contributions a` COMPO Ajout de syntaxe

    Ajout de syntaxe

    Connexion dun port requis a` un litteral

    Listing 2 Syntaxe dune connexion a` un litteral

    1 connect [email protected] to 1;

    2 connect [email protected] to 3.14;

    3 connect [email protected] to Hello World;

    Section de code SmallTalk dans COMPO

    Listing 3 Syntaxe dune primitive smalltalk en COMPO

    1 2 Transcript crShow: Hello.

    3 >

    21/33 Ferrand, Nelaupe, Verdier (UM2) Analyse de COMPO 24 fevrier 2015 21 / 33

  • Nos contributions

View more