Introduction       Méthodologie        Taxonomie (1-2)           Métamodélisation (3)            Modélisation et validatio...
Introduction         Méthodologie      Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction       Méthodologie        Taxonomie (1-2)         Métamodélisation (3)    Modélisation et validation (4-5)   ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction       Méthodologie        Taxonomie (1-2)          Métamodélisation (3)            Modélisation et validation...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction         Méthodologie         Taxonomie (1-2)     Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)            Modélisation et validation (...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)           Modélisation et validation (4...
Introduction       Méthodologie               Taxonomie (1-2)                    Métamodélisation (3)                     ...
Introduction       Méthodologie                      Taxonomie (1-2)                                       Métamodélisatio...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction       Méthodologie                   Taxonomie (1-2)             Métamodélisation (3)             Modélisatio...
Introduction               Méthodologie             Taxonomie (1-2)          Métamodélisation (3)                Modélisat...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)          Modélisation et validation (4-...
Introduction          Méthodologie            Taxonomie (1-2)                                   Métamodélisation (3)      ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction         Méthodologie      Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction       Méthodologie        Taxonomie (1-2)        Métamodélisation (3)     Modélisation et validation (4-5)   ...
Introduction        Méthodologie          Taxonomie (1-2)         Métamodélisation (3)          Modélisation et validation...
Prochain SlideShare
Chargement dans…5
×

LMO06.ppt

454 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

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

Aucune remarque pour cette diapositive

LMO06.ppt

  1. 1. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Une taxonomie et un métamodèle pour la détection des défauts de conception Naouel Moha – Duc-loc Huynh – Yann-Gaël Guéhéneuc GEODES – Groupe de recherche sur les systèmes ouverts et distribués et en génie logiciel expérimental Université de Montréal {mohanaou, huynhduc, guehene}@iro.umontreal.ca LMO 2006Moha et al. 1/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  2. 2. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Plan Objectifs de notre travail Modéliser les défauts de conception afin de pouvoir les détecter automatiquement dans le code. 1 Introduction 2 Méthodologie (5 phases) 3 Phases 1 et 2 : analyse et taxonomie 4 Phase 3 : métamodélisation 5 Phases 4 et 5 : modélisation et validation 6 ConclusionMoha et al. 2/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  3. 3. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les défauts de conception Défauts de conception vs. Patrons de conception “Mauvaises” solutions à des problèmes récurrents dans les architectures à objets Problèmes Pas de représentation précise et structurée Sous forme de descriptions textuelles sujettes à interprétation Difficile de les détecter précisément et efficacement Solution Représentation précise et structurée des défauts de conception basée sur un métamodèle à partir d’une taxonomie des défautsMoha et al. 3/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  4. 4. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Motivations Pourquoi détecter les défauts de conception ? Améliorer la qualité des architectures à objets Faciliter l’évolution Réduire les coûts de maintenance Pourquoi une taxonomie ? Confusion entre : défauts, anti-patrons, problèmes, mauvaises odeurs, anomalies, etc. Définir, comparer et classer les défauts Pourquoi un métamodèle ? Limite les ambiguïtés en structurant les concepts Facilite le développement d’algorithmes et d’outils Pourquoi une méthodologie ? Définir une démarche systématique à appliquer pour la représentation des défauts Peut être appliquée à d’autres spécificationsMoha et al. 4/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  5. 5. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 5/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  6. 6. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Blob DataClass4 D4_attr ControllerClass DataClass1 getD4_attr() D1_attr setD4_attr() C_attr1 : Data1 getD1_attr() C_attr2 : Data2 setD1_attr() C_attr3 C_attr4 C_attr5 ... m1(D : Data1) m2(D: Data2) DataClass2 m3() {... m1(this.C_attr1)...} D2_attr1 m4() {... m2(this.C_attr2)...} D2_attr2 m5() {...uses this.C_attr3...} getD2_attr1() DataClass5 m6(D : Data1) setD2_attr1() D5_attr m7(D : Data2) getD2_attr2() getD5_attr() . setD2_attr2() setD5_attr() . . . . . . DataClass3 m31() {...uses this.C_attr3...} D3_attr m32() {...m8()...} getD3_attr() m33() {...} setD3_attr() m34() {...} m35() {...}Moha et al. 6/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  7. 7. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases RULE_CARD : Blob { RULE : Blob {ASSOC: associated FROM: ControllerClass ONE TO: DataClass MANY } ; RULE : ControllerClass {INTER LargeClassLowCohesion ClassName } ; RULE : LargeClassLowCohesion {INTER LargeClass ClassLowCohesion } ; RULE : LargeClass {INTER (METRIC: NM, HIGH) (METRIC: NA, HIGH) } ; RULE : ClassLowCohesion {(METRIC: LCOM, HIGH) } ; RULE : ClassName {(SEMANTIC: CLASSNAME, {System, Subsystem, Manager, Driver, Controller}) } ; RULE : DataClass {INTER (STRUCT: METHOD, Accessor) (METRIC: LCOM, LOW) } ; } ; Phase 1 : analyse Description littéraire → SynthétiqueMoha et al. 7/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  8. 8. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 8/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  9. 9. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 9/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  10. 10. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 10/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  11. 11. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Phase 4 : modélisation Modèle obtenu pour le Blob Blob 1 Data Class Controller Class * 1 Method * * many many Accessor Field Field Method -get ( ) -set ( ) Cohesion Cohesion -high -lowMoha et al. 11/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  12. 12. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 12/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  13. 13. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Phases 1 et 2 : analyse et taxonomie Phase 1 : Analyse Extraction des concepts clefs Spécification des fiches de règles Phase 2 : Taxonomie Terminologie et classification Les défauts de patrons Les anti-patrons Les symptômes Carte des défautsMoha et al. 13/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  14. 14. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les défauts de patrons Terminologie Les défauts de patrons sont de mauvaises applications des solutions des patrons de conception [MOH 05c] Classification 2 types : 1 Les patrons déformés 2 Les patrons dégradés Basée sur la classification de Gamma et al. Degraded DesignPatternDefect Distorted Singleton Builder Creational FactoryMethod AbstractFactory Pattern Structural Prototype BehavioralMoha et al. 14/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  15. 15. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les anti-patrons [BRO 98] Terminologie “Mauvaises” solutions à des problèmes récurrents dans les architectures à objets, dont l’utilisation a des effets négatifs sur la qualité Blob Structural Inter-Class Behavioral Poltergeist Semantic Stovepipe DataVision AntiPattern LavaFlow TooMuchCode SpaghettiCode Structural SwissArmyKnife Functional Decomposition TinyService Intra-Class Behavioral Cut&Paste Programming MultiService SemanticMoha et al. 15/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  16. 16. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les symptômes ou mauvaises odeurs Terminologie Indicateurs de la présence possible de défauts Structures dans le code source qui suggèrent la possibilité d’une restructuration du code [FOW 99] Exemples : code dupliqué, larges classes & longues méthodes Message Chain Structural ShotgunSurgery Duplicated Code Inter-Class Behavioral Transient Associations Semantic BadSmell Comments Semantic Intra-Class Behavioral ShortDuration Dead Code Stateless Structural LongMethod Unjustified Code Divergent Change LargeClassMoha et al. DataClass 16/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  17. 17. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Carte des défauts de conception Relations entre les défauts de conception No Polymorphism Low Cohesion has have has No Inheritance Abstraction has LargeClass Signatures relates is Spaghetti is is Code Process Oriented has has Class & Global LargeInterface has Variables DeadCode is Blob LavaFlow SwissArmy linked SingleAction {TODO, To be Knife has replaced, In Flux} ShortDuration DataClass Complex Lack of Comments documentation is is does has Message Chain UnjustifiedCode Poltergeist hasMoha et al. 17/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  18. 18. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Phase 3 : Métamodélisation PADL (Pattern and Abstract-level Description Language) Décrit la structure des programmes OO et les patrons de conception [ALB 02] SADDL étend PADL (Software Architectural Defects Description Language) Décrit les défauts de conception SAD Légende AntiPatternsRepository ElemSADDL Élément du métamodèle SADDL ElemPADL Élément du métamodèle PADL 0..* related AntiPattern DesignPatternDefect 0..* BadSmell 0..* 0..* resemble 0..* Role contains 0..* Relationship 1..* 0..* targets Pattern declares related +compare(Pattern)() RootElement Abstraction -name -visibility 0..* 0..* related Observer Composite 0..* Cohesion 0..* Coupling 0..* Element 0..* Entity +attachTo(Element)() 0..1 inherit 0..* targetEntity 0..* Assoc Method 0..* Comment Field Parameter Class shouldimplement Interface has same 0..* name targetAssoc DelegatingMethod Accessor ClassVariable GlobalVariable 0..1 Signature Composition AgregationMoha et al. 18/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  19. 19. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Phases 4-5 : Modélisation et validation Modélisation Instancier des défauts de conception à partir de SADDL sous forme de modèles Quinzaine de défauts dont une dizaine d’anti-patrons Validation Modèles ↔ Fiches Corriger et enrichir le métamodèle Inférer les algorithmes de détectionMoha et al. 19/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  20. 20. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les défauts de patron Subject ConcreteSubject observers Observer -subjectState observers Observer +Attach(Observer)() +GetState() +Detach(Observer)() +SetState() +Notify()() +Attach(Observer)() +Detach(Observer)() +Notify()() ConcreteSubject subject ConcreteObserver su b je ct ConcreteObserver -subjectState -observerState +GetState() -observerState +Update() +SetState() +Update() (a) Patron Observer (b) Patron déformé F IG .: Le patron Observer et son patron déforméMoha et al. 20/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  21. 21. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les anti-patrons SwissArmyKnife Controller Class implements RULE_CARD : SwissArmyKnife { 1 RULE : SwissArmyKnife {AGGREG: associated FROM: Interface ONE TO: Signature MANY} ; many Interface RULE : Interface {IMPL: ControllerClass } ; Method RULE : ControllerClass {INTER LargeClassLowCohesion ClassName } ; RULE : LargeClassLowCohesion {INTER (METRIC: NM, HIGH) (METRIC: LCOM, HIGH)} ; implements RULE : ClassName {(SEMANTIC: CLASSNAME, {System, Subsystem, Manager, Driver, Cohesion Controller}) } ; many -low RULE : Signature {(METRIC: NM, HIGH) } ; Signature } ; (a) Modèle (b) Fiche de règles F IG .: Le couteau suisseMoha et al. 21/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  22. 22. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Les symptômes Shotgun Surgery Divergent Change 1 1 Class 1 Class Method 1 1..* 1..* 1..* Coupling Cohesion -high -low (a) Shotgun Surgery (b) Divergent Change F IG .: Les modèles du Shotgun Surgery et du Divergent ChangeMoha et al. 22/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  23. 23. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Méthodologie en 5 phases Description textuelle Extraction Défauts des concepts clefs de patrons 1 Analyse 2 Taxonomie Anti-patrons Mauvaises Définir Terminologie et odeurs Fiches de et classifier Classification RootElement règles Entity Element Intégrer (a )I Class Interface Method nt fier (d é gr )A e f fi r Métamodèle PADL Véri ne r 3 Métamodèlisation r et g re Inté (c ) co rr ig 5 Validation er (b) Instancier Modèles de défauts Métamodèle SADDL SAD Détection SwissArmyKnife Controllerconception de Class AntiPatternsRepository Inférer 4 Modélisation Algorithmes Interface AntiPattern Pattern DesignPatternDefect Method Abstraction RootElement Signature Cohesion -low BadSmell Entity ElementMoha et al. 23/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  24. 24. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Experimentations Objectif Montrer l’utilité de notre méthodologie et de son implémentation (métamodèle SADDL) Hypothèses Possibilité de spécifier un grand nombre de défauts de conception La précision de nos algos est raisonnable Objets 5 programmes open source entre 140 et 1200 classes. Traitement 4 anti-patrons : Blob, Functional decomposition, Swiss Army Knife, Spaghetti Code Implémentation des algorithmes de détection Validation manuelle : Précision vs. RappelMoha et al. 24/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  25. 25. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Détection des défauts de conception Blob ArgoUML Azureus GanttProject PMD QuickUML Total 113KLOC 192KLOC 21KLOC 42KLOC 9KLOC 1230c 1449c 188c 423c 142c Effectifs 91 143 19 15 3 271 70/91 82/143 10/19 3/15 1/3 166/271 Precisions = 76.9% = 57.3% = 52.6% = 20% = 33.3% 61.5% Swiss Army Knife ArgoUML Azureus GanttProject PMD QuickUML Total Effectifs 2 22 0 0 0 24 2/2 22/22 - - - 24/24 Precisions = 100% = 100% = -% = -% = -% = 100% Functional Decomposition ArgoUML Azureus GanttProject PMD QuickUML Total Effectifs 14 22 9 13 1 59 9/14 19/22 0 0 0 28/59 Precisions = 64.2% = 86.3% = 0% = 0% = 0% = 47.6% Spaghetti Code ArgoUML Azureus GanttProject PMD QuickUML Total Effectifs 26 35 8 11 1 81 21/26 29/35 6 6 0 62/81 Precisions = 80.7% = 82.8% = 75% = 54.5% = 0% = 76.6%Moha et al. 25/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  26. 26. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Conclusion Objectifs de notre travail Modéliser les défauts de conception afin de pouvoir les détecter automatiquement dans le code. Objectifs atteints Manque de travaux sur la spécification des défauts Nécessiter de représentations précises et structurées Une taxonomie et un métamodèle Fournir un cadre de développement de techniques et d’outils pour la détection des défauts À faire... Affiner la description des règles (règles comportementales) Augmenter notre base de défauts Améliorer la précision de nos algorithmes de détection Développer des techniques de correctionMoha et al. 26/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception
  27. 27. Introduction Méthodologie Taxonomie (1-2) Métamodélisation (3) Modélisation et validation (4-5) Conclusion Références ALB 02 ALBIN-AMIOT H., COINTE P., GUÉHÉNEUC Y.-G., Un méta-modèle pour coupler application et détection des design patterns, DAO M., HUCHARD M., Eds., actes du 8e colloque Langages et Modèles à Objets, vol. 8, numéro 1–2/2002 de RSTI L’objet, Hermès Science Publications, janvier 2002, p. 41–58. BRO 98 BROWN W. J., MALVEAU R. C., BROWN W. H., III H. W. M., MOWBRAY T. J., Anti Patterns : Refactoring Software, Architectures, and Projects in Crisis, John Wiley and Sons, 1st édition, March 1998. FOW 99 FOWLER M., Refactoring – Improving the Design of Existing Code, Addison- Wesley, 1st édition, June 1999. GUÉ 01 GUÉHÉNEUC Y.-G., ALBIN-AMIOT H., Using Design Patterns and Constraints to Automate the Detection and Correction of Inter-Class Design Defects, LI Q., RIEHLE R., POUR G., MEYER B., Eds., proceedings of the 39th conference on the Technology ˝ of Object-Oriented Languages and Systems, IEEE Computer Society Press, July 2001, p. 296U 305. GAM 94 GAMMA E., HELM R., JOHNSON R., VLISSIDES J., Design Patterns – Elements of Reusable Object-Oriented Software, Addison-Wesley, 1st édition, 1994. MOH 05c MOHA N., HUYNH D.-L., GUÉHÉNEUC Y.-G., A Taxonomy and a First Study of Design Pattern Defects, ANTONIOL G., GUÉHÉNEUC Y.-G., Eds., Proceedings of the STEP International Workshop on Design Pattern Theory and Practice (IWDPTP05), September 2005.Moha et al. 27/27LMO 2006, Une taxonomie et un métamodèle pour la détection des défauts de conception

×