SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Un méta-modèle pour coupler
application et détection
des design patterns

Hervé Albin-Amiot
Pierre Cointe
Yann-Gaël Guéhéneuc
{albin, cointe, guehene}@emn.fr
Soft-Maint S.A.,
France

École des Mines
de Nantes, France

Object Technology
International Inc., Canada
Plan
 Le

contexte
 Notre objectif
 Nos besoins
 Travaux connexes
 Notre solution : le méta-modèle PDL
 PDL : principe & mise en œuvre
 Questions ouvertes
2/17
Le contexte
Améliorer la qualité des développements
par objets en favorisant l’utilisation des
design patterns pour aider à :
– Implémenter
– Comprendre
– Documenter

3/17
Notre objectif
 Fournir

un assistant logiciel aidant à :

– L’implémentation
• Sélection
• Paramétrage
• Génération

Application

– La compréhension et la documentation :
détection de formes exactes

4/17
Nos besoins
 Formaliser

les design patterns
 Décrire les design patterns en tant que :
– Entités de « première classe »
• Elles savent comment produire du code
• Elles savent identifier leurs propres
occurrences dans du code

– Entités manipulables
• Sur lesquelles on peut raisonner
• Que l’on peut adapter à un contexte spécifique

– Entités avec « traces »
5/17
Travaux connexes
 Formalisation

:

– LePUS [Eden 2000]
– Fragment Model [Florjin et al. 1997]
 Application

– [Budinsky et al. 1996]
 Détection

– [Wuyts 1998], [Antoniol et al. 1998]
6/17
Notre solution :
le méta-modèle PDL

7/17
PDL : principe
Méta-modèle de patterns
Méta-entité
générique Pattern

Décrivent

Spécialisation

Méta-entité
Observer

Constituants

Raffinement




Méta-entité
Composite
Instanciation

Méta-entité
Proxy



Sélection

Modèle abstrait Composite
Paramétrage

Modèle concret Composite 1
build()

Code Composite 1

8/17





Modèle concret Composite 2
build()

Code Composite 2



Paramétrage
Modèle concret Composite n
build()



Code Composite n

Application
PDL : mise en œuvre
Description
Descriptions
informelles du [GoF]

Traduction en un
modèle de pattern

Légende
Instance de Pattern
Instance de PInterface
Instance de PClass
Instance de PAssoc
Instance de PDelegation

9/17

name() Instance de PMethod
PDL : mise en œuvre
Application
Component

components

paint( )

Button
paint()

*

Label
paint( )

Window
paint( )
addComponent(Component)
removeComponent(Component)
listComponent( )

Paramétrage

Génération
10/17

Code source
Java, Claire
PDL : mise en œuvre
Détection
Design pattern
détecté ?

Comparaison
(arc consistance + algorithmes dédiés)

Reconstruction
Code source Java
11/17
Quelques résultats expérimentaux
 Application

– Ptidej
 Détection

sur plusieurs frameworks :

– java.awt.*
– JHotDraw
– JUnit
– PatternsBox
– Ptidej
12/17
Détection

Détection dans PatternsBox
Design
patterns

Frameworks NOC Existing

Hits Missed False hits

Time
(sec.)

java.awt.*
JHotDraw
Composite
JUnit
JEdit
PatternsBox

121

1

1

1

155

1

1

0,3

34

1

1

0,4

0,3

121

0,2

155

1

3

JUnit

34

1

1

JEdit

248

0,4

PatternsBox

52

0,3

java.aw t.*

121

3

JHotDraw

155

2

JUnit

34

JEdit

248

0,1

PatternsBox

52

0,2

java.aw t.*

121

JHotDraw

Iterator

52

JHotDraw

Factory
Method

1,4

java.aw t.*

Decorator

248

155

2

0,4
0,2

1,1
2

1

1

0,5

3

3

0,1

1

1

0,1

248

PatternsBox

52

java.aw t.*

121

JHotDraw

155

2

2

3,2

JUnit

34

4

4

2,5

JEdit

248

3

3

13

PatternsBox

52

1

1

2,8

java.aw t.*

121

3

3

0,7

JHotDraw

Singleton

34

JEdit

Observer

JUnit

155

2

2

0,5

3,4

34

JEdit

13/17

JUnit

248

0,4

PatternsBox

52

1

1

610

29

28

1
0,5

2

3

5,8
Réalisation de l’objectif
 Décrire,

