INF4067
2022-2023
Université de
Yaoundé I
INF4067 : UML et Design Patterns
Introduction Générale
Septembre 2022
Valéry MONTHE
[email protected]
Bureau R114, Bloc pédagogique 1
Déroulement du cours
• CM :
– Des séances de 2h à 3h
– Lieu : En ligne et en salle de cours
• TD/TP :
– Des séances de 2 h
– Lieu : En ligne et en salle de cours
• TPE:
– Lectures
• Outils:
– Supports de cours
– Cahier de cours et TD
– Ordinateurs personnels
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 2
Règles du Cours
• Accès:
– Plus d’entrées possibles après 20 min
• Discipline:
– Respect, courtoisie, ponctualité et assiduité
• Mail:
– près de 50 mails reçu par jour
– Objets de vos mails : [INF4067] au début de l’objet
– Exemple : [INF4067] : remise du TP N°3
• Remise de travaux : pénalité de 10% par jour de retard
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 3
Evaluations
• Présences : Prise en compte
• TD :
– Contrôle des exercices faits à domicile
– Petites évaluations basées sur des exercices de la fiche de TD
• CC (20%):
– Contrôle continu écrit
• Examen (50%):
– Examen écrit en salle
• TP (30%):
– TP individuels
– Projets en groupes
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 4
Motivations
❑ Objectif du GL : Construction des systèmes logiciels
▪ Qui résolvent des problèmes réels
▪ Qui résolvent ces problèmes de façon correcte
❑ Des logiciels de bonne qualité
▪ Utilisation facile
▪ Facile à faire évoluer
▪ Simple à maintenir
▪ Facilement compréhensible
▪ Etc.
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 5
Motivations
❑ Difficultés
▪ De développer des logiciels efficaces, robustes,
extensibles et réutilisables
❑ Il faut entre autre
▪ Définir une bonne architecture
▪ Réaliser une bonne conception
▪ Utiliser les bonnes manières et avoir de bonnes habitudes
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 6
Motivations
❑ Il est essentiel de comprendre les techniques bien éprouvées, qui
on déjà montré leur capacité à résoudre des problèmes de
développement récurrents.
❑ Constat
▪ 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.
❑ 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
canevas (« frameworks ») qui aident à saisir, spécifier et mettre
en œuvre ces techniques éprouvées.
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 7
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.
▪ Un schéma à objet qui forme une solution conceptuelle
réutilisable à un problème connu et fréquent,
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 8
Objectifs des DP
Ils visent :
▪ la modularité : facilité de gestion a travers la technologie objet
▪ la cohésion : degré avec lequel les tâches réalisées par un seul
module sont fonctionnellement reliées. Une forte cohésion est une
bonne qualité pour un logiciel.
▪ Le couplage : degré d'interaction entre les modules dans le système.
Un couplage lâche est une bonne qualité.
▪ La réutilisabilité : les patterns de conceptions forment des
bibliothèques et des Framework utilisables pour la définition des
architectures.
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 9
Avantages et utilités des DP
▪ 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é.
▪ Réduction du nombre d'erreurs, d'autant que les patrons sont
examinés avec attention avant d'être publiés.
▪ Communication plus aisée : l’écriture du code facilement
compréhensible par les autres
▪ Apprentissage en suivant de bons exemples
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 10
Inconvénients des DP
▪ 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.
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 11
Origine (un peu d’histoire !)
▪ 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 »
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 12
Constitution
❑ 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
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 13
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 ?
▪ 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é.
▪ La structure générique du pattern :
– Une représentation graphique des classes du modèle sous forme d'un
diagramme de classe UML.
– La liste des participants au pattern : objets, relations, responsabilités,
collaboration permettant de concevoir la solution au problème.
– Les domaines d'application du pattern
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 14
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.
▪ 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.
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 15
Bibliographie et ressources
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
INF4067 || 2022-2023 Présentation du Cours 29/09/2022 16