Date de publication : Feb 26, 2013 8:56:36 PM
Êtes-vous convaincu des bénéfices supposés des design patterns? Est-ce simplement votre intuition ou avez-vous des preuves empiriques à ce propos? Voici deux questions importantes à se poser concernant les bénéfices des design patterns:
Favorisent-ils des conceptions plus faciles à maintenir?
Sont-ils un moyen efficace de partager des connaissances en conception?
David Budgen vient de publier dans la revue IEEE Software des résultats d'une analyse documentaire (mapping study) de plusieurs études empiriques sur les bénéfices des patterns. Inclus dans le même article sont les résultats d'un sondage auquel j'ai eu l'honneur d'avoir participé.
Les conclusions de Budgen à propos des design patterns pourraient vous surprendre:
Concernant la première question, les résultats empiriques qu'il a analysés ne supportent pas avec certitude des bénéfices des design patterns (mais ils ne démontrent pas non plus que les patterns sont mauvais).
Quant à la deuxième question, les résultats démontrent qu'il y a une courbe d'apprentissage importante avec l'emploi des patterns, ce qui est peut-être moins étonnant.
Concernant le sondage auquel j'ai participé, les résultats démontrent un consensus limité sur la perception des bénéfices (ou l'absence de bénéfices) de certains des 23 design patterns GoF. Voici les résultats du premier sondage que l'étudiant de David Budgen m'avait envoyée en 2011 :
On voit que les patterns Observer, Composite, Abstract Factory, Façade et Iterator sont généralement aperçus de façon positive, tandis que Visitor et Singleton sont controverses.
Ces conclusions sont intéressantes pour plusieurs raisons:
Pour les étudiants de recherche, il y a des opportunités pour des projets de validation de façon empirique les bénéfices des patterns. Si ce genre de projet vous intéresse, contactez-moi.
Pour les étudiants de baccalauréat, la matière que nous enseignons dans les cours de conception en génie logiciel à l'ÉTS (LOG121 et LOG210) couvre principalement les patterns importants selon le sondage de Budgen. Une approche pédagogique qui se concentre sur les patterns importants avec une mise en pratique approfondie (plutôt que d'enseigner beaucoup de patterns de façon peu profonde) pourrait pallier le problème de courbe d'apprentissage.