appliquer et détecter les design

patterns
– Entités de première classe manipulables
 Nous

avons un assistant aidant :

– L’implémentation
– La détection et la documentation de formes
exactes de design patterns
(Cet assistant est « relativement » simple)
14/17
Questions ouvertes


Par rapport au contexte :
Améliorer la qualité des
développements par objets en
favorisant l’utilisation des design
patterns

15/17

1/3
Questions ouvertes
 Formalisation

2/3

:

– Un unique méta-modèle est-il suffisant ?
– Comment représenter les compromis ?
 Application

:

– Comment bien décrire le code source ?
– Est-ce qu’elle est toujours possible et
intéressante ?
16/17
Questions ouvertes
 Compréhension

3/3

:

– Est-il possible de détecter les formes
exactes de n’importe quel design pattern ?
– Est-il possible de détecter les formes
approchées de n’importe quel design
pattern ?

17/17

Weitere ähnliche Inhalte

Andere mochten auch

Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdfPtidej Team
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptPtidej Team
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in TheoryPtidej Team
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design PatternsPtidej Team
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesPtidej Team
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in PracticePtidej Team
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
Android Bonnees pratiques
Android Bonnees pratiques Android Bonnees pratiques
Android Bonnees pratiques Patrick Bashizi
 
Design Pattern
Design PatternDesign Pattern
Design Patternnewegg
 
Design Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesDesign Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesAlex Wilfried OUATTARA
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2Julie Iskander
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleDamien GOSSET
 

Andere mochten auch (20)

Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
Icsm07 tooldemo.pdf
Icsm07 tooldemo.pdfIcsm07 tooldemo.pdf
Icsm07 tooldemo.pdf
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
Ppap13a.ppt
Ppap13a.pptPpap13a.ppt
Ppap13a.ppt
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Mribp13.ppt
Mribp13.pptMribp13.ppt
Mribp13.ppt
 
Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.ppt
 
Software Design Patterns in Theory
Software Design Patterns in TheorySoftware Design Patterns in Theory
Software Design Patterns in Theory
 
Quality and Software Design Patterns
Quality and Software Design PatternsQuality and Software Design Patterns
Quality and Software Design Patterns
 
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future ChallengesAsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
 
Software Design Patterns in Practice
Software Design Patterns in PracticeSoftware Design Patterns in Practice
Software Design Patterns in Practice
 
Sibtel&Swift
Sibtel&SwiftSibtel&Swift
Sibtel&Swift
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
Android Bonnees pratiques
Android Bonnees pratiques Android Bonnees pratiques
Android Bonnees pratiques
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Cours1
Cours1Cours1
Cours1
 
Design Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesDesign Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiques
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2
 
Design pattern
Design patternDesign pattern
Design pattern
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'Apple
 

Ähnlich wie Jcom02.ppt

Projet COM02.ppt
Projet COM02.pptProjet COM02.ppt
Projet COM02.pptPtidej Team
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++Fabio Hernandez
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfJordaniMike
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfHervKoya
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity FrameworkEntity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity FrameworkMicrosoft
 

Ähnlich wie Jcom02.ppt (20)

Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 
Projet COM02.ppt
Projet COM02.pptProjet COM02.ppt
Projet COM02.ppt
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
LMO02.ppt
LMO02.pptLMO02.ppt
LMO02.ppt
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdf
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdf
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Mongo db with C#
Mongo db with C#Mongo db with C#
Mongo db with C#
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity FrameworkEntity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity Framework
 
Projet+gdralp+ocm03.ppt
Projet+gdralp+ocm03.pptProjet+gdralp+ocm03.ppt
Projet+gdralp+ocm03.ppt
 

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
 

