Gestion des patrons de conception

45
Les environnements de gestion automatises des patron de conception Etude du syst eme PTIDEJ FERRAND Anthony NELAUPE Lucas TRAN Quang Dung VERDIER Fr ederic Universit e Montpellier II 17 septembre 2014 1/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Fr Gestion des patrons de conception 17 septembre 2014 1/

description

Diaporama sur les outils de gestion des patrons de conception More info : http://www.lucas-nelaupe.fr/

Transcript of Gestion des patrons de conception

Page 1: Gestion des patrons de conception

Les environnements de gestion automatises des patronsde conception

Etude du systeme PTIDEJ

FERRAND Anthony NELAUPE LucasTRAN Quang Dung VERDIER Frederic

Universite Montpellier II

17 septembre 2014

1/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 1 / 45

Page 2: Gestion des patrons de conception

Introduction

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

2/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 2 / 45

Page 3: Gestion des patrons de conception

Introduction

Introduction

Patron de conception :

Design patterns are descriptions of communicating objects andclasses that are customized to solve a general design problem in aparticular context.

[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gang of Four),Design Patterns : Elements of Reusable Object-Oriented Softwares,1994]

Bref historique

Invention de la notion de patrons de conception dans le domaine del’Architecture [Christopher Alexander, Sara Ishikawa, Murray Silverstein, APattern Language : Towns, Buildings, Construction, 1977]Premier papier de recherche a propos de l’utilisation de patrons de conceptionen langage oriente objets [Kent Beck, Ward Cunningham, Using PatternLanguages for Object-Oriented Programs, 1987]

3/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 3 / 45

Page 4: Gestion des patrons de conception

Introduction Problematique

Figure: Diagramme UML d’un programme

4/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 4 / 45

Page 5: Gestion des patrons de conception

Introduction Problematique

Figure: Diagramme UML d’un programme incluant le pattern State

5/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 5 / 45

Page 6: Gestion des patrons de conception

Introduction Problematique

Notre problematique

Chercher des solutions existantes pour gerer les patrons de conceptions.

Detection des patrons de conceptions dans un programme.

Generation de code squelette des patrons de conceptions.

6/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 6 / 45

Page 7: Gestion des patrons de conception

Introduction Problematique

Solutions logicielles existantes

Rational Software Architect[RSA] (IBM) et Modelio (Modeliosoft)

Genere le code et les diagrammes de classes UML issus de patrons deconceptions.

Le logiciel PTIDEJ

Solution efficace pour la detection des patrons de conceptions dans unprogramme.Mis a notre disposition.

7/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 7 / 45

Page 8: Gestion des patrons de conception

Introduction Problematique

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

8/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 8 / 45

Page 9: Gestion des patrons de conception

Etat de l’art

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

9/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 9 / 45

Page 10: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Mesure de la qualite d’un patrons

Definitions :

Qualite d’un programme : Appreciation globale d’un programme.Critere de qualite : Caracteristique liee a la qualite que l’on peut donner a unprogramme.

Enjeux :

Connaıtre les impacts de l’utilisation d’un patron permet de definir unestrategie de developpement.Anticiper les limitations d’un programme lors de sa conception.

10/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 10 / 45

Page 11: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Exemples de criteres de qualite

Conception

ExtensibiliteSimplicite (Comprendre le patron implemente)Reutilisabilite (Possibilite de l’inclure dans un autre patron)

Implementation

Comprendre le code sourceModularite (fonctions independantes)

Execution

Fonctions d’executions independantesPortabilite (utilisable sur plusieurs configurations de machines)Robustesse

11/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 11 / 45

Page 12: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Mesure de la qualite d’un patron

Plusieurs approches possibles

Par sondage des developpeurs (qualitative) [Foutse Khomh, Patterns andquality of Object-oriented Software Systems, 2010]Utilisant des metriques (quantitative) [Carl G. Davis, Jagdish Bansiya - AHierarchical Model for Object-Oriented Design Quality Assessment, 2002]

12/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 12 / 45

Page 13: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Mesure de la qualite d’un patron : Methode par sondage

Figure: Extrait du sondage envoye aux inscrit sur la liste de diffusion du Gang of Four[Foutse Khomh, Patterns and quality of Object-oriented Software Systems, 2010]

13/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 13 / 45

Page 14: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Extrait du resultat du sondage precedent avec lacomparaison de trois patrons

Personnes ayantrepondu l’inverse

Impact negatif

Estimation de l’impact de ces trois patrons de conception sur des attributs de qualite[Foutse Khomh, Patterns and quality of Object-oriented Software Systems, 2010]

14/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 14 / 45

Page 15: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Etude du resultat du sondage avec Abstract Factory

Figure: Extrait du tableau de resultat du sondage et diagramme UML de A. Factory

