SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Quelques explications pour les
                patrons : l’outil PTIDEJ


                Yann-Gaël Guéhéneuc et Narendra Jussien
                       École des Mines de Nantes
                       Département Informatique



PPC avec Explications                   JNPC 01 - N.J. - 06/01 - 1/12
Plan


     n   But du travail
     n   Les patrons de conceptions (design-patterns)
     n   Le CSP à résoudre
     n   L’apport des explications
     n   Conclusion




PPC avec Explications                 JNPC 01 - N.J. - 06/01 - 2/12
Objectif


     n   Améliorer la qualité des logiciels
          l   uniquement aspects architecturaux
          l   amélioration a posteriori


     n   Outil privilégié :
         patrons de conception (Design patterns)
          l   Compilation de l’expérience des développeurs
          l   Problèmes récurrents d’architecture
          l   Une bonne solution




PPC avec Explications                         JNPC 01 - N.J. - 06/01 - 3/12
Un exemple : composite




     n   Composition d’objets dans une structure
         arborescente pour un traitement uniforme des
         objets et des compositions

PPC avec Explications                JNPC 01 - N.J. - 06/01 - 4/12
Le problème

     n   Identifier les utilisations d’un patron
          l   montrer que le code est bien écrit
          l   notion de solution classique
     n   Identifier les quasi-utilisations d’un patron
          l   proposer des améliorations du code analysé
          l   notion de solution dégradée d’un problème donné



     n   Modéliser le patron sous forme de CSP
     n   Trouver solutions et solutions dégradées
          l   interaction avec l’utilisateur


PPC avec Explications                          JNPC 01 - N.J. - 06/01 - 5/12
Exemple

                        Recherche de solution




PPC avec Explications      JNPC 01 - N.J. - 06/01 - 6/12
Caractéristiques du problème


     n   Pas de description a priori des « dégradations »
          l   on ne veut/peut pas penser à tout


     n   Capacité de justifications
          l   programmation : activité « artistique »
          l   délicat de modifier du code sans expliquer pourquoi


     n   Interaction forte avec l’utilisateur
          l   description dynamique des dégradations


     n   Une solution : utilisation de la ePPC

PPC avec Explications                          JNPC 01 - N.J. - 06/01 - 7/12
Le CSP résolu


     n   Le CSP est déduit de deux informations
          l   Le patron de conception
               – Les variables sont les classes actrices
               – Les contraintes les relations voulues entre les classes

          l   Le code à analyser
               – Les domaines des variables sont les classes du logiciel
               – La sémantique des contraintes dérive des relations
                 effectives entre les classes du logiciel




PPC avec Explications                             JNPC 01 - N.J. - 06/01 - 8/12
Exemple : contraintes


     n   Le patron de conception




     n   Les contraintes

                        composite < component
                        leaf < component
                        composite ⊃ component

PPC avec Explications               JNPC 01 - N.J. - 06/01 - 9/12
Exemple : résolution




PPC avec Explications       JNPC 01 - N.J. - 06/01 - 10/12
Implémentation : le système PTIDEJ

     n   Développé en PaLM
     n   Bibliothèque de contraintes
          l   héritage, création, composition, connaissance, …
          l   méta-contraintes : écriture de nouvelles contraintes
     n   Bibliothèque de patrons de conception
          l   Composite, Facade, Mediator, AbstractFactory,
              Observer, Singleton, …
     n   Expérimentations
          l   Petits exemples de code
          l   framework JHotDraw (~100 classes)
          l   PTITDEJ lui-même !!! (en cours)



PPC avec Explications                         JNPC 01 - N.J. - 06/01 - 11/12
Conclusion et perspectives

     n   Une application des explications
          l   application de type débogage/aide à la décision et
              problèmes dynamiques
     n   Perspectives à court terme
          l   ajout de nouveaux patrons
          l   ajout de nouvelles contraintes (globales)
          l   autres tests
     n   Perspectives à moyen/long terme
          l   prise en compte d’informations à l’exécution
          l   travail sur la sémantique des liens entre classes
               – certaines relations sont implicites




