INF461:
PRINCIPES ET PROCESSUS
DU LOGICIEL
Design Patterns
Chargé de cours............................................Dr KIMBI XAVERIA
Construction des systèmes
logiciels
Qui résolvent des
Objectif du problèmes réels
GL Qui résolvent ces
problèmes de façon
correcte
Objectif du GL
Des logiciels de bonne qualité
Utilisation facile
Facile à faire évoluer
Simple à maintenir
Facilement compréhensible
Motivations
Difficultés:
De développer des logiciels
extensibles et
réutilisables,efficaces,
Il faut entre autre:
Définir une bonne architecture
Réaliser une bonne conception
Utiliser les bonnes manières et avoir de bonnes
habitudes
Motivations
Il est essentiel de comprendre les techniques bien
éprouvées, qui on déjà montré leur capacité à
résoudre des problèmes de éveloppement
récurrents.
On constate qu’
En développement (conception et
implémentation), comme dans toute discipline,
certains problèmes sont récurrents.
Un développeur expérimenté sait identifier de tels
problèmes, et connaît généralement leur solution.
Motivations
Et donc ,Pourquoi ne pas répertorier ces problèmes
et leur solutions, afin de faciliter l’activité de
développement.
=> Patrons de conception / Design Patterns
Les patrons de conception (« Design Patterns »)
sont des solutions qui aident à saisir, spécifier et
mettre en œuvre ces techniques éprouvées.
Définitions
Patron / modèle / motif de conception
(design pattern) :
Une solution réutilisable à un
problème récurrent de conception
logiciel, dans un certain contexte.
Solution connues et éprouvée dont la
conception provient de l’expérience
de programmeurs
Objectifs des design pattern
les patrons de conceptions visent :
facilité de gestion a travers la
la modularité: technologie objet
degré avec lequel les tâches
réalisées par un seul
la cohésion : module sont fonctionnellement
reliées. Une forte cohésion est
une bonne qualité pour un
logiciel.
Objectifs des design pattern
les patrons de conceptions visent
également :
degré d'interaction entre les
modules dans le système.
Le couplage : Un couplage faible est une
bonne qualité.
La les patterns de conceptions
forment des bibliothèques et
réutilisabilité: des Framework utilisables pour
la définition des architectures.
Avantages et utilités des design
patterns
Amélioration de l’efficacité, la robustesse, la
lisibilité du code.
Aide à la gestion de la complexité du logiciel
Capitalisation de l'expérience : réutilisation
de solutions qui ont prouvé leur efficacité
Un développement beaucoup plus rapide
L’élaboration et la construction des
logicielles de meilleure qualité grâce à un
niveau d'abstraction plus élevé.
Inconvénients des design
patterns
La nécessité d’un effort de synthèse conséquent
: reconnaitre, abstraire, etc.
La nécessite d’un apprentissage et d’expériences
Le nombre de patterns à apprendre : les patrons
de conceptions sont nombreux (23 dans
l'ouvrage du GOF et d'autres sont publiés
régulièrement)
Des patrons qui se ressemblent.
Des patrons qui s’appuient sur d’autres.
Origine
Les DP tirent leur origine des travaux de
l’architecte Christopher A dans les années 70
Les DP ont été formalisés pour la première
fois en 1995 dans le livre du « Gang of Four »
(GoF)
GoF : Erich Gamma, Richard Helm,
Ralph Johnson et John Vlissides, «
Design Patterns - Elements of Reusable
Object-Oriented Software »
Constitution d’un design pattern
Un patron de conception est défini par :
Un Contexte : une situation qui engendre le
problème
Un Problème : le problème récurrent qui
apparait dans ce contexte
Une Solution : une résolution validée du
problème
Description des Design Patterns
On documente un pattern de conception en donnant
les éléments suivants :
le nom : le nom du pattern
la description (son intention): courte description
du pattern, sa raison d’être, description des
conditions d'applications. Explication du
problème à résoudre et son contexte. En d’autre
terme, que fait-il et quel problème résout-il ?
Description des Design Patterns
Un exemple (motivation) : décrire un problème
et la solution basée sur le pattern, décrit sous
la forme d'un diagramme de classe UML, c'est
à dire montrer un cas particulier dans lequel
le pattern peut être utilisé.
Catégories de Patrons de conception
La classification du « GoF » organise les patterns
selon leur vocation :
Les patrons de construction ou de création :
ont pour but d’organiser la création des
objets. On en distingue 5 : Abstract Factory,
Builder, Factory Methode, Prototype et
Singleton.
Catégories de Patrons de conception
Les patrons de structuration : facilitent l’organisation de la
hiérarchie des classes et leurs relations. Ils sont au nombre de
7 : Adapter, Bridge, Composite, Decorator, Facade, Flyweight, et
proxy.
Les patrons de comportement : proposent des solutions
pour organiser les interactions et pour répartir les
traitements entre les objets. Ils sont au nombre de 11 :
Chain of responsability, Command, Interpreter, Iterator,
Mediator, Memento, Observer, State, Strategy, Template
Method et Visitor.
Ouvrages recommandés
Software Architecture in Practice, 3e édition, Len Bass, Paul
Clements et Rick Kazman, Addison-Wesley, 2012.
“Design Patterns - Elements of Reusable Object-Oriented
Software”,Erich Gamma, Richard Helm, Ralph Johnson,
John Vlissides
POSA 1 - “Pattern-Oriented Software Architecture – A
System of Patterns”, Vol. 1, Frank Buschmann, Regine
Meunier, Hans Rohnert,Peter Sommerland, Michael Stal