15/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 15 / 45

Page 16: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Etude du resultat du sondage avec Poids-mouche

Figure: Extrait du tableau de resultat du sondage et diagramme UML de Poids-mouche

16/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 16 / 45

Page 17: Gestion des patrons de conception

Etat de l’art Mesure de la qualite d’un patron

Autre approche : utiliser des metriques

Figure: Calculs permettant l’evaluation finale de la qualite d’un programme en fonctiondes criteres de qualite. [Carl G. Davis, Jagdish Bansiya - A Hierarchical Model forObject-Oriented Design Quality Assessment, 2002]

17/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 17 / 45

Page 18: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Patrons de conception et les outils pour leur tracabilite

Tracabilite d’un patron de conception :Possibilite d’identifier dans un programme les elements correspondant a despatrons de conception, et de generer du code a partir de motifs de conception.

Enjeux : Aider un mainteneur a comprendre un programme.

18/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 18 / 45

Page 19: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Difficultes a surmonter

Les difficultes ne concernent que la detection des patrons de conception dans unprogramme. La generation de code n’est pas un probleme.

Il existe une infinite d’implementations possibles pour un patron deconception.

Certains programmes implementent des variantes plus ou moins eloignees duschema original.

Diagramme de classes de Composite (a gauche) et d’une variantes (a droite).

19/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 19 / 45

Page 20: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Techniques existantes

Nous avons trouve 19 techniques permettant l’identification de patrons deconception produites entre 1998 et 2009.

Par identification de restrictions [Marcel Birkner, Objected-oriented designpattern detection using static and dynamic analysis in java software,2007]

Utilisant des matrices de similitudes [Jakubık Jaroslav, Extension for DesignPattern Identification Using Similarity Scoring Algorithm, 2009]

...

20/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 20 / 45

Page 21: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Liste des techniques produites avant 2007 [Jing Dong, Yajing Zhao, Tu Peng,Architecture and Design Pattern Discovery Techniques - A Review]

21/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 21 / 45

Page 22: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Approche utilisant des matrices de similitudes

Solution decrite dans [N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, S.Halkidis, ”Design Pattern Detection Using Similarity Scoring”, IEEEtransaction on software engineering, Vol. 32, 2006] et etendue dans [JakubıkJaroslav, Extension for Design Pattern Identification Using SimilarityScoring Algorithm, 2009].

Solution :

Relever des caracteristiques d’architecture et d’execution du programme parclasse et les enregistrer dans des matrices, une pour chaque caracteristique.Pour chaque caracteristique, comparer la matrice obtenue par analyse duprogramme avec celle correspondant au patron de conception souhaitedonnant une matrice de similitude.

22/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 22 / 45

Page 23: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Extension de l’approche utilisant des matrices desimilitudes

Extension : Raffiner la detection par :

l’utilisation de poids pour donner de l’importance a certaines caracteristiquesanalysees dans un programme.analyse lexicographique du code (verification du sens d’un nom de classe...)

Point fort : detecte les variantes de patrons de conception car la detection estaxee plus sur le role des composants du programme plutot que l’architecturedu code.

Faiblesses : complexite et consommation memoire elevees

Utilisation X matrices MxN (ou X est le nombre de fonctionnalites, M lenombre de classes du programme et N le nombre de classes du patron).Analyse des similitudes combinatoire : il faut verifier la similitude de chaquecombinaison de classes possibles dans le programme.

23/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 23 / 45

Page 24: Gestion des patrons de conception

Etat de l’art Patrons de conception et les outils pour leur tracabilite

Approche utilisant la programmation par contraintes avecexplications

Solution decrite dans la these [Yann-Gael Gueheneuc, Un cadre pour latracabilite des motifs de conception, 2003].

Solution

Modelisation d’un patron par un ensemble de contraintes.Utilisation d’un solveur de contraintes sur le programme.L’ensemble des solutions correspond a des occurrences de patrons dans leprogramme.

Points forts :

Temps d’execution plus faible et detection de variantes proches.

Point faible : La detection de variantes trop eloignees necessite de creer unnouvel ensemble de contraintes.

24/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 24 / 45

Page 25: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

25/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 25 / 45

Page 26: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ

Focus sur le logiciel PTIDEJ

Logiciel developpe par Yann-Gael Gueheneuc dans sa these [Un cadre pourla tracabilite des motifs de conception, 2003].

Le systeme permet de :

Modeliser un programme sous forme d’un diagramme de classes UML.Evaluer la qualite d’un programme.Detecter les implementations de patrons de conception dans un programme.

26/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 26 / 45

Page 27: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Modelisation d’un programme par PTIDEJ

Modelisation d’un programme par PTIDEJ

