Patrons de conception et identification automatique
Responsables
Yann-Ga¨el Gu´eh´eneuc, local 2345, poste 6782,guehene@iro.umontreal.ca Naouel Moha, local 2355, poste 1805, mohanaou@iro.umontreal.ca
1 B´ en´ efices attendus
En choisissant ce projet, les ´etudiants approfondiront leur connaissance de la programmation orient´ee-objets et du langage de programmation Java.
Ils approfondiront ´egalement leur connaissance des patrons de conception, des techniques de r´etro-conception des programmes et de programmation par contraintes. De plus, ils apprendront `a utiliser l’environnementEclipse.
Ces connaissances apporteront aux ´etudiants un avantage ind´eniable sur le march´e du travail ou dans la poursuite de leurs ´etudes : les pa- trons de conception sont un sujet important dans la recherche et un gage de d´eveloppements de qualit´e dans l’industrie. De plus, Eclipse est deve- nue la plate-forme de d´eveloppement de r´ef´erence dans l’industrie (IBM WebSphere) et dans les milieux universitaires. La r´etro-conception est omni-pr´esente dans tout projet logiciel moderne et la programmation par contraintes est une technique tr`es r´epandue dans de nombreux domaines (aide `a la d´ecision, g´enie logiciel, finance. . .)
Du point de vue des responsables du projet, le travail r´ealis´e permettra de r´epondre rigoureusement `a la question des caract´eristiques de qualit´e des solutions des patrons de conception, de leur identification automatique et de leur impact sur la qualit´e des programmes `a objets.
1
2 Contexte
La qualit´e est un facteur essentiel de la p´erennit´e des programmes. Des programmes avec de bonnes caract´eristiques de qualit´e coˆutent moins cher car ils prennent moins de temps `a d´evelopper et sont plus faciles `a maintenir.
La maintenance repr´esentant maintenant 90% du coˆut des programmes, la qualit´e des programmes a un impact direct sur leur coˆut !
La qualit´e des programmes se mesure `a l’aide de m´etriques directes, telles la complexit´e cyclomatique, et de mod`eles pr´edictifs de qualit´e qui permettent d’interpr´eter les r´esultats des m´etriques directes pour donner une mesure indirecte de la qualit´e des programmes : stabilit´e, maintenabilit´e, extensibilit´e...
Depuis plusieurs ann´ee, la qualit´e des programmes a ´et´e grandement am´eliorer par l’introduction des patrons de conception [2]. Les patrons de conception d´ecrivent de bonnes solutions `a des probl`emes r´ecurrents de conception des programmes `a objets. Les solutions propos´ees par les pa- trons de conception sont reconnues comme ayant de bonne caract´eristiques de qualit´e.
3 Constat
Pourtant, `a ce jour et `a notre connaissance, aucune ´etude n’a pu prou- ver positivement l’impact des patrons de conception sur la qualit´e des pro- grammes `a objets. Au contraire, plusieurs ´etudes (par exemple [3]) ont montr´e qu’une utilisation abusive des patrons de conception d´egradait la maintenabilit´e des programmes.
De plus, il est reconnu que l’utilisation de patrons de conception d´egrade les m´etriques orient´ees-objets traditionnelles (par exemple Chidamber et Kemerer [1]) et qu’aucun mod`ele pr´edictif de qualit´e ne rend compte de la pr´esence des patrons de conception d’une mani`ere positive.
C’est pourquoi il est aujourd’hui important de caract´eriser clairement l’impact des patrons de conception sur la qualit´e des programmes `a objets.
4 Travail demand´ e
D’abord, le travail consiste `a analyser (possiblement un sous ensemble) des programmes Java :
– Gantt Project v1.10.2 (cf.ganttproject.sourceforge.net/) ; – HolubSQL v1.0 (cf. www.holub.com/software/holubSQL/) ;
2
– JSettlers v1.0.5 (cf. sourceforge.net/projects/jsettlers) ; – JTans v1.0 (cf.jtans.sourceforge.net/) ;
– Juzzle v0.5 (cf.www.juzzle.com/) ;
– Risk v1.0.7.5 (cf. sourceforge.net/projects/jrisk) ;
et d’identifier manuellement (par analyse manuelle, au travers de la docu- mentation. . .) les patrons de conception utilis´es pour la conception et l’im- plantation de ces programmes.
Ensuite, apr`es avoir identifi´e les patrons de conception utilis´es, le travail consiste `a comparer les patrons de conception identifi´es manuellement avec ceux identifi´es automatiquement par l’outil Ptidej (cf. www.ptidej.net) puis d’expliquer les raisons pour lesquelles certains patrons sont identifi´es automatiquement l`a o`u il n’y en a pas et pour lesquelles certains patrons ne sont pas identifi´es automatiquement.
Enfin, il s’agit de proposer des solutions pour am´eliorer les syst`emes de contraintes de Ptidej pour am´eliorer les m´ecanismes d’identification automatique.
5 Environnement de travail
Le travail sera effectu´e par autant de groupes possible d’au plus quatre
´etudiants, en Java, avec l’environnement de d´eveloppement pour Java fourni avec la plate-formeEclipse.
R´ ef´ erences
[1] Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object- oriented design. Technical report E53-315, MIT Sloan School of Man- agement, December 1993.
[2] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
Design Patterns – Elements of Reusable Object-Oriented Software.
Addison-Wesley, 1st edition, 1994. isbn: 0-201-63361-2.
[3] Peter Wendorff. Assessment of design patterns during software reengi- neering: Lessons learned from a large commercial project. In Pedro Sousa and J¨urgen Ebert, editors,proceedings of5th Conference on Soft- ware Maintenance and Reengineering, pages 77–84. IEEE Computer Society Press, March 2001.
3