SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
PPC avec Explications JNPC 01 - N.J. - 06/01 - 1/12
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 - 2/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 - 3/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 - 4/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 - 5/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 - 6/12
Exemple
Recherche de solution
PPC avec Explications JNPC 01 - N.J. - 06/01 - 7/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 - 8/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 - 9/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 - 10/12
Exemple : résolution
PPC avec Explications JNPC 01 - N.J. - 06/01 - 11/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 - 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

Contenu connexe

Plus de Yann-Gaël Guéhéneuc

On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
Yann-Gaël Guéhéneuc
 

Plus de Yann-Gaël Guéhéneuc (20)

An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 
Icsm19.ppt
Icsm19.pptIcsm19.ppt
Icsm19.ppt
 
Esem18.ppt
Esem18.pptEsem18.ppt
Esem18.ppt
 
Enase20.ppt
Enase20.pptEnase20.ppt
Enase20.ppt
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Cal19.ppt
Cal19.pptCal19.ppt
Cal19.ppt
 

Jnpc01.ppt

  • 1. PPC avec Explications JNPC 01 - N.J. - 06/01 - 1/12 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
  • 2. PPC avec Explications JNPC 01 - N.J. - 06/01 - 2/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
  • 3. PPC avec Explications JNPC 01 - N.J. - 06/01 - 3/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
  • 4. PPC avec Explications JNPC 01 - N.J. - 06/01 - 4/12 Un exemple : composite n Composition d’objets dans une structure arborescente pour un traitement uniforme des objets et des compositions
  • 5. PPC avec Explications JNPC 01 - N.J. - 06/01 - 5/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
  • 6. PPC avec Explications JNPC 01 - N.J. - 06/01 - 6/12 Exemple Recherche de solution
  • 7. PPC avec Explications JNPC 01 - N.J. - 06/01 - 7/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
  • 8. PPC avec Explications JNPC 01 - N.J. - 06/01 - 8/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
  • 9. PPC avec Explications JNPC 01 - N.J. - 06/01 - 9/12 Exemple : contraintes n Le patron de conception n Les contraintes composite < component leaf < component composite ⊃ component
  • 10. PPC avec Explications JNPC 01 - N.J. - 06/01 - 10/12 Exemple : résolution
  • 11. PPC avec Explications JNPC 01 - N.J. - 06/01 - 11/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)
  • 12. PPC avec Explications JNPC 01 - N.J. - 06/01 - 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