Figure: Resultat de la modelisation d’une implementation ”jouet” du patron Bridge parPTIDEJ.

27/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 27 / 45

Page 28: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Modelisation d’un programme par PTIDEJ

PADL : meta-modele pour decrire un programme

Diagramme de classes UML simplifie de PADL [Yann-Gael Gueheneuc, Un cadre pour latracabilite des motifs de conception, 2003]

28/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 28 / 45

Page 29: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Mesure de la qualite d’un programme

Mesure de la qualite d’un programme

PTIDEJ utilise les metriques decrites dans l’Etat de l’Art pour evaluer la qualited’un programme.

Figure: Diagramme UML de l’implementation de Abstract Factory que nous avonsevalue.

29/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 29 / 45

Page 30: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Mesure de la qualite d’un programme

Resultats de l’evaluation de la qualite d’Abstract Factory

Entite \ Metrique Efficacite Extensibilite Flexibilite Fonctionnalite Reutilisabilite ComprehensibiliteAbstract Factory 0.4 0 0 4.08 7.25 -6.27Abstract Product 0.6 0.5 0.5 4.3 8 -5.61Concrete Factory 0.27 0.7 0 3.3 6.5 -4.95Concrete Product 0.3 -1.25 -1 3.3 5.5 -6.27

Moyenne 0.36 -0.1 -0.25 3.6 6.5 -5.72

Table: Tableau des resultats de l’evaluation de notre implementation

Postulats :

Chaque entite possede le meme impact sur la qualite du patron.Une entite indenombrable a le meme impact quelque soit le nombre de classesqu’elle represente.

Resultats :

Le plus gros point faible de ce patron est sa difficulte a etre compris.L’evaluation indique que le patron est peu extensible alors que c’est selon nousun de ses principaux atouts.

30/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 30 / 45

Page 31: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Detection d’un patron de conception

Detection d’un patron de conception

PTIDEJ detecte les patrons de conception dans un programme en utilisant laprogrammation par contraintes avec explications.

Les patrons de conception sont representes par un ensemble de contraintes.

Le solver de PTIDEJ est Ptidej Solver 4

Utilise en interne le solver de contraintes CHOCO [Laburthe, 2000 ; Laburtheet le projet OCRE (Outil Contraintes pour la Recherche et l’Enseignement),2000]Traduit des requetes exprimees en Java vers le langage de programmationCLAIRE (Combining Logical Assertions, Inheritance, Rules and Entities)[Caseau et Laburthe, 1994]

31/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 31 / 45

Page 32: Gestion des patrons de conception

Focus sur le logiciel PTIDEJ Detection d’un patron de conception

Des contraintes utilisees pour la detection

Contraintes sur la nature des entites

AbstractEntityConstraint

InterfaceEntityConstraint

NoGhostEntityConstraint

Contraintes sur les relations entre deux identites

StrictInheritanceConstraint

AssociationConstraint

AggregationConstraint

CompositionConstraint

NotEqualConstraint

32/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 32 / 45

Page 33: Gestion des patrons de conception

Notre contribution a PTIDEJ

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

33/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 33 / 45

Page 34: Gestion des patrons de conception

Notre contribution a PTIDEJ

Notre contribution a PTIDEJ

Nous avons donne a M. Yann-Gael Gueheneuc des retours qui ont permisd’ameliorer PTIDEJ.

Nous avons ajoute a PTIDEJ la detection des patrons de conception suivants,figurant dans le livre [Gang of Four, Design Patterns : Elements ofReusable Object-Oriented Softwares, 1994].

BridgeChainOfResponsabilityFacadeInterpreterMediator

34/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 34 / 45

Page 35: Gestion des patrons de conception

Notre contribution a PTIDEJ Le patron Bridge

Le patron Bridge

Figure: Diagramme UML du patron Bridge

35/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 35 / 45

Page 36: Gestion des patrons de conception

Notre contribution a PTIDEJ Creation du probleme et des entites

Creation du probleme et des entites