PPC avec Explications                              JNPC 01 - N.J. - 06/01 - 12/12

Weitere ähnliche Inhalte

Mehr von Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Mehr von Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

JNPC01.ppt

  • 1. Quelques explications pour les patrons : l’outil PTIDEJ Yann-Gaël Guéhéneuc et Narendra Jussien École des Mines de Nantes Département Informatique PPC avec Explications JNPC 01 - N.J. - 06/01 - 1/12
  • 2. Plan n But du travail n Les patrons de conceptions (design-patterns) n Le CSP à résoudre n L’apport des explications n Conclusion PPC avec Explications JNPC 01 - N.J. - 06/01 - 2/12
  • 3. Objectif n Améliorer la qualité des logiciels l uniquement aspects architecturaux l amélioration a posteriori n Outil privilégié : patrons de conception (Design patterns) l Compilation de l’expérience des développeurs l Problèmes récurrents d’architecture l Une bonne solution PPC avec Explications JNPC 01 - N.J. - 06/01 - 3/12
  • 4. Un exemple : composite n Composition d’objets dans une structure arborescente pour un traitement uniforme des objets et des compositions PPC avec Explications JNPC 01 - N.J. - 06/01 - 4/12
  • 5. Le problème n Identifier les utilisations d’un patron l montrer que le code est bien écrit l notion de solution classique n Identifier les quasi-utilisations d’un patron l proposer des améliorations du code analysé l notion de solution dégradée d’un problème donné n Modéliser le patron sous forme de CSP n Trouver solutions et solutions dégradées l interaction avec l’utilisateur PPC avec Explications JNPC 01 - N.J. - 06/01 - 5/12
  • 6. Exemple Recherche de solution PPC avec Explications JNPC 01 - N.J. - 06/01 - 6/12
  • 7. Caractéristiques du problème n Pas de description a priori des « dégradations » l on ne veut/peut pas penser à tout n Capacité de justifications l programmation : activité « artistique » l délicat de modifier du code sans expliquer pourquoi n Interaction forte avec l’utilisateur l description dynamique des dégradations n Une solution : utilisation de la ePPC PPC avec Explications JNPC 01 - N.J. - 06/01 - 7/12
  • 8. Le CSP résolu n Le CSP est déduit de deux informations l Le patron de conception – Les variables sont les classes actrices – Les contraintes les relations voulues entre les classes l Le code à analyser – Les domaines des variables sont les classes du logiciel – La sémantique des contraintes dérive des relations effectives entre les classes du logiciel PPC avec Explications JNPC 01 - N.J. - 06/01 - 8/12
  • 9. Exemple : contraintes n Le patron de conception n Les contraintes composite < component leaf < component composite ⊃ component PPC avec Explications JNPC 01 - N.J. - 06/01 - 9/12
  • 10. Exemple : résolution PPC avec Explications JNPC 01 - N.J. - 06/01 - 10/12
  • 11. Implémentation : le système PTIDEJ n Développé en PaLM n Bibliothèque de contraintes l héritage, création, composition, connaissance, … l méta-contraintes : écriture de nouvelles contraintes n Bibliothèque de patrons de conception l Composite, Facade, Mediator, AbstractFactory, Observer, Singleton, … n Expérimentations l Petits exemples de code l framework JHotDraw (~100 classes) l PTITDEJ lui-même !!! (en cours) PPC avec Explications JNPC 01 - N.J. - 06/01 - 11/12
  • 12. Conclusion et perspectives n Une application des explications l application de type débogage/aide à la décision et problèmes dynamiques n Perspectives à court terme l ajout de nouveaux patrons l ajout de nouvelles contraintes (globales) l autres tests n Perspectives à moyen/long terme l prise en compte d’informations à l’exécution l travail sur la sémantique des liens entre classes – certaines relations sont implicites PPC avec Explications JNPC 01 - N.J. - 06/01 - 12/12