Jcom02.ppt

  • 1. Un méta-modèle pour coupler application et détection des design patterns Hervé Albin-Amiot Pierre Cointe Yann-Gaël Guéhéneuc {albin, cointe, guehene}@emn.fr Soft-Maint S.A., France École des Mines de Nantes, France Object Technology International Inc., Canada
  • 2. Plan  Le contexte  Notre objectif  Nos besoins  Travaux connexes  Notre solution : le méta-modèle PDL  PDL : principe & mise en œuvre  Questions ouvertes 2/17
  • 3. Le contexte Améliorer la qualité des développements par objets en favorisant l’utilisation des design patterns pour aider à : – Implémenter – Comprendre – Documenter 3/17
  • 4. Notre objectif  Fournir un assistant logiciel aidant à : – L’implémentation • Sélection • Paramétrage • Génération Application – La compréhension et la documentation : détection de formes exactes 4/17
  • 5. Nos besoins  Formaliser les design patterns  Décrire les design patterns en tant que : – Entités de « première classe » • Elles savent comment produire du code • Elles savent identifier leurs propres occurrences dans du code – Entités manipulables • Sur lesquelles on peut raisonner • Que l’on peut adapter à un contexte spécifique – Entités avec « traces » 5/17
  • 6. Travaux connexes  Formalisation : – LePUS [Eden 2000] – Fragment Model [Florjin et al. 1997]  Application – [Budinsky et al. 1996]  Détection – [Wuyts 1998], [Antoniol et al. 1998] 6/17
  • 7. Notre solution : le méta-modèle PDL 7/17
  • 8. PDL : principe Méta-modèle de patterns Méta-entité générique Pattern Décrivent Spécialisation Méta-entité Observer Constituants Raffinement   Méta-entité Composite Instanciation Méta-entité Proxy  Sélection Modèle abstrait Composite Paramétrage Modèle concret Composite 1 build() Code Composite 1 8/17   Modèle concret Composite 2 build() Code Composite 2  Paramétrage Modèle concret Composite n build()  Code Composite n Application
  • 9. PDL : mise en œuvre Description Descriptions informelles du [GoF] Traduction en un modèle de pattern Légende Instance de Pattern Instance de PInterface Instance de PClass Instance de PAssoc Instance de PDelegation 9/17 name() Instance de PMethod
  • 10. PDL : mise en œuvre Application Component components paint( ) Button paint() * Label paint( ) Window paint( ) addComponent(Component) removeComponent(Component) listComponent( ) Paramétrage Génération 10/17 Code source Java, Claire
  • 11. PDL : mise en œuvre Détection Design pattern détecté ? Comparaison (arc consistance + algorithmes dédiés) Reconstruction Code source Java 11/17
  • 12. Quelques résultats expérimentaux  Application – Ptidej  Détection sur plusieurs frameworks : – java.awt.* – JHotDraw – JUnit – PatternsBox – Ptidej 12/17
  • 13. Détection Détection dans PatternsBox Design patterns Frameworks NOC Existing Hits Missed False hits Time (sec.) java.awt.* JHotDraw Composite JUnit JEdit PatternsBox 121 1 1 1 155 1 1 0,3 34 1 1 0,4 0,3 121 0,2 155 1 3 JUnit 34 1 1 JEdit 248 0,4 PatternsBox 52 0,3 java.aw t.* 121 3 JHotDraw 155 2 JUnit 34 JEdit 248 0,1 PatternsBox 52 0,2 java.aw t.* 121 JHotDraw Iterator 52 JHotDraw Factory Method 1,4 java.aw t.* Decorator 248 155 2 0,4 0,2 1,1 2 1 1 0,5 3 3 0,1 1 1 0,1 248 PatternsBox 52 java.aw t.* 121 JHotDraw 155 2 2 3,2 JUnit 34 4 4 2,5 JEdit 248 3 3 13 PatternsBox 52 1 1 2,8 java.aw t.* 121 3 3 0,7 JHotDraw Singleton 34 JEdit Observer JUnit 155 2 2 0,5 3,4 34 JEdit 13/17 JUnit 248 0,4 PatternsBox 52 1 1 610 29 28 1 0,5 2 3 5,8
  • 14. Réalisation de l’objectif  Décrire, appliquer et détecter les design patterns – Entités de première classe manipulables  Nous avons un assistant aidant : – L’implémentation – La détection et la documentation de formes exactes de design patterns (Cet assistant est « relativement » simple) 14/17
  • 15. Questions ouvertes  Par rapport au contexte : Améliorer la qualité des développements par objets en favorisant l’utilisation des design patterns 15/17 1/3
  • 16. Questions ouvertes  Formalisation 2/3 : – Un unique méta-modèle est-il suffisant ? – Comment représenter les compromis ?  Application : – Comment bien décrire le code source ? – Est-ce qu’elle est toujours possible et intéressante ? 16/17
  • 17. Questions ouvertes  Compréhension 3/3 : – Est-il possible de détecter les formes exactes de n’importe quel design pattern ? – Est-il possible de détecter les formes approchées de n’importe quel design pattern ? 17/17