public final class BridgeMotif {

public static Problem getProblem(final List allEntities)

{

final Problem pb = new Problem(90, "Bridge Design

Motif", allEntities);

final Variable abstraction =

new Variable(pb, "Abstraction", true);

final Variable refinedAbstraction =

new Variable(pb, "RefinedAbstraction", false);

final Variable implementor =

new Variable(pb, "Implementor", true);

final Variable concreteImplementor =

new Variable(pb, "ConcreteImplementor", false);

// Ajout des contraintes

return pb;

}

}

36/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 36 / 45

Page 37: Gestion des patrons de conception

Notre contribution a PTIDEJ Contrainte de nature d’une entite

Contraintes de nature d’une entite

Interface

pb.post(new InterfaceEntityConstraint(

"Implementor <<interface>>", "",

implementor,

100,

DefaultNoApproximations

.getDefaultApproximations()));

37/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 37 / 45

Page 38: Gestion des patrons de conception

Notre contribution a PTIDEJ Contraintes de relation entre entites

Contraintes de relation entre entites

Heritage

pb.post(new StrictInheritanceConstraint(

"RefinedAbstraction -|>- Abstraction", "",

refinedAbstraction, abstraction,

50,

TSE07ExtensibleInheritanceOrNoneApproximations

.getDefaultApproximations()));

38/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 38 / 45

Page 39: Gestion des patrons de conception

Conclusion

Sommaire

1 IntroductionProblematique

2 Etat de l’artMesure de la qualite d’un patronPatrons de conception et les outils pour leur tracabilite

3 Focus sur le logiciel PTIDEJModelisation d’un programme par PTIDEJMesure de la qualite d’un programmeDetection d’un patron de conception

4 Notre contribution a PTIDEJLe patron BridgeCreation du probleme et des entitesContrainte de nature d’une entiteContraintes de relation entre entites

5 ConclusionCritiquesNos perspectives

39/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 39 / 45

Page 40: Gestion des patrons de conception

Conclusion

Conclusion

Utiliser des patrons de conception permet d’ameliorer la qualite d’unprogramme seulement sur certains criteres.

On peut mesurer la qualite d’un patron qualitativement ou quantitativement.

Aucune solution n’a ete trouvee pour detecter tous les patrons de conceptiondans un programme.

40/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 40 / 45

Page 41: Gestion des patrons de conception

Conclusion Critiques

Critiques

Critiques sur les approches analysees

Mesures de qualite potentiellement subjectives.Detection des patrons de conception efficace mais limitee.

Limitations de PTIDEJ

PADL ne permet pas de representer la genericite parametrique.Detection des variantes eloignees d’un meme patron impossible sans redefinirun nouvel ensemble de contraintes.

41/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 41 / 45

Page 42: Gestion des patrons de conception

Conclusion Nos perspectives

Nos perspectives

Par manque de temps, nous n’avons pas pu mais aurions voulu :

Ajouter un generateur de code a PTIDEJ.

Etendre les motifs implementes aux variantes proposees par l’heritagemultiple.

Ameliorer PTIDEJ afin detecter plus de patrons (exemple : le patronpoid-mouche)

Mettre a niveau PADL.Ajouter des contraintes.

42/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 42 / 45

Page 43: Gestion des patrons de conception

Conclusion Nos perspectives

Bibliographie

[1] Marcel Birkner. Objected-oriented design pattern detection using static and dynamic analysis in java software. 2007.

[2] Yann-Gael Gueheneuc Herve Albin-Amiot, Pierre Cointe. Un meta-modele pour coupler application et detection des design patterns. 2002.

[3] Carl G. Davis Jagdish Bansiya. A Hierarchical Model for Object-Oriented Design Quality Assessment. 2002.

[4] Jakubık Jaroslav. Extension for Design Pattern Identification Using Similarity Scoring Algorithm. 2009.

[5] Tu Peng Jing Dong, Yajing Zhao. Architecture and Design Pattern Discovery Techniques. 2007.

[6] Gueheneuc Yann-Gael Khashayar Khosravi. A Quality Model for Design Patterns. 2004.

[7] Foutse Khomh. Patterns and quality of Object-oriented Software Systems. 2010.

[8] Naouel Moha. Detection et correction des defauts dans les systemes orientes objet. 2007.

[9] G. Stephanides-S. Halkidis N. Tsantalis, A. Chatzigeorgiou. ”Design Pattern Detection Using Similarity Scoring”, IEEE transaction on softwareengineering, Vol. 32, 2006. 2009.

[10] Ralph Johnson John Vlissides The ”Gang of Four” : Erich Gamma, Richard Helm. Design Patterns : Elements of Reusable Object-Oriented Software.1994.

[11] Gueheneuc Yann-Gael. Un cadre pour la tracabilite des motifs de conception. 2003.

43/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 43 / 45

Page 44: Gestion des patrons de conception

Conclusion Nos perspectives

Sites web utiles

Site relatif aux travaux du Gang of Four :http://c2.com/cgi/wiki?GangOfFour

Site web de l’equipe developpant PTIDEJ : http://www.ptidej.net/

Projet OCRE :http://www.emn.fr/dept info/recherche/equipe/contraintes/ocre/public/Welcome.html

44/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 44 / 45

Page 45: Gestion des patrons de conception

Conclusion Nos perspectives

Merci,Nous allons maintenant faire une demonstration du logiciel PTIDEJ.

45/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERDIER Frederic (UM2)Gestion des patrons de conception 17 septembre 2014 45 / 45