 |
Patrons de conception et
identification automatique |
Responsables
Yann-Gael Guéhéneuc, local 2345, poste 6782, guehene@iro.umontreal.ca
Naouel Moha, local 2355, poste 1805, mohanaou@iro.umontreal.ca
1 Bénéfices attendus
En choisissant ce projet, les étudiants approfondiront leur connaissance
de la programmation orientée-objets et du langage de programmation Java.
Ils approfondiront également leur connaissance des patrons de conception,
des techniques de retro-conception des programmes et de programmation par
contraintes. De plus, ils apprendront à utiliser l'environnement Eclipse.
Ces connaissances apporteront aux étudiants un avantage indéniable
sur le marché du travail ou dans la poursuite de leurs études : les patrons de conception sont un sujet important dans la recherche et un gage
de développements de qualité dans l'industrie. De plus, Eclipse est devenue la plateforme de développement de référence dans l'industrie (IBM
WebSphere) et dans les milieux universitaires. La retro-conception est
omniprésente dans tout projet logiciel moderne et la programmation par
contraintes est une technique très répandue dans de nombreux domaines
(aide à la décision, génie logiciel, finance. . .)
Du point de vue des responsables du projet, le travail réalise permettra
de répondre rigoureusement à la question des caractéristiques de qualité des
solutions des patrons de conception, de leur identification automatique et
de leur impact sur la qualité des programmes à objets.
2 Contexte
La qualité est un facteur essentiel de la pérennité des programmes. Des
programmes avec de bonnes caractéristiques de qualité coutent moins cher
car ils prennent moins de temps à développer et sont plus faciles a maintenir.
La maintenance représentant maintenant 90% du cout des programmes, la
qualité des programmes à un impact direct sur leur cout !
La qualité des programmes se mesure à l'aide de métriques directes,
telles la complexité cyclomatique, et de modèles prédictifs de qualité qui
permettent d'interpréter les résultats des métriques directes pour donner
une mesure indirecte de la qualité des programmes : stabilité, maintenabilite,
extensibilité...
Depuis plusieurs années, la qualité des programmes a été grandement
améliorer par l'introduction des patrons de conception [2]. Les patrons de
conception décrivent de bonnes solutions à des problèmes récurrents de
conception des programmes à objets. Les solutions proposées par les patrons de conception sont reconnues comme ayant de bonne caractéristiques
de qualité.
3 Constat
Pourtant, à ce jour et à notre connaissance, aucune étude n'a pu prouver positivement l'impact des patrons de conception sur la qualité des programmes à objets. Au contraire, plusieurs études (par exemple [3]) ont
montre qu'une utilisation abusive des patrons de conception dégradait la
maintenabilite des programmes.
De plus, il est reconnu que l'utilisation de patrons de conception dégrade
les métriques orientées-objets traditionnelles (par exemple Chidamber et
Kemerer [1]) et qu'aucun modèle prédictif de qualité ne rend compte de la
présence des patrons de conception d'une manière positive.
C'est pourquoi il est aujourd'hui important de caractériser clairement
l'impact des patrons de conception sur la qualité des programmes à objets.
4 Travail demande
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/) ;
{ 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 documentation. . .) les patrons de conception utilises pour la conception et l'implantation de ces programmes.
Ensuite, âpres avoir identifie les patrons de conception utilises, le travail
consiste à comparer les patrons de conception identifies manuellement avec
ceux identifies automatiquement par l'outil Ptidej (cf. www.ptidej.net)
puis d'expliquer les raisons pour lesquelles certains patrons sont identifies
automatiquement la ou il n'y en a pas et pour lesquelles certains patrons ne
sont pas identifies automatiquement.
Enfin, il s'agit de proposer des solutions pour améliorer les systèmes
de contraintes de Ptidej pour améliorer les mécanismes d'identification
automatique.
5 Environnement de travail
Le travail sera effectue par autant de groupes possible d'au plus quatre
étudiants, en Java, avec l'environnement de développement pour Java fourni
avec la plate-forme Eclipse.
References
[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 reengineering: Lessons learned from a large commercial project. In Pedro
Sousa and Jurgen Ebert, editors, proceedings of 5th Conference on Soft-
ware Maintenance and Reengineering, pages 77{84. IEEE Computer
Society Press, March 2001. |
|