SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Les environnements de gestion automatises des patrons 
de conception 
Etude du systeme PTIDEJ 
FERRAND Anthony NELAUPE Lucas 
TRAN Quang Dung VERDIER Frederic 
Universite Montpellier II 
17 septembre 2014 
1/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 1 /
Introduction 
Sommaire 
1 Introduction 
Problematique 
2 Etat de l'art 
Mesure de la qualite d'un patron 
Patrons de conception et les outils pour leur tracabilite 
3 Focus sur le logiciel PTIDEJ 
Modelisation d'un programme par PTIDEJ 
Mesure de la qualite d'un programme 
Detection d'un patron de conception 
4 Notre contribution a PTIDEJ 
Le patron Bridge 
Creation du probleme et des entites 
Contrainte de nature d'une entite 
Contraintes de relation entre entites 
5 Conclusion 
Critiques 
Nos perspectives 
2/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 2 /
Introduction 
Introduction 
Patron de conception : 
Design patterns are descriptions of communicating objects and 
classes that are customized to solve a general design problem in a 
particular 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 de 
l'Architecture [Christopher Alexander, Sara Ishikawa, Murray Silverstein, A 
Pattern Language : Towns, Buildings, Construction, 1977] 
Premier papier de recherche a propos de l'utilisation de patrons de conception 
en langage oriente objets [Kent Beck, Ward Cunningham, Using Pattern 
Languages for Object-Oriented Programs, 1987] 
3/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 3 /
Introduction Problematique 
Figure: Diagramme UML d'un programme 
4/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 4 /
Introduction Problematique 
Figure: Diagramme UML d'un programme incluant le pattern State 
5/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 5 /
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 6 /
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 de 
conceptions. 
Le logiciel PTIDEJ 
Solution ecace pour la detection des patrons de conceptions dans un 
programme. 
Mis a notre disposition. 
7/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 7 /
Introduction Problematique 
Sommaire 
1 Introduction 
Problematique 
2 Etat de l'art 
Mesure de la qualite d'un patron 
Patrons de conception et les outils pour leur tracabilite 
3 Focus sur le logiciel PTIDEJ 
Modelisation d'un programme par PTIDEJ 
Mesure de la qualite d'un programme 
Detection d'un patron de conception 
4 Notre contribution a PTIDEJ 
Le patron Bridge 
Creation du probleme et des entites 
Contrainte de nature d'une entite 
Contraintes de relation entre entites 
5 Conclusion 
Critiques 
Nos perspectives 
8/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 8 /
Etat de l'art 
Sommaire 
1 Introduction 
Problematique 
2 Etat de l'art 
Mesure de la qualite d'un patron 
Patrons de conception et les outils pour leur tracabilite 
3 Focus sur le logiciel PTIDEJ 
Modelisation d'un programme par PTIDEJ 
Mesure de la qualite d'un programme 
Detection d'un patron de conception 
4 Notre contribution a PTIDEJ 
Le patron Bridge 
Creation du probleme et des entites 
Contrainte de nature d'une entite 
Contraintes de relation entre entites 
5 Conclusion 
Critiques 
Nos perspectives 
9/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 9 /
Etat de l'art Mesure de la qualite d'un patron 
Mesure de la qualite d'un patrons 
De
nitions : 
Qualite d'un programme : Appreciation globale d'un programme. 
Critere de qualite : Caracteristique liee a la qualite que l'on peut donner a un 
programme. 
Enjeux : 
Conna^tre les impacts de l'utilisation d'un patron permet de de
nir une 
strategie de developpement. 
Anticiper les limitations d'un programme lors de sa conception. 
10/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 10
Etat de l'art Mesure de la qualite d'un patron 
Exemples de criteres de qualite 
Conception 
Extensibilite 
Simplicite (Comprendre le patron implemente) 
Reutilisabilite (Possibilite de l'inclure dans un autre patron) 
Implementation 
Comprendre le code source 
Modularite (fonctions independantes) 
Execution 
Fonctions d'executions independantes 
Portabilite (utilisable sur plusieurs con
gurations de machines) 
Robustesse 
11/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 11
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 and 
quality of Object-oriented Software Systems, 2010] 
Utilisant des metriques (quantitative) [Carl G. Davis, Jagdish Bansiya - A 
Hierarchical Model for Object-Oriented Design Quality Assessment, 2002] 
12/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 12
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 diusion du Gang of Four 
[Foutse Khomh, Patterns and quality of Object-oriented Software Systems, 2010] 
13/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 13
Etat de l'art Mesure de la qualite d'un patron 
Extrait du resultat du sondage precedent avec la 
comparaison de trois patrons 
Impact negatif 
Personnes ayant 
repondu l'inverse 
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 14
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 15
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 16
Etat de l'art Mesure de la qualite d'un patron 
Autre approche : utiliser des metriques 
Figure: Calculs permettant l'evaluation
nale de la qualite d'un programme en fonction 
des criteres de qualite. [Carl G. Davis, Jagdish Bansiya - A Hierarchical Model for 
Object-Oriented Design Quality Assessment, 2002] 
17/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 17
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'identi
er dans un programme les elements correspondant a des 
patrons 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 18
Etat de l'art Patrons de conception et les outils pour leur tracabilite 
Dicultes a surmonter 
Les dicultes ne concernent que la detection des patrons de conception dans un 
programme. La generation de code n'est pas un probleme. 
Il existe une in
nite d'implementations possibles pour un patron de 
conception. 
Certains programmes implementent des variantes plus ou moins eloignees du 
schema original. 
Diagramme de classes de Composite (a gauche) et d'une variantes (a droite). 
19/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 19
Etat de l'art Patrons de conception et les outils pour leur tracabilite 
Techniques existantes 
Nous avons trouve 19 techniques permettant l'identi
cation de patrons de 
conception produites entre 1998 et 2009. 
Par identi
cation de restrictions [Marcel Birkner, Objected-oriented design 
pattern detection using static and dynamic analysis in java software, 
2007] 
Utilisant des matrices de similitudes [Jakubk Jaroslav, Extension for Design 
Pattern Identi
cation Using Similarity Scoring Algorithm, 2009] 
... 
20/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 20
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 21
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, IEEE 
transaction on software engineering, Vol. 32, 2006] et etendue dans [Jakubk 
Jaroslav, Extension for Design Pattern Identi
cation Using Similarity 
Scoring Algorithm, 2009]. 
Solution : 
Relever des caracteristiques d'architecture et d'execution du programme par 
classe et les enregistrer dans des matrices, une pour chaque caracteristique. 
Pour chaque caracteristique, comparer la matrice obtenue par analyse du 
programme avec celle correspondant au patron de conception souhaite 
donnant une matrice de similitude. 
22/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 22
Etat de l'art Patrons de conception et les outils pour leur tracabilite 
Extension de l'approche utilisant des matrices de 
similitudes 
Extension : Raner la detection par : 
l'utilisation de poids pour donner de l'importance a certaines caracteristiques 
analysees dans un programme. 
analyse lexicographique du code (veri
cation du sens d'un nom de classe...) 
Point fort : detecte les variantes de patrons de conception car la detection est 
axee plus sur le r^ole des composants du programme plut^ot que l'architecture 
du code. 
Faiblesses : complexite et consommation memoire elevees 
Utilisation X matrices MxN (ou X est le nombre de fonctionnalites, M le 
nombre de classes du programme et N le nombre de classes du patron). 
Analyse des similitudes combinatoire : il faut veri
er la similitude de chaque 
combinaison de classes possibles dans le programme. 
23/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 23
Etat de l'art Patrons de conception et les outils pour leur tracabilite 
Approche utilisant la programmation par contraintes avec 
explications 
Solution decrite dans la these [Yann-Gael Gueheneuc, Un cadre pour la 
tracabilite 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 le 
programme. 
Points forts : 
Temps d'execution plus faible et detection de variantes proches. 
Point faible : La detection de variantes trop eloignees necessite de creer un 
nouvel ensemble de contraintes. 
24/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 24
Focus sur le logiciel PTIDEJ 
Sommaire 
1 Introduction 
Problematique 
2 Etat de l'art 
Mesure de la qualite d'un patron 
Patrons de conception et les outils pour leur tracabilite 
3 Focus sur le logiciel PTIDEJ 
Modelisation d'un programme par PTIDEJ 
Mesure de la qualite d'un programme 
Detection d'un patron de conception 
4 Notre contribution a PTIDEJ 
Le patron Bridge 
Creation du probleme et des entites 
Contrainte de nature d'une entite 
Contraintes de relation entre entites 
5 Conclusion 
Critiques 
Nos perspectives 
25/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 25
Focus sur le logiciel PTIDEJ 
Focus sur le logiciel PTIDEJ 
Logiciel developpe par Yann-Gael Gueheneuc dans sa these [Un cadre pour 
la 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 26
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 par 
PTIDEJ. 
27/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 27
Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ 
PADL : meta-modele pour decrire un programme 
Diagramme de classes UML simpli
e de PADL [Yann-Gael Gueheneuc, Un cadre pour la 
tracabilite des motifs de conception, 2003] 
28/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 28
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 qualite 
d'un programme. 
Figure: Diagramme UML de l'implementation de Abstract Factory que nous avons 
evalue. 
29/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 29
Focus sur le logiciel PTIDEJ Mesure de la qualite d'un programme 
Resultats de l'evaluation de la qualite d'Abstract Factory 
Entite n Metrique Ecacite Extensibilite Flexibilite Fonctionnalite Reutilisabilite Comprehensibilite 
Abstract Factory 0.4 0 0 4.08 7.25 -6.27 
Abstract Product 0.6 0.5 0.5 4.3 8 -5.61 
Concrete Factory 0.27 0.7 0 3.3 6.5 -4.95 
Concrete 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 m^eme impact sur la qualite du patron. 
Une entite indenombrable a le m^eme impact quelque soit le nombre de classes 
qu'elle represente. 
Resultats : 
Le plus gros point faible de ce patron est sa diculte a ^etre compris. 
L'evaluation indique que le patron est peu extensible alors que c'est selon nous 
un de ses principaux atouts. 
30/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 30
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 la 
programmation 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 ; Laburthe 
et le projet OCRE (Outil Contraintes pour la Recherche et l'Enseignement), 
2000] 
Traduit des requ^etes exprimees en Java vers le langage de programmation 
CLAIRE (Combining Logical Assertions, Inheritance, Rules and Entities) 
[Caseau et Laburthe, 1994] 
31/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 31
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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 32

Mais conteúdo relacionado

Destaque

Google apps mayo 2011
Google apps mayo 2011Google apps mayo 2011
Google apps mayo 2011Liz Pagan
 
04 presentation-composition d-instructions
04 presentation-composition d-instructions04 presentation-composition d-instructions
04 presentation-composition d-instructionsfschoubben
 
Présentation Business Documents pour Sage CRM - Partenaires Sage
Présentation Business Documents pour Sage CRM - Partenaires SagePrésentation Business Documents pour Sage CRM - Partenaires Sage
Présentation Business Documents pour Sage CRM - Partenaires SageFred Canevet
 
Portafolio Gaventerprise Consulting 2009 PowerPoint
Portafolio Gaventerprise Consulting 2009 PowerPointPortafolio Gaventerprise Consulting 2009 PowerPoint
Portafolio Gaventerprise Consulting 2009 PowerPointLuis Gaviria
 
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...Présentation au CNRS à propos de rédaction web et optimisation des contenus p...
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...Yellow Dolphins
 
Anecdotes
AnecdotesAnecdotes
Anecdoteslyago
 
Busqueda de informacion industrias pecuarias agosto 2013
Busqueda de informacion industrias pecuarias agosto 2013Busqueda de informacion industrias pecuarias agosto 2013
Busqueda de informacion industrias pecuarias agosto 2013Liz Pagan
 
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de MonterreyJuan Carlos Lucas
 
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014Intervention à l'INSEEC pour le Digital Innovation Challenge #2014
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014Cédric MONTET
 
Relatos de poder
Relatos de poderRelatos de poder
Relatos de poderEuler
 
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...Manuel Mujica
 
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...Chèque Santé
 
Présentation B.A. Fiduciaire
Présentation B.A.  FiduciairePrésentation B.A.  Fiduciaire
Présentation B.A. FiduciaireRomain Hilger
 
Configuración de la Audiencia
Configuración de la AudienciaConfiguración de la Audiencia
Configuración de la AudienciaRonny Isuiz
 
Los números 0-31
Los números 0-31Los números 0-31
Los números 0-31Seema Sumod
 

Destaque (20)

Google apps mayo 2011
Google apps mayo 2011Google apps mayo 2011
Google apps mayo 2011
 
04 presentation-composition d-instructions
04 presentation-composition d-instructions04 presentation-composition d-instructions
04 presentation-composition d-instructions
 
Competitividad TICs en Mexico
Competitividad TICs en MexicoCompetitividad TICs en Mexico
Competitividad TICs en Mexico
 
Présentation Business Documents pour Sage CRM - Partenaires Sage
Présentation Business Documents pour Sage CRM - Partenaires SagePrésentation Business Documents pour Sage CRM - Partenaires Sage
Présentation Business Documents pour Sage CRM - Partenaires Sage
 
Portafolio Gaventerprise Consulting 2009 PowerPoint
Portafolio Gaventerprise Consulting 2009 PowerPointPortafolio Gaventerprise Consulting 2009 PowerPoint
Portafolio Gaventerprise Consulting 2009 PowerPoint
 
Tetik'asa iDin - Initiative! Madagascar 3.0
Tetik'asa iDin - Initiative! Madagascar 3.0Tetik'asa iDin - Initiative! Madagascar 3.0
Tetik'asa iDin - Initiative! Madagascar 3.0
 
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...Présentation au CNRS à propos de rédaction web et optimisation des contenus p...
Présentation au CNRS à propos de rédaction web et optimisation des contenus p...
 
Certificates
CertificatesCertificates
Certificates
 
Anecdotes
AnecdotesAnecdotes
Anecdotes
 
Busqueda de informacion industrias pecuarias agosto 2013
Busqueda de informacion industrias pecuarias agosto 2013Busqueda de informacion industrias pecuarias agosto 2013
Busqueda de informacion industrias pecuarias agosto 2013
 
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey
"Proyecto Hacer Historia" Diplomado Universitario con el TEC de Monterrey
 
JV50 FINANCE - TAX SHIFT
JV50 FINANCE - TAX SHIFTJV50 FINANCE - TAX SHIFT
JV50 FINANCE - TAX SHIFT
 
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014Intervention à l'INSEEC pour le Digital Innovation Challenge #2014
Intervention à l'INSEEC pour le Digital Innovation Challenge #2014
 
Relatos de poder
Relatos de poderRelatos de poder
Relatos de poder
 
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...
INICIATIVAS Y REALIDADES DE LA EDUCACIÓN A DISTANCIA EN LA INGENIERÍA ELECTRÓ...
 
Otoño
OtoñoOtoño
Otoño
 
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...
Tout le monde a un jour besoin d’un soutien psychologique Le Chèque Santé® ...
 
Présentation B.A. Fiduciaire
Présentation B.A.  FiduciairePrésentation B.A.  Fiduciaire
Présentation B.A. Fiduciaire
 
Configuración de la Audiencia
Configuración de la AudienciaConfiguración de la Audiencia
Configuración de la Audiencia
 
Los números 0-31
Los números 0-31Los números 0-31
Los números 0-31
 

Semelhante a Gestion des patrons de conception

cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdfNihedBahria2
 
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)Elapse Technologies
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
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
 
Master_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfMaster_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfBchiriAmina1
 
presentation Ganttproject (TIC et orga)
presentation Ganttproject (TIC et orga)presentation Ganttproject (TIC et orga)
presentation Ganttproject (TIC et orga)Romand
 
Meetup Unity3D Lyon -12/07/218 - Data Driven Development
Meetup Unity3D Lyon -12/07/218 - Data Driven DevelopmentMeetup Unity3D Lyon -12/07/218 - Data Driven Development
Meetup Unity3D Lyon -12/07/218 - Data Driven DevelopmentAlex Frêne
 
L'équipe de développement
L'équipe de développementL'équipe de développement
L'équipe de développementBachir Benyammi
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 

Semelhante a Gestion des patrons de conception (20)

cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdf
 
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
 
040423+seminar+info+uqam.ppt
040423+seminar+info+uqam.ppt040423+seminar+info+uqam.ppt
040423+seminar+info+uqam.ppt
 
030225+seminar+gelo+diro.ppt
030225+seminar+gelo+diro.ppt030225+seminar+gelo+diro.ppt
030225+seminar+gelo+diro.ppt
 
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)
Propulsez votre architectures grâce au TDD et aux Mocks (Agile Montréal 2014)
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
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
 
output
outputoutput
output
 
Master_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfMaster_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdf
 
Projet+gdralp+ocm03.ppt
Projet+gdralp+ocm03.pptProjet+gdralp+ocm03.ppt
Projet+gdralp+ocm03.ppt
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
presentation Ganttproject (TIC et orga)
presentation Ganttproject (TIC et orga)presentation Ganttproject (TIC et orga)
presentation Ganttproject (TIC et orga)
 
Meetup Unity3D Lyon -12/07/218 - Data Driven Development
Meetup Unity3D Lyon -12/07/218 - Data Driven DevelopmentMeetup Unity3D Lyon -12/07/218 - Data Driven Development
Meetup Unity3D Lyon -12/07/218 - Data Driven Development
 
Method XP
Method XP Method XP
Method XP
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
L'équipe de développement
L'équipe de développementL'équipe de développement
L'équipe de développement
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 

Gestion des patrons de conception

  • 1. Les environnements de gestion automatises des patrons de conception Etude du systeme PTIDEJ FERRAND Anthony NELAUPE Lucas TRAN Quang Dung VERDIER Frederic Universite Montpellier II 17 septembre 2014 1/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 1 /
  • 2. Introduction Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 2/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 2 /
  • 3. Introduction Introduction Patron de conception : Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular 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 de l'Architecture [Christopher Alexander, Sara Ishikawa, Murray Silverstein, A Pattern Language : Towns, Buildings, Construction, 1977] Premier papier de recherche a propos de l'utilisation de patrons de conception en langage oriente objets [Kent Beck, Ward Cunningham, Using Pattern Languages for Object-Oriented Programs, 1987] 3/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 3 /
  • 4. Introduction Problematique Figure: Diagramme UML d'un programme 4/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 4 /
  • 5. Introduction Problematique Figure: Diagramme UML d'un programme incluant le pattern State 5/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 5 /
  • 6. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 6 /
  • 7. 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 de conceptions. Le logiciel PTIDEJ Solution ecace pour la detection des patrons de conceptions dans un programme. Mis a notre disposition. 7/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 7 /
  • 8. Introduction Problematique Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 8/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 8 /
  • 9. Etat de l'art Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 9/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 9 /
  • 10. Etat de l'art Mesure de la qualite d'un patron Mesure de la qualite d'un patrons De
  • 11. nitions : Qualite d'un programme : Appreciation globale d'un programme. Critere de qualite : Caracteristique liee a la qualite que l'on peut donner a un programme. Enjeux : Conna^tre les impacts de l'utilisation d'un patron permet de de
  • 12. nir une strategie de developpement. Anticiper les limitations d'un programme lors de sa conception. 10/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 10
  • 13. Etat de l'art Mesure de la qualite d'un patron Exemples de criteres de qualite Conception Extensibilite Simplicite (Comprendre le patron implemente) Reutilisabilite (Possibilite de l'inclure dans un autre patron) Implementation Comprendre le code source Modularite (fonctions independantes) Execution Fonctions d'executions independantes Portabilite (utilisable sur plusieurs con
  • 14. gurations de machines) Robustesse 11/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 11
  • 15. 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 and quality of Object-oriented Software Systems, 2010] Utilisant des metriques (quantitative) [Carl G. Davis, Jagdish Bansiya - A Hierarchical Model for Object-Oriented Design Quality Assessment, 2002] 12/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 12
  • 16. 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 diusion du Gang of Four [Foutse Khomh, Patterns and quality of Object-oriented Software Systems, 2010] 13/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 13
  • 17. Etat de l'art Mesure de la qualite d'un patron Extrait du resultat du sondage precedent avec la comparaison de trois patrons Impact negatif Personnes ayant repondu l'inverse 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 14
  • 18. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 15
  • 19. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 16
  • 20. Etat de l'art Mesure de la qualite d'un patron Autre approche : utiliser des metriques Figure: Calculs permettant l'evaluation
  • 21. nale de la qualite d'un programme en fonction des criteres de qualite. [Carl G. Davis, Jagdish Bansiya - A Hierarchical Model for Object-Oriented Design Quality Assessment, 2002] 17/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 17
  • 22. 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'identi
  • 23. er dans un programme les elements correspondant a des patrons 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 18
  • 24. Etat de l'art Patrons de conception et les outils pour leur tracabilite Dicultes a surmonter Les dicultes ne concernent que la detection des patrons de conception dans un programme. La generation de code n'est pas un probleme. Il existe une in
  • 25. nite d'implementations possibles pour un patron de conception. Certains programmes implementent des variantes plus ou moins eloignees du schema original. Diagramme de classes de Composite (a gauche) et d'une variantes (a droite). 19/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 19
  • 26. Etat de l'art Patrons de conception et les outils pour leur tracabilite Techniques existantes Nous avons trouve 19 techniques permettant l'identi
  • 27. cation de patrons de conception produites entre 1998 et 2009. Par identi
  • 28. cation de restrictions [Marcel Birkner, Objected-oriented design pattern detection using static and dynamic analysis in java software, 2007] Utilisant des matrices de similitudes [Jakubk Jaroslav, Extension for Design Pattern Identi
  • 29. cation Using Similarity Scoring Algorithm, 2009] ... 20/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 20
  • 30. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 21
  • 31. 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, IEEE transaction on software engineering, Vol. 32, 2006] et etendue dans [Jakubk Jaroslav, Extension for Design Pattern Identi
  • 32. cation Using Similarity Scoring Algorithm, 2009]. Solution : Relever des caracteristiques d'architecture et d'execution du programme par classe et les enregistrer dans des matrices, une pour chaque caracteristique. Pour chaque caracteristique, comparer la matrice obtenue par analyse du programme avec celle correspondant au patron de conception souhaite donnant une matrice de similitude. 22/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 22
  • 33. Etat de l'art Patrons de conception et les outils pour leur tracabilite Extension de l'approche utilisant des matrices de similitudes Extension : Raner la detection par : l'utilisation de poids pour donner de l'importance a certaines caracteristiques analysees dans un programme. analyse lexicographique du code (veri
  • 34. cation du sens d'un nom de classe...) Point fort : detecte les variantes de patrons de conception car la detection est axee plus sur le r^ole des composants du programme plut^ot que l'architecture du code. Faiblesses : complexite et consommation memoire elevees Utilisation X matrices MxN (ou X est le nombre de fonctionnalites, M le nombre de classes du programme et N le nombre de classes du patron). Analyse des similitudes combinatoire : il faut veri
  • 35. er la similitude de chaque combinaison de classes possibles dans le programme. 23/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 23
  • 36. Etat de l'art Patrons de conception et les outils pour leur tracabilite Approche utilisant la programmation par contraintes avec explications Solution decrite dans la these [Yann-Gael Gueheneuc, Un cadre pour la tracabilite 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 le programme. Points forts : Temps d'execution plus faible et detection de variantes proches. Point faible : La detection de variantes trop eloignees necessite de creer un nouvel ensemble de contraintes. 24/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 24
  • 37. Focus sur le logiciel PTIDEJ Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 25/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 25
  • 38. Focus sur le logiciel PTIDEJ Focus sur le logiciel PTIDEJ Logiciel developpe par Yann-Gael Gueheneuc dans sa these [Un cadre pour la 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 26
  • 39. 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 par PTIDEJ. 27/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 27
  • 40. Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ PADL : meta-modele pour decrire un programme Diagramme de classes UML simpli
  • 41. e de PADL [Yann-Gael Gueheneuc, Un cadre pour la tracabilite des motifs de conception, 2003] 28/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 28
  • 42. 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 qualite d'un programme. Figure: Diagramme UML de l'implementation de Abstract Factory que nous avons evalue. 29/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 29
  • 43. Focus sur le logiciel PTIDEJ Mesure de la qualite d'un programme Resultats de l'evaluation de la qualite d'Abstract Factory Entite n Metrique Ecacite Extensibilite Flexibilite Fonctionnalite Reutilisabilite Comprehensibilite Abstract Factory 0.4 0 0 4.08 7.25 -6.27 Abstract Product 0.6 0.5 0.5 4.3 8 -5.61 Concrete Factory 0.27 0.7 0 3.3 6.5 -4.95 Concrete 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 m^eme impact sur la qualite du patron. Une entite indenombrable a le m^eme impact quelque soit le nombre de classes qu'elle represente. Resultats : Le plus gros point faible de ce patron est sa diculte a ^etre compris. L'evaluation indique que le patron est peu extensible alors que c'est selon nous un de ses principaux atouts. 30/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 30
  • 44. 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 la programmation 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 ; Laburthe et le projet OCRE (Outil Contraintes pour la Recherche et l'Enseignement), 2000] Traduit des requ^etes exprimees en Java vers le langage de programmation CLAIRE (Combining Logical Assertions, Inheritance, Rules and Entities) [Caseau et Laburthe, 1994] 31/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 31
  • 45. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 32
  • 46. Notre contribution a PTIDEJ Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 33/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 33
  • 47. Notre contribution a PTIDEJ Notre contribution a PTIDEJ Nous avons donne a M. Yann-Gael Gueheneuc des retours qui ont permis d'ameliorer PTIDEJ. Nous avons ajoute a PTIDEJ la detection des patrons de conception suivants,
  • 48. gurant dans le livre [Gang of Four, Design Patterns : Elements of Reusable Object-Oriented Softwares, 1994]. Bridge ChainOfResponsability Facade Interpreter Mediator 34/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 34
  • 49. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 35
  • 50. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 36
  • 51. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 37
  • 52. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 38
  • 53. Conclusion Sommaire 1 Introduction Problematique 2 Etat de l'art Mesure de la qualite d'un patron Patrons de conception et les outils pour leur tracabilite 3 Focus sur le logiciel PTIDEJ Modelisation d'un programme par PTIDEJ Mesure de la qualite d'un programme Detection d'un patron de conception 4 Notre contribution a PTIDEJ Le patron Bridge Creation du probleme et des entites Contrainte de nature d'une entite Contraintes de relation entre entites 5 Conclusion Critiques Nos perspectives 39/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 39
  • 54. Conclusion Conclusion Utiliser des patrons de conception permet d'ameliorer la qualite d'un programme 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 conception dans un programme. 40/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 40
  • 55. Conclusion Critiques Critiques Critiques sur les approches analysees Mesures de qualite potentiellement subjectives. Detection des patrons de conception ecace mais limitee. Limitations de PTIDEJ PADL ne permet pas de representer la genericite parametrique. Detection des variantes eloignees d'un m^eme patron impossible sans rede
  • 56. nir un nouvel ensemble de contraintes. 41/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 41
  • 57. 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'heritage multiple. Ameliorer PTIDEJ a
  • 58. n detecter plus de patrons (exemple : le patron poid-mouche) Mettre a niveau PADL. Ajouter des contraintes. 42/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 42
  • 59. 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] Jakubk Jaroslav. Extension for Design Pattern Identi
  • 60. cation 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 software engineering, 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 43
  • 61. 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, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 44
  • 62. Conclusion Nos perspectives Merci, Nous allons maintenant faire une demonstration du logiciel PTIDEJ. 45/45 FERRAND Anthony, NELAUPE Lucas TRAN Quang Dung, VERGDesItEioRnFdreesdepraictro(nUsMd2e)conception 17 septembre 2014 45