Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
L’analyseL’ANALYSE LA ET
et La Conception
Orientées-Objets
CONCEPTION
ORIENTEES-OBJETS
Dr. Pélagie HOUNGUE
Dr. Pélagie HOUNGUE
(COUVERCLE PLACE)
L’analyse et la Conception Orientées-Objets
Avant-propos
L’Université Virtuelle Africaine (UVA) est fière de participer à accès à l’éducation dans les pays
africains en produisant du matériel d’apprentissage de qualité. Nous sommes également fiers
de contribuer à la connaissance globale, pour nos ressources éducatives sont principalement
accessibles de l’extérieur du continent africain.
Les institutions suivantes ont participé au programme informatique appliquée: (1) Université
d’Abomey Calavi au Bénin; (2) University of Ougagadougou au Burkina Faso; (3) Université
Lumière Bujumbura Burundi; (4) Université de Douala au Cameroun; (5) Université de Nouakchott
en Mauritanie; (6) Université Gaston Berger Sénégal; (7) Université des Sciences, Techniques
et Technologies de Bamako au Mali (8) Institut de la gestion et de l’administration publique
du Ghana; (9) Université des sciences et de la technologie Kwame Nkrumah au Ghana; (10)
Université Kenyatta au Kenya; (11) Université Egerton au Kenya; (12) Université d’Addis-Abeba
en Ethiopie (13) Université du Rwanda; (14) University of Salaam en Tanzanie Dar; (15) Université
Abdou Moumouni Niamey Niger; (16) Université Cheikh Anta Diop au Sénégal; (17) Université
pédagogique au Mozambique; E (18) L’Université de la Gambie en Gambie.
Bakary Diallo
le Recteur
2
Crédits de production
Auteur
Dr. Pélagie HOUNGUE
Pair Réviseur
Oumar Maïga
Coordinateur du module
Jules Degila
Concepteurs pédagogiques
Elizabeth Mbasu
Benta Ochola
Diana Tuel
Equipe Média
Sidney McGregor Michal Abigael Koyier
3
L’analyse et la Conception Orientées-Objets
Droits d’auteur
Ce document est publié dans les conditions de la Creative Commons
Http://fr.wikipedia.org/wiki/Creative_Commons
Attribution http://creativecommons.org/licenses/by/2.5/
Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution-
ShareAlike 4.0 International License. CC-BY, SA
Supporté par
4
Table Des Matières
Avant-propos 2
Crédits de production 3
Droits d’auteur 4
Supporté par 4
Aperçu du cours 7
Prérequis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Matériaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Unités. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Plan 9
Introduction à l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Objectifs de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Termes clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Evaluation de l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Réponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Introduction à l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Objectifs de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Termes clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Activités d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Conclusion 21
5
L’analyse et la Conception Orientées-Objets
Evaluation 21
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Evaluation 26
Conclusion 30
Evaluation 30
Introduction à l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Objectifs de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Termes clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Activités d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Conclusion 38
Evaluation 38
Conclusion 50
Evaluation 50
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Conclusion 54
Evaluation 54
Introduction à l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Objectifs de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6
Termes clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Activités d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Evaluation 63
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Conclusion 75
Evaluation 76
Conclusion 85
Evaluation 85
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Conclusion 89
Evaluation 89
Introduction à l’unité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Objectifs de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Termes clés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Activités d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Evaluation 98
Détails de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5
L’analyse et la Conception Orientées-Objets
Conclusion 105
Evaluation 105
Conclusion 110
Evaluation 110
Conclusion 112
Evaluation 112
Conclusion 116
Evaluation 117
6
Aperçu du cours
Aperçu du cours
Bienvenue à l’analyse et la Conception Orientées-Objets
Ce module va vous enseigner, la façon dont vous devez utiliser efficacement les technologies
orientées objet et la modélisation du logiciel appliqué aux processus de développement de
logiciels tout en utilisant le langage de modélisation unifié UML ( Unified Modeling Language).
UML est le langage standard pour l’analyse et la conception orientée-objet. UML est utilisé
tout au long du cycle de vie de développement de logiciel pour prendre et communiquer
les décisions relatives à l’analyse et à la conception. En étudiant ce module, vous allez vous
rendre compte des avantages de l’utilisation d’un langage de modélisation graphique, pour
communiquer des concepts, des décisions, comprendre un problème, proposer la solution
adéquate et gérer la complexité des artefacts. Enfin, le module vous permettra de comprendre
les patrons et les règles qui contribueront à la création de composants logiciels réutilisables.
Prérequis
Programmation Orientée-Objet
Génie Logiciel
Matériaux
Les matériaux nécessaires pour compléter ce cours comprennent:
● Outils de modélisation tels que Visual Paradigm, ArgoUML, Visio, Smart Drawer
● Livres
● Support de cours
Objectifs du cours
À la fin de ce cours, l›étudiant devrait être en mesure de :
Concevoir des plans de qualité pour les systèmes de niveau entreprise qui
intègrent l’architecture et les modèles de conception en utilisant l’outil CASE
pour améliorer et faciliter la réalisation de ce processus
Faire correspondre la conception au code, définir une classe avec des méthodes
et des attributs simples, ajouter des attributs de référence, définir une méthode
à partir d’un diagramme de collaboration.
7
L’analyse et la Conception Orientées-Objets
Unités
Il s’agit d’une unité de pré-évaluation. Elle permettra d’évaluer les pré-requis pour ce module
et donc portera sur la programmation Orientée-Objet et le Génie Logiciel.
Cette unité se focalise sur les principes de la programmation orientée objet. Elle met
l’accent sur certains concepts importants comme : les classes, les objets, l’encapsulation, le
polymorphisme, l’héritage.
Cette unité décrit le langage de modélisation unifié UML et son utilisation dans le processus
de développement de logiciel. L’accent sera mis sur les différents diagrammes UML.
Cette unité expose les différentes étapes qui composent l’analyse orientée-objet, allant de la
collecte des besoins au diagramme des cas d’utilisation.
Cette unité expliquera en quoi consiste la phase de conception d’un logiciel. Durant cette
phase le programmeur devra définir à quelle classe appartient chacune des méthodes définies
ainsi que les interactions entre les différents objets. Cette unité mettra également l’accent
sur les méthodes à utiliser pour passer des diagrammes au code (instructions écrites dans un
langage de programmation orienté-objet du choisi par le programmeur).
Évaluation
Les évaluations formatives (vérification de progrès) sont inclues dans chaque unité.
Les évaluations sommatives (tests et travaux finaux) sont fournies à la fin de chaque module et
traitent des connaissances et compétences du module.
Les évaluations sommatives sont gérées à la discrétion de l’établissement qui offre le cours. Le
plan d’évaluation proposé est le suivant:
8
Aperçu du cours
Plan
9
L’analyse et la Conception Orientées-Objets
Unité 0
Brett McLaughlin, Gary Pollice, David West, Sophie Govaere, “Analyse et conception orientées
objet”, Mai 2007
Liu, Z. (2001, “Object-Oriented Software Development Using UML”, March, The United
University – International Institute for Software Technology (UNU/IIST), Report No. 229.
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
Unité 1
Ariadne Training (2001), “UML Applied Object Oriented Analysis and Design Using the UML”,
Ariadne Training Limited
Liu Z., (2001), “Object-Oriented Software Development Using UML”, The United Nations
University, UNU-IIST International Institute for Software Technology, Tech Report 229.
Ojo A. and Estevez E., (2005), “Object-Oriented Analysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
Sommerville Ian (2000), “Software Engineering (6th Edition)”. Addison-Wesley, Boston USA
10
Aperçu du cours
Unité 2
Ariadne Training (2001), “UML Applied Object Oriented Analysis and Design Using the UML”,
Ariadne Training Limited
Liu Z., (2001), “Object-Oriented Software Development Using UML”, The United Nations
University, UNU-IIST International Institute for Software Technology, Tech Report 229.
Ojo A. and Estevez E., (2005), “Object-Oriented Analysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
Michael B., Rumbaugh J., “Modélisation et conception orientées objet avec UML 2 “, 2ème
édition, Pearson Education France, 2005.
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
Booch G., Rumbaugh J. and Jacobson I. (1998), “Unified Modeling Language User Guide”,
Addison Wesley , First Edition October 20, 1998 , ISBN: 0-201-57168-4, 512 pages
Sommerville Ian (2000), “Software Engineering (6th Edition)”. Addison-Wesley, Boston USA
Unité 3
Ariadne Training (2001), “UML Applied Object Oriented Analysis and Design Using the UML”,
Ariadne Training Limited
Liu Z., (2001), “Object-Otiented Software Development Using UML”, The United Nations
University, UNU-IIST International Institute for Software Technology, Tech Report 229.
Ojo A. and Estevez El., (2005), “Object-Oriented Analysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
11
L’analyse et la Conception Orientées-Objets
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
Pressman Roger S., (2001), “Software Engineering, A Practitioner’ S Approach” Fifth Edition,
McGraw-Hill Higher Education, ISBN 0073655783
Sommerville Ian (2000), “Software Engineering (6th Edition)”. Addison-Wesley, Boston USA
Unité 4
Liu Z., (2001), “Object-Oriented Software Development Using UML”, The United Nations
University, UNU-IIST International Institute for Software Technology, Tech Report 229.
Ojo A. and Estevez El., (2005), “Object-Oriented Analysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
Pressman Roger S., (2001), “Software Engineering, A Practitioner’ S Approach” Fifth Edition,
McGraw-Hill Higher Education, ISBN 0073655783
Sommerville Ian (2000), “Software Engineering (6th Edition)”. Addison-Wesley, Boston USA
12
Unité 0. Évaluation Diagnostique
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de :
Termes clés
Processus logiciel : Un processus logiciel est un
ensemble d’activités et de résultats connexes. Lorsque
ces activités sont effectuées dans un ordre spécifique,
conformément aux contraintes, les résultats souhaités
sont produits.
13
L’analyse et la Conception Orientées-Objets
Evaluation de l’unité
Partie I Questions sur les connaissances de base
5. b) Quelles sont les principales différences que vous pouvez souligner entre ces
méthodologies.
Les projets demandent que vous mettiez en pratique l’approche orientée objet dans le
développement du logiciel.
Projet 1:
Projet 2:
Projet 3:
Concevoir et implémenter un système basé sur le Web pour réserver les salles de
classe de votre université. Les réservations périodiques (jours/heures fixes chaque
14
Unité 0. Évaluation Diagnostique
Réponse
Partie 1
ii. Développement du logiciel : Un logiciel qui répond aux spécifications doit être
produit.
iii. Validation du logiciel : Le logiciel doit être validé (confirmé) pour s’assurer qu’il
fait ce que le client veut.
iv. Maintenance du logiciel: Le logiciel doit évoluer pour répondre aux besoins
changeants du client.
2. Le plus grand problème du génie logiciel est de faire en sorte que les développeurs
construisent un logiciel qui répond parfaitement aux exigences des utilisateurs.
Pour résoudre ce problème il est important d’appliquer un ensemble de méthodes
et de techniques permettant de développer et de maintenir des logiciels de qualité.
Entre autres, le suivi d’un processus de développement de logiciel va permettre
d’une part de maitriser la complexité et le coût d’un développement de logiciel et
d’autre part, d’augmenter la probabilité de réussite d’un projet de développement
de logiciel.
15
L’analyse et la Conception Orientées-Objets
• L’accent est mis sur les données plutôt que sur les fonctions
• Les programmes sont divisés en des objets
• Les structures de données sont conçues de telle sorte qu’elles caractérisent les
objets
• Les données sont masquées et ne peuvent être accédées par des fonctions
externes
• Les objets peuvent communiquer entre eux par les fonctions
• La programmation orientée objet suit l’approche bottom-up dans la conception
du programme
16
Unité 0. Évaluation Diagnostique
Partie 2
Dans cette partie, étant donné que le résultat final est un logiciel, il faut s’assurer en plus
du langage utilisé (un langage orienté objet) que les différentes fonctionnalités soient
implémentées.
17
L’analyse et la Conception Orientées-Objets
Unité 1. - Principes de La
Programmation Orientée-Objet
Introduction à l’unité
Cette unité vous présente les principes de la programmation orienté objet: l’Abstraction, la
modularité, l’encapsulation et les concepts fondamentaux de l’orienté objet: objets, classes,
héritage et polymorphisme. L’unité met l’accent sur les associations et liens: l’association, la
composition, l’agrégation et la généralisation. Cette unité explique les notions de super
classes, de sous classes, et de multiplicité.
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
Termes clés
Classe : Une classe n’est rien d’autre que la description
d’un ensemble d’objets ayant une structure commune
et disposant des mêmes méthodes.
18
Unité 1. - Principes de La Programmation Orientée-Objet
Activités d’apprentissage
Présentation
Cette unité décrit les principes fondamentaux de l’orientée objet que vous devez comprendre
et qui serviront de tremplin pour le reste de l’unité.
Détails de l’activité
L’abstraction est un modèle qui prend en compte les aspects les plus importants d’un système
donné, tout en ignorant les détails les moins importants. L’abstraction implique un savoir-faire
qui consiste à prendre en compte l’essentiel et à ignorer ce qui ne l’est pas. L’orienté objet
est une bonne abstraction du monde réel ; cela signifie que si le problème change (à savoir
les exigences changent, comme c’est presque toujours le cas), la solution devrait être plus
facile à modifier. Ojo and Estevez, (2005) indique que l’abstraction est le processus permettant
de se concentrer sur les aspects les plus importants, tout en ignorant les détails moins
importants. Elle permet la gestion de la complexité, en se concentrant sur les caractéristiques
essentielles qui font qu’une entité diffère des autres. La figure 1.1 montre un exemple
d’abstraction du traitement de commandes.
Figure 1.1: Exemple d’abstraction du traitement de commandes (Source: Ojo et Estevez, 2005)
19
L’analyse et la Conception Orientées-Objets
20
Unité 1. - Principes de La Programmation Orientée-Objet
La hiérarchie est un arrangement des classes dans une structure arborescente. Dans cette
hiérarchie, un système complexe est composé de sous-systèmes interdépendants qui ont
à leur tour leurs propres sous-systèmes, et ainsi de suite, jusqu’à ce que le plus bas niveau
de composants élémentaires soit atteint. Figure 1.4 montre un exemple du principe de la
hiérarchie dans la programmation orienté objet.
Conclusion
Cette unité a mis l’accent sur les principes fondamentaux de la programmation orientée-objet.
Ces principes concernent l’abstraction, l’encapsulation, la modularité et la hiérarchie.
Evaluation
4. Identifier l’interface
5. Identifier l’implémentation
21
L’analyse et la Conception Orientées-Objets
Présentation
Cette unité décrira les concepts de l’orientée objet. Nous aborderons les termes comme : les
objets, les classes, l’héritage et le polymorphisme. Nous mettrons l’accent sur les composantes
d’une classe, comment créer une hiérarchie de classe, comment créer des classes mères et des
classes filles et comment donner plusieurs rôles à une même méthode.
Détails de l’activité
Toute discussion portant sur l’ingénierie logicielle orientée objet doit commencer en abordant
l’expression « orienté objet ». Qu’est-ce qu’un point de vue orienté objet? Dans quels cas une
méthode est considérée comme orienté objet? Qu’est-ce qu’un objet? Tel que défini par Ojo
et Estevez(2005), l’orientation objet porte sur la visualisation et la modélisation du monde /
système comme un ensemble d’objets liés et interagissant entre eux. Les caractéristiques de
l’approche OO sont:
Les objets sont les entités d’exécution de base dans un système orienté objet. Ils peuvent
représenter une personne, un lieu, un compte, une base de données ou un objet que le
programme doit gérer. Ils peuvent également représenter des données définies par l’utilisateur
telles que les vecteurs, le temps et les listes. Un problème de programmation est analysé en
termes d’objets et cette analyse prend en compte la nature de la communication entre ces
objets. Les objets dans un programme doivent être choisis de telle sorte qu’ils correspondent
étroitement avec les objets du monde réel comme le montre la figure 1.5 (Ojo et Estevez,
2005).
Figure 1.5: Exemples d’objets du monde réel (Source: Ojo et Estevez, 2005)
Lorsqu’un programme est exécuté, les objets interagissent en envoyant des messages les uns
aux autres. Par exemple, si «étudiant» et «enseignant» sont deux objets dans un programme,
alors l’objet «étudiant» peut envoyer un message à l’objet « enseignant » pour demander
ses notes à un contrôle. Chaque objet contient des données et des instructions (code) pour
manipuler les données. Les objets peuvent interagir sans connaitre les détails des données ou
du code de l’autre.
22
Unité 1. - Principes de La Programmation Orientée-Objet
Prenons un exemple d’un objet du monde réel. Chaise est un membre (le terme instance est
également utilisé) d’une plus grande classe d’objets que nous appelons mobilier. Un ensemble
d›attributs génériques peuvent être associés à chaque objet dans la classe mobilier (Par
exemple, tout mobilier a un coût, les dimensions, le poids, l›emplacement et la couleur,
parmi beaucoup d’attributs possibles). Ceci s’applique quand nous parlions d’une table,
d’une chaise ou d’un canapé. Etant donné que chaise est un membre/instance de mobilier,
chaise hérite tous les attributs définis pour la classe comme le montre la figure 1.8. Une fois
que la classe a été définie, les attributs peuvent être réutilisés lorsque de nouvelles instances
(objets) de la classe sont créées.
Dans le monde réel les objets peuvent être caractérisés par deux choses: leur état et les
traitements qu’ils peuvent subir. Chaque objet du monde réel possède des données et des
comportements. Les données pour un objet sont généralement appelés les attributs de
l›objet. Les différents comportements d›un objet sont appelées les méthodes
(ou traitements) de l›objet.
L’état d’un objet est l’ensemble des informations contenues/stockées dans l’objet. Il peut
changer au fil du temps. Il change aussi à la suite d’un traitement exécutée sur l’objet. Il ne
peut pas changer spontanément. L’état est encapsulé dans l’objet et n’est pas directement
visible. Les différentes composantes de l’état sont parfois appelés les attributs de l’objet. Un
traitement est une procédure qui à partir de l’état de l’objet et éventuellement de certains
arguments peut changer cet état et / ou retourner une ou plusieurs valeurs. Les objets
permettent certains traitements et pas d’autres.
Une classe est tout simplement un modèle pour la création d’un objet. Une classe est
une description d’un ensemble d’objets connexes qui partagent les mêmes attributs,
traitements. Une classe décrit les attributs et méthodes qui existeront pour toutes les instances
de la classe. Une classe est simplement une description; elle n’existe pas vraiment en tant que
telle jusqu’à ce que vous déclarez une instance de la classe.
23
L’analyse et la Conception Orientées-Objets
Les objets contiennent des données et du code pour manipuler ces données. L’ensemble des
données et le code d’un objet peut devenir un type de données défini par l’utilisateur lorsqu’il
est représenté sous la forme d’une classe. En fait, les objets sont des variables de type
classe. Une fois qu›une classe a été définie, nous pouvons créer un certain nombre d›objets
appartenant à cette classe. Les objets sont créés en utilisant la définition de la classe comme
modèle. Lorsqu’un objet est d’une classe donnée, il est associé aux données de cette
classe. Une classe est donc une collection d›objets du même type. Graphiquement, une classe
est assimilée à un rectangle. Voici un concept important à retenir - la classe que vous créez ne
peut rien faire jusqu›à ce que vous l›utilisiez.
Un nom de classe doit être unique dans son empaquetage. Chaque classe doit avoir un
nom qui le distingue des autres classes. Un nom de classe est une chaîne de texte. Ce nom
est appelé un nom simple; un nom de chemin est le nom de la classe préfixé par le nom
du paquet dans lequel évolue cette classe. Une classe peut être représentée ne montrant que
son nom comme le montre la figure 1.7 à titre d›exemples.
Un attribut est une propriété nommée d’une classe qui décrit une plage de valeurs que les
occurrences de la propriété peuvent détenir. Une classe peut avoir un nombre quelconque
d›attributs ou pas d’attribut du tout. Un attribut représente une propriété de la chose que vous
modélisez qui est partagée par tous les objets de cette classe. Un nom d›attribut peut être du
texte. Dans la pratique, un nom d›attribut est un nom court ou un nom nominal qui représente
une propriété de sa classe englobante. En général, la première lettre de chaque mot dans un
nom d›attribut est en majuscule, sauf la première lettre, comme dans nom ou porte-Bagage
Un traitement est l’implémentation d’un service qui peut faire l’objet d’une requête provenant
de n’importe quel objet de la classe en vue de modifier le comportement de l’objet. En
d’autres termes, un traitement est une abstraction de quelque chose que vous pouvez faire à
un objet et qui est commun à tous les objets de cette classe. Une classe peut avoir un nombre
quelconque de traitements ou pas de traitements du tout. Un nom de traitements peut être du
texte. Dans la pratique, un nom de traitements est un verbe qui représente un comportement
de sa classe englobante. En général, la première lettre de chaque mot dans un nom de
traitements est en majuscule, sauf la première lettre, comme dans déplacer ou estVide. Figure
1.8 montre un exemple d›une classe et d›objets liés.
24
Unité 1. - Principes de La Programmation Orientée-Objet
Figure 1.8: La classe imprimante avec sa liste d’objets (Source: Ojo et Estevez, 2005)
L’héritage est un des concepts clés qui différencient les systèmes conventionnels (structuré)
et l’OO. Une sous-classe Y hérite de tous les attributs et les opérations associées à sa
superclasse, X. Cela signifie que toutes les structures de données et algorithmes à l’origine
conçus et mis en œuvre pour X sont immédiatement disponibles pour Y sans qu’aucune
action supplémentaire ne soit requise. Les structures de données et algorithmes peuvent être
réutilisés automatiquement. Toute modification des données ou des opérations contenues
dans une superclasse est immédiatement hérité par tous les sous-classes qui ont héritées de
la superclasse. Par conséquent, la hiérarchie des classes devient un mécanisme à partir duquel
les modifications (à des niveaux élevés) peuvent être immédiatement propagées à travers un
système.
L’héritage est le processus par lequel les objets d’une classe acquièrent les propriétés des
objets d’une autre classe. Il prend en charge le concept de classification hiérarchique. Par
exemple, le petit-fils est une partie de la class parent qui est encore une partie de la classe
grand-parent. En programmation orientée objet, le concept d’héritage entraîne l›idée de
réutilisation. Cela signifie que nous pouvons ajouter des fonctionnalités supplémentaires à une
classe existante sans la modifier. Ceci est possible en obtenant une nouvelle classe à partir de
celle qui existe.
En C ++, la classe d’origine est appelée une classe de base et la classe qui a acquis les
caractéristiques de la classe de base est appelée classe dérivée. La nouvelle classe aura les
caractéristiques combinées des deux classes. La puissance du mécanisme d›héritage est qu›il
permet au programmeur de réutiliser une classe. Ce qui signifie que l›héritage favorise le
partage et la réutilisation des informations de conception et du code du programme.
Si les opérandes sont des chaînes, le traitement produira une troisième chaîne par
concaténation
Cela signifie qu’un seul nom de la fonction peut être utilisé pour gérer un nombre différent et
25
L’analyse et la Conception Orientées-Objets
différents types d’arguments. Ceci est quelque chose de semblable à un mot particulier ayant
plusieurs significations différentes selon le contexte.
Exemple :
Une méthode appelée deplacer() par example, doit être contenue dans la classe Transport
parce que tous les objet de la classe Transport doivent être en mesure de se déplacer
Si nous voulons créer un bateau et une classe de voitures, nous voudrions certainement hériter
de la classe transport, comme tous les bateaux peuvent se déplacer et toutes les voitures
peuvent se déplacer, même si c’est de différentes façons.
Evaluation
1. Répondre par Vrai ou faux? Pour celle qui sont fausses, expliquer pourquoi.
6. prénom est un attribut
Présentation
Une classe n’a pas d’utilité en elle-même. Un logiciel avec de nombreuses fonctionnalités
peut avoir des milliers de classes. Les objets des différentes classes doivent être liés les uns
aux autres, interagir et de collaborer pour mener à bien les processus. Les relations entre
les objets (connus sous le nom des associations) sont représentées par des lignes reliant les
objets. L’association exprime les relations entre les classes et définit les liens entre les instances
de la classe (objets). Un lien exprime une relation entre les objets. Il existe quatre types de
relations entre les classes:
• Association Agrégation
• Composition Généralisation
26
Unité 1. - Principes de La Programmation Orientée-Objet
Détails de l’activité
1.3.1.1 Association
C’est la relation la plus simple entre les classes. C’est une relation d’égal à égal. C’est une
relation structurelle décrivant un ensemble de liens. Les liens sont des connexions entre les
objets. Les liens sont implémentés dans les objets en utilisant des références. Une association
est une relation entre deux ou plusieurs classes et implique une connexion entre les
instances. Les associations entre les classes A et B peuvent être:
2. A est contenue dans B
4. A est un élément de B
6. A utilise ou gère B
7. A communique avec B
8. A suit B
9. A appartient à B
1.3.1.2 Agrégation
Une agrégation est une association qui représente une relation d’inclusion structurelle ou
comportementale d’un élément dans un ensemble. Les objets sont rassemblés pour créer un
objet plus complexe. Ce rassemblement peut être physique ou logique. L’agrégation définit un
point de contrôle unique pour les objets qui y participent. L’objet issu de l’agrégation gère les
différents objets qui composent l’agrégation. L’agrégation est représentée comme un diamant
creux, pointant à la classe qui est utilisé.
Exemple 1:
27
L’analyse et la Conception Orientées-Objets
Figure 1.9: Liens d’agréation entre un ordinateur est ses composantes ou périphériques
Exemple 2 :
1.3.1.3 Composition
La composition est une agrégation composite. La durée de vie des objets individuels dépend
de la durée de vie de l’objet global. Aucune partie de la composition ne peut exister par elle-
même. Une classe composite est construite à partir d’autres classes. La classe a besoin d’un ou
de plusieurs autres classes pour exister. La composition est représentée par un diamant solide
Exemple:
Un mot ne peut pas exister si elle ne fait pas partie d’une ligne.Si un paragraphe est supprimé,
toutes les lignes de l’alinéa sont supprimées, et tous les mots appartenant à ces lignes sont
supprimés.
La généralisation est aussi appelé relation “d’héritage”. Une généralisation est la relation entre
une classe générale et une ou des classes plus spécialisés. Dans une relation de généralisation,
les spécialisations sont appelées sous-classe et la classe généralisée est appelée la
superclasse. Une généralisation permet l›héritage des attributs et des opérations d›une
superclasse par ses sous-classes.
L’héritage ou la généralisation est décrite comme une relation parent / enfant, où une classe
enfant hérite de tous les attributs et méthodes d’une classe, et ajoute ses propres attributs et
méthodes pour créer un nouveau comportement. L’héritage est représenté comme une flèche
28
Unité 1. - Principes de La Programmation Orientée-Objet
Une super-classe est une classe qui contient les caractéristiques communes à deux ou plusieurs
classes. Une super classe est similaire à un sur-ensemble, par exemple, personnel-agence. Une
sous-classe est une classe qui contient au moins les attributs et méthodes de sa (ses) super-
classe(s). Une classe peut être une sous-classe et un super classe en même temps.
1.3.3 Multiplicité
La multiplicité montre le nombre d’objets d’une classe pouvant être associées à un objet d’une
autre classe. Exemple: Un citoyen peut demander une ou plusieurs licences, et une licence est
requise par un citoyen.
29
L’analyse et la Conception Orientées-Objets
Conclusion
Comme l’a déclaré Liu, (2001), le but d’une association et d’un lien entre deux objets
est d’établir diverses sortes de relation, et donc des classes peuvent avoir toutes sortes
d’associations dans un domaine d’étude. Les objectifs que doit remplir toute association sont
les suivantes:
• Une association entre deux classes doit fournir des connexions physiques ou
conceptuelles entre les objets de ces classes.
• Seuls les objets qui sont associés entre eux peuvent collaborer les uns avec les
autres à travers les liens.
• Booch décrit le rôle d’une liaison entre les objets de la manière suivante:
• “Un lien représente l’association spécifique par lequel un objet (le client) applique
les services d’un autre objet (le fournisseur), ou par lequel un objet peut accéder
à un autre”.
Evaluation
1. Ces affirmations sont-elles vraies ou fausses ? Pour celles qui sont fausses, expliquer
pourquoi.
2. Supposons que nous voulons modéliser une application e-service pour un organisme
gouvernemental. Est-ce que ce schéma modélise raisonnablement la relation entre
30
Unité 1. - Principes de La Programmation Orientée-Objet
3. Ajouter une généralisation pour les classes définies dans l’évaluation 1.3.6 (2)
iii. Quel facteur d’élimination est utilisé dans votre hiérarchie de généralisation?
Résumé de l’unité
Un objet est toute abstraction qui modélise quelque chose dans l’univers ayant des
propriétés et des comportements. Une classe est une abstraction d’un ensemble d’objets
liés logiquement ayant des caractéristiques semblables. Les classes peuvent être liées
par les types de relations suivantes: association, agrégation, composition, héritage ou
généralisation. Les concepts de l’orienté objet comprennent: les objets, les classes, l’héritage
et le polymorphisme. La POO est caractérisée par quatre principes fondamentaux: l’abstraction,
encapsulation, la modularité et la hiérarchie.Cela peut être considéré comme un critère pour
déterminer si deux objets doivent être liés.
31
L’analyse et la Conception Orientées-Objets
Évaluation de l’unité
i. Abstraction (1 point)
• Ariadne Training (2001), “UML Applied Object Oriented Analysis and Design
Using the UML”, Ariadne Training Limited
• Liu Z., (2001), “Object-Oriented Software Development Using UML”, The United
Nations University, UNU-IIST International Institute for Software Technology, Tech
Report 229.
• Ojo A. and Estevez E., (2005), “Object-Oriented Analysis and Design with UML”,
Training Course, The United Nations University, UNU-IIST International Institute for
Software Technology, e-Macao Report 19, Version 1.0, October.
• Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème
édition, Eyrolles
• Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices
corrigés, Eni.
• Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex
, Pearson Education , 3ème édition, 2010
• Sommerville Ian (2000), “Software Engineering (6th Edition)”. Addison-Wesley,
Boston USA
32
Unité 2: Principes de Base en UML
Objectifs de l’unité
À la fin de ce module, vous devriez être capable de:
• Définir UML
• Décrire le but d’UML
• Énumérer et décrire les diagrammes UML statiques et dynamiques
• Identifier les phases du processus de développement auquel appartient chaque
diagramme UML
Termes clés
UML
La modélisation
Diagramme
33
L’analyse et la Conception Orientées-Objets
Activités d’apprentissage
Présentation
Nous introduisons dans cette activité, la notation UML, qui est actuellement la plus utilisée.
Avant de passer à la première phase du processus de développement, il est important de
comprendre le fonctionnement du processus de développement avec la notation UML.
Détails de l’activité
Pendant de nombreuses années, le terme objet orienté (OO) a été utilisé pour désigner
une approche de développement de logiciel qui utilise un certain nombre de langages de
programmation orientés objet (par exemple, Java, C ++). Aujourd’hui, le paradigme OO
englobe une vue complète de l’ingénierie logicielle.
La norme pour ce qui est d’analyser et de concevoir des systèmes voudrait que l’on modélise
d’abord le système avant de l’implémenter. La modélisation est une technique d’ingénierie
éprouvée et bien acceptée. La modélisation peut être fait mathématiquement ou par toute
autre notation acceptée et comprise par les ingénieurs du même domaine à travers le monde
L’ingénierie logicielle ne disposait pas d’une telle notation. Entre 1989 et 1994, plus de 50
langages de modélisation de logiciels étaient utilisés - chacun d’entre eux comportant leurs
propres notations. Chaque langage avait une syntaxe qui lui était propre, tandis que dans le
même temps, chaque langage partageait des similitudes avec les autres langages, et pour ne
rien arranger aucun de ces langages n’était complet.
Dans le milieu des années 1990, trois méthodes ont émergé du lot. Ces trois méthodes ont
commencé à converger, à fusionner. Chaque méthode a ses propres atouts:
34
Unité 2: Principes de Base en UML
Ainsi, le Unified Modelling Language (UML) est en grande partie le produit de trois ingénieurs
logiciels bien connus, - GradyBooch, Ivar Jacobson et James Rumbaugh. En 1994, James
Rumbaugh, le créateur de OMT rejoint Grady Booch à Rational Corp. L’objectif du partenariat
est de fusionner leurs idées en une seule méthode unifiée. En 1995, le créateur de OOSE,
Ivar Jacobson, avait également rejoint Rational, et ses idées (en particulier la notion de «cas
d’utilisation») ont été introduits dans la nouvelle méthode unifiée - maintenant appelé Unified
Modeling Language.
Le langage de modélisation unifié (UML) est un moyen standard pour spécifier, construire, et
documenter un système développé en utilisant l’approche orientée objet. UML est un langage
graphique pour capturer les artefacts du développement de logiciels. UML est le standard de
facto pour la modélisation orientée objet. Ainsi :
Spécifier signifie construire des modèles qui sont précis, sans ambiguïté, et complèts. En
particulier, l’UML aborde la spécification de toutes les décisions importantes d’analyse,
de conception et de mise en œuvre qui doivent être faits dans le développement et le
déploiement d’un système logiciel.
L’UML n’est pas un langage de programmation visuel, mais ses modèles peuvent être reliés
directement à une variété de langages de programmation. Cela signifie qu’il est possible de
faire correspondre un modèle UML à des éléments d’un langage de programmation tel que
Java, C ++, Visual Basic ou PHP, ou même à tables dans une base de données relationnelle ou
à une base de données orientée objet.
Les éléments qui s’expriment le mieux graphiquement sont font graphiquement dans
l’UML, alors que les ceux qui sont mieux exprimés textuellement le sont dans le langage de
programmation. Cette correspondance améliore la conception: la génération de code à partir
d’un modèle UML dans un langage de programmation.
35
L’analyse et la Conception Orientées-Objets
Les livrables d’un développement logiciel digne du nom sont de toutes sortes. En dehors du
code exécutable brut, on a (mais la liste n’est pas exhaustive): Exigences, architecture, code
source, des plans de projet, tests, prototypes, les versions.
Comme pour tout langage, l’UML a sa propre notation et sa syntaxe. UML ne dit pas comment
développer des logiciels. Il peut être appliqué dans tous les processus de développement
de logiciels. Sa notation comprend un ensemble de formes conçues pour la construction
de différents types de diagrammes. Chaque forme a une signification particulière. UML est un,
langage générique très vaste permettant représenter les aspects clés d’un développement de
logiciels.
D’après Ojo and Estevez, (2005) les objectifs de UML sont les suivants:
36
Unité 2: Principes de Base en UML
modèle ne dicte pas ou ne montre pas comment l’implémentation sera faite. Il indique juste
le qui, le quoi, le où, le quand etc. La conception basée sur les modèles mets l’accent sur la
schématisation des modèles d’un système afin de documenter et de valider l’existant et / ou le
nouveau système proposé. En fin de compte, le modèle devient le patron pour la conception
et la construction d’un système amélioré.
La modélisation est au centre de toutes les activités conduisant à la mise en place d’un bon
déploiement de logiciel.
La Modélisation :
Le choix du modèle à créer a une profonde influence sur la façon dont un problème est abordé
et comment la solution est façonné.
En d’autres termes, il est essentiel de bien choisir vos modèles. Lorsque les modèles sont bien
choisis, les problèmes de développement les plus complexes sont mieux cernés; par contre
mal choisir ses modèles pourrait vous induire en erreur, vous amenant à vous concentrer sur
des questions non pertinentes.
37
L’analyse et la Conception Orientées-Objets
Les meilleurs types de modèles sont ceux qui vous permettent de choisir le niveau de détail
que vous désirez, selon la personne qui analyse le modèle et ce que cette personne a
besoin de voir. Un analyste ou un utilisateur final voudront se concentrer sur la solution; un
développeur va vouloir se concentrer sur comment la solution est obtenue. Ces deux
intervenants voudront visualiser un système à différents niveaux de détail à des moments
différents.
Dans les techniques d’analyse structurée le fait qu’il y a un décalage fondamental entre le
modèle d’analyse et le modèle de conception d’un système. A défaut de combler ce gouffre,
le système conçu et le système construit en viendront à diverger au fil du temps. Dans les
systèmes orientés objet, il est possible de se connecter toutes les vues presque indépendants
d’un système en un seul ensemble sémantique.
Aucun modèle n’est autosuffisant. Chaque système est mieux représenté par un petit
ensemble de modèles quasi indépendants.
Pour comprendre l’architecture du système logiciel orienté objet, vous avez besoin d’avoir des
aperçus complémentaires et inter liés: un cas d’utilisation (exposant les exigences du système),
un aperçu de la conception (capturant le problème et la solution), un aperçu des processus
(modélisation de la distribution des processus et des threads du système), un aperçu de
l’implémentation (concernant la réalisation physique du système), et un aperçu du déploiement
(qui met l’accent sur les questions d’ingénierie système). Chacune de ces vues peuvent
représenter des aspects structurels ou fonctionnels. Ensemble, ces vues représentent le plan
du logiciel.
Conclusion
Cette activité s’est évertuée à vous faire comprendre les réels motifs de la modélisation et ses
différents principes sans oublier de donner avant tout l’historique du langage UMSL et sa définition.
Evaluation
i. Visualiser
ii. Spécifier
iii. Construire
iv. Documenter
38
Unité 2: Principes de Base en UML
Présentation
1. Diagramme de classe
2. Diagramme d’objets
4. Diagramme de Séquence
5. Diagramme de collaboration
7. Diagramme d’activités
8. Diagramme de composants
9. Diagramme de Déploiement
• Diagramme de classes
• Diagramme d’objets
• Diagramme de composants
• Diagramme de Déploiement
39
L’analyse et la Conception Orientées-Objets
Les interactions entre les classes se répartissent en quatre grandes catégories (décrits
précédemment).
• Association
• Héritage encore appelé généralisation
• Composition
• Agrégation
Les diagrammes de classes donnent un aperçu de la conception statique d’un système. Ils sont
utilisés à l’étape de l’analyse ainsi qu’à la conception. Les diagrammes de classes sont utilisés
pour créer le modèle conceptuel lequel est compréhensible par quiconque. Associé aux cas
d›utilisation, un schéma conceptuel est une technique puissante dans l›analyse des besoins. La
figure 2.2 montre un exemple d’un diagramme de classe.
40
Unité 2: Principes de Base en UML
Les diagrammes d’objets montrent un ensemble d’objets et leurs relations. Ce sont des
captures instantanées d’éléments trouvés dans les diagrammes de classes. La figure 2.3 montre
un exemple d’un diagramme d’objets.
41
L’analyse et la Conception Orientées-Objets
Les cas d’utilisation sont des techniques polyvalentes et utiles pour décrire les besoins des
utilisateurs. Un cas d’utilisation est une description de haut niveau d’une exigence majeure
de l’utilisateur. Elle représente la fonctionnalité du système. Il est décrit le comportement du
système du point de vue de l’utilisateur et constitue une interaction avec le système initié par
un utilisateur ou un autre système.
i. Cas d’utilisation
L’acteur représente un utilisateur du système, ou tout autre système externe qui interagit avec
le système.
Le cas d’utilisation représente une fonctionnalité qui est importante pour l’utilisateur. La plupart
du temps, nous voyons l’acteur comme un utilisateur humain, mais il peut aussi représenter un
système ou un autre artefact non humain
42
Unité 2: Principes de Base en UML
La notation « Extends » étend les fonctionnalités d’un cas d’utilisation pour gérer des erreurs
ou des exceptions. La relation « Extends » est utilisée quand il y a un cas d’utilisation qui est
similaire à un autre, mais en fait un peu plus. La relation est dessinée comme une ligne avec
une flèche pointant vers le principal cas d’utilisation.
La relation « include »
Une relation « include » peut être utilisée pour faire un cas d’utilisation complexe à partir de
cas plus simples.
43
L’analyse et la Conception Orientées-Objets
Les Diagrammes de cas d’utilisation sont utilisés à plusieurs fins. Ils fournissent:
Un scénario est une description d’un cas d’utilisation. C’est le récit de l’interaction d’un
utilisateur avec le système. Il peut être décrit en termes:
• D’acteurs impliqués
• De mesures à prendre afin de parvenir à la fonctionnalité décrite dans le titre du
cas d’utilisation. (Les cas d’utilisation portent sur les fonctionnalités, alors assurez-
vous que le titre reflète certaines fonctionnalités.)
• Les étapes prennent généralement la forme de l’écoulement normal des
événements, suivi par les flux alternatifs et / ou des flux d’exception.
Exemple:
Dans un système bancaire ATM, un cas d’utilisation serait “Valider l’utilisateur”. Les étapes
impliquées dans l’authentification d’un utilisateur sont décrits dans les scénarios. Il y aura un
certain nombre de scénarios pour “Valider l’utilisateur”, décrivant différentes situations qui
peuvent survenir.
44
Unité 2: Principes de Base en UML
Le flux principal d’événements pour le cas d’utilisation “valider l’utilisateur” pourrait être:
Scénario principal
Scénario alternatif
• Ils décrivent tous les deux le flux de messages entre des objets.
• Ils sont très utiles pour décrire le flux de procédure à travers les objets.
• Ils décrivent les interactions entre les objets et leurs relations, y compris les
messages qui peuvent être envoyés entre eux
• Les Diagrammes d’interaction abordent l’aspect dynamique d’un système
• Ce sont des modèles qui décrivent comment un groupe d’objets collaborent
Un diagramme de séquence est un diagramme d’interaction qui met l’accent sur la
chronologie des messages. Les Diagrammes de Séquence se concentrent sur l’ordre dans
lequel les messages sont envoyés. Ils fournissent un plan séquentiel de passage de messages
entre les objets au fil du temps. Les diagrammes de séquence sont induits par les cas
45
L’analyse et la Conception Orientées-Objets
d’utilisation qui sont les exigences du système. Ici, les objets sont représentés par des lignes
verticales et les messages comme des lignes horizontales entre eux. La séquence de messages
se lit de gauche à droite et du haut vers le bas. Les diagrammes de séquence décrivent
«comment» le système accomplira “ce que” nous avons décrit dans les cas d’utilisation.
Une classe
46
Unité 2: Principes de Base en UML
Figure 2.8: Un diagramme de séquence pour le Cas d’utilisation “faire une tasse de thé”
Lors de la création des diagrammes de collaboration, des motifs sont utilisés pour justifier les
relations. La figure 2.9 montre un exemple d’un diagramme de collaboration.
47
L’analyse et la Conception Orientées-Objets
Le diagramme d’état-transition est un diagramme qui montre tous les états possibles qu’un
objet peut occuper. Certains objets peuvent à un moment donné être dans un certain état. Un
diagramme d’état-transition ou simplement un diagramme d’état comprend des Etats, des
transitions, des événements et des activités. Les diagrammes états-transitions traitent de la
vision dynamique d’un système. Les diagrammes états-transitions en UML ne sont nécessaires
que si un objet a une réaction différente suivant son état. Figure 2.10 montre un exemple d’un
diagramme d’états.
Un diagramme d’activités est un diagramme d’états spécial qui montre le déroulement des
activités à l’intérieur d’un système. Ils sont utilisés pour montrer comment les différents flux ou
processus dans un système sont construits, par quoi ils commencent, les nombreux sentiers de
décision qui peuvent être empruntés du début à la fin et les niveaux où il pourrait y avoir de
traitement parallèle lors de l’exécution.
48
Unité 2: Principes de Base en UML
49
L’analyse et la Conception Orientées-Objets
la vue statique d’une architecture. Ils sont liés aux diagrammes de composants dans le sens où
un nœud renferme généralement un ou plusieurs composants.
Conclusion
Dans cette activité nous avons vu comment donner l’aperçu d’un système informatique à
travers différents diagrammes UML. Les principaux diagrammes UML permettent de répondre
certaines questions importantes à savoir :
Evaluation
i. Dressez la liste des diagrammes qui sont essentiels pour chacune de ces
activités.
50
Unité 2: Principes de Base en UML
2. Choisissez la meilleure réponse:
a. Le diagramme de classes:
c. Le diagramme de collaboration:
3. Quel est le rôle des diagrammes suivants dans la conception orientée objet?
i. Diagramme de classe
51
L’analyse et la Conception Orientées-Objets
Présentation
UML est un langage et possède les attributs d’un langage. Ainsi, étant graphique, UML permet
de visualiser le système réalisé ; le modèle est divisé en vues sélectionnant les éléments
pertinents puis en diagrammes de différents types. L’aspect graphique de UML retient
l’attention de ses utilisateurs. Comme pour tout langage, les éléments du langage sont définis
de manière précise, complète et sans ambiguïté.
Le modèle « 4+1 » vues, dit de Kruchten, d’un système informatique permet d’organiser la
description du système en plusieurs vues complémentaires, chacune présentant le système
selon un point de vue différent. L’utilisation de vues permet de traiter séparément les intérêts
des divers groupes d’intervenants (architectes, utilisateurs, développeurs, chefs de projets,
etc.) et ainsi de mieux séparer les préoccupations fonctionnelles (le domaine d’application ou
métier ciblé par le système, par exemple la banque ou le contrôle aérien) et les préoccupations
extrafonctionnelles (les propriétés techniques telles que la sûreté de fonctionnement).
Détails de l’activité
2.3.1 La Modélisation
52
Unité 2: Principes de Base en UML
1. La description d’un cas d’utilisation (scénario) permet de découvrir les objets qui
doivent interagir (par l’envoi de messages et les fonctions effectuées) pour produire
la fonctionnalité requise
3. Enfin, nous examinons chaque classe à tour de rôle afin d’identifier les aspects
comportementaux du système en utilisant les diagrammes d’états ou les
diagrammes de séquence / de collaboration
5. Pendant une bonne partie de réévaluation et de réglage fin, ces modèles nous
permettent de créer un modèle de conception du système
53
L’analyse et la Conception Orientées-Objets
La classification des documents UML en se basant sur le SDLC est indiquée dans le tableau 2.1
Phase de
Statique Comportementale
développement
Cas d’utilisation
Besoins
Cas d’utilisation de haut niveau
Diagramme de classes
conceptuel ou de domaine
Contrats d’exploitation
Conclusion
Cette activité expose les différentes vues distingués lors de la modélisation. Une classification
des différents diagrammes UML selon ces différentes vue a été proposée.
Evaluation
Citez les différentes vues du modèle Kruchten et expliquez brièvement ce qui s’y passe.
54
Unité 2: Principes de Base en UML
Résumé de l’unité
L’UML est un langage graphique pour capter les artefacts de développements logiciels. Ce
langage nous fournit un ensemble de symboles afin de produire des modèles. UML est
en train d’être adopté comme un langage de modélisation universel dans l’industrie de
développement. L’UML a été conçu à l’origine à Rational Corp. par les trois associés
précédemment cités dans l’introduction. Le langage est très riche, et comporte de nombreux
aspects des bonnes pratiques du génie logiciel.
Évaluation de l’unité
• Ariadne Training (2001), “UML Applied Object Oriented Analysis and Design
Using the UML”, Ariadne Training Limited
• Larman C. (2004), “Applying UML and Patterns: An Introduction to Object-
Oriented Analysis and Design and Iterative Development”, (3rd Edition) 3rd
Edition, Prentice Hall; 3 edition (October 30, 2004), ISBN-13: 978-0131489066
• Liu Z., (2001), “Object-Oriented Software Development Using UML”, The United
Nations University, UNU-IIST International Institute for Software Technology, Tech
Report 229.
• Ojo A. and Estevez E., (2005), “Object-Oriented Analysis and Design with UML”,
Training Course, The United Nations University, UNU-IIST International Institute for
Software Technology, e-Macao Report 19, Version 1.0, October.
• Michael B., Rumbaugh J., “Modélisation et conception orientées objet avec UML
2 “, 2ème édition, Pearson Education France, 2005.
• Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème
édition, Eyrolles
• Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices
corrigés, Eni.
• Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex
, Pearson Education , 3ème édition, 2010
55
L’analyse et la Conception Orientées-Objets
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
Termes clés
L’analyse Plutôt que d’apporter une solution, l’analyse met
l’accent sur une enquête par rapport à un problème et sur
des besoins. Par exemple, si l’on souhaite informatiser le
système d’information d’une bibliothèque, comment s’y
prendrait-on ?
56
Unité 3: Analyse Orientée-Objet
Activités d’apprentissage
Présentation
Les besoins/exigences sont une description d’une fonctionnalité, d’un besoin ou d’une
condition qu’un utilisateur souhaite voir implémenter dans un système. Un besoin est:
Une caractéristique du système ou une description de quelque chose que le système est
capable de faire pour atteindre le but pour lequel il a été conçu.
Une affirmation sur laquelle toutes les parties prenantes s’accordent à dire qu’elle doit être
vérifiée pour que le problème du client soit résolu de façon adéquate.
La spécification des exigences doit être correcte et approfondie pour qu’un projet soit mené à
bien.
Nous prendrons le cas d’un point de vente pour illustrer les questions ci-après :
Détails de l’activité
La documentation des exigences est une activité très importante, qui se fait après que les
besoins soient collectés et analysés. Il s’agit de présenter les exigences dans un format
cohérent. C’est le cahier des charges. Ce document est une spécification pour un produit
logiciel particulier, un programme ou un ensemble de programmes qui remplissent certaines
fonctions dans un environnement spécifique.
Le cahier des charges est une description des besoins ou un désir exprimé pour un produit. Il
est la déclaration officielle de ce qui est requis du développeur du système. Les exigences
doivent être sans ambigüité et exprimées d’une manière que le client et les membres de
l’équipe de développement comprennent clairement.
57
L’analyse et la Conception Orientées-Objets
Il est recommandé que le cahier des charges incluse au minimum les éléments suivants:
Les documents suivants sont généralement produits par la collecte des informations :
Cette rubrique doit donner le but du projet. Cela devrait décrire la nécessité de construire le
système. Par exemple, le but de ce projet est de créer un système autonome pour la vente des
objets d’art de la boutique.
3.1.3 Objectifs
Le but de ce projet est de créer un terminal de point de vente pour gérer les ventes au
détail. Les objectifs décrivent comment le système s’inscrit dans la gestion ou dans les objectifs
stratégiques globaux de l’organisation qui acquiert le logiciel.
Les objectifs du terminal de point de vente peuvent être énoncés comme suit:
Note: La vue d’ensemble et les objectifs peuvent être combinées en une section
d’introduction dans le document.
58
Unité 3: Analyse Orientée-Objet
3.1.4 Glossaire
Le glossaire est la définition de tous les termes pertinents. Il est la clarification des termes
ambigus et des concepts, des explications de jargons, la description des événements métiers
ou la description des actions logicielles.
Remarque:
Les fonctions du système regroupent les choses qu’un système est censé faire. Il y a 2 grandes
catégories de besoins:
Besoins fonctionnels
Ce sont les aspects du système que le client est le plus susceptible de reconnaître.
Besoins non fonctionnels:
Besoins fonctionnels
Les exigences fonctionnelles décrivent l’interaction entre un système et son environnement. Ils
décrivent comment un système doit réagir dans certaines conditions. Pour vérifier que X est en
effet une fonction du système, il faut donner un sens à la phrase suivante:
Par exemple, “facilité d’utilisation” ne figure pas parmi les phrases de vérification. Ainsi, les
besoins de ce type ne devraient pas faire partie du cahier des charges fonctionnel.
Les fonctions du système doivent être classées dans l’ordre des priorités pour éviter de les
manquer. Les catégories comprennent:
59
L’analyse et la Conception Orientées-Objets
Chaque fonction doit avoir un numéro de référence qui peut être utilisé dans
d’autres documents au cours du développement,
Les tableaux 3.2 et 3.3 montrent les exigences fonctionnelles pour le système Terminal de
point de vente
60
Unité 3: Analyse Orientée-Objet
Exigences non fonctionnels
Les exigences non fonctionnelles du système, également connus sous le nom d’attributs du
système. Ce sont les contraintes imposées sur le système et les restrictions qui pèsent sur le
concepteur.
définir la façon dont un système est censé se comporter et sont souvent appelées
caractéristiques du système,
Ce sont les exigences qui précisent que le produit livré doit se comporter d’une
manière particulière, par exemple la vitesse d’exécution, la fiabilité, etc.
61
L’analyse et la Conception Orientées-Objets
Attribut Contraintes
Temps de Lors de l’enregistrement d’un article vendu, la
réponse description et le prix apparaissent dans les 5
secondes
métaphore d’in- Formulaires-métaphore windows et boîtes de
terface dialogue
Tolérance à la Enregistrer les paiements à crédit sur les
panne comptes des clients débiteurs dans les 24 heu-
res, même si l’alimentation en énergie ou un
dispositif tombe en panne
plate-forme de Microsoft Windows 2007 et 2008
système d’ex-
ploitation
Exigences Organisationnels
Exigences Externes
Exigences qui découlent de facteurs qui sont externes au système et à ses processus de
développement par exemple, les exigences d’interopérabilité, les exigences législatives, etc.
Vérifiable:
Complète :
Les exigences doivent être complètes, et ne rien omettre. Cela peut être très difficile
à réaliser, surtout dans les grands systèmes. Les tendances actuelles veulent que l’on
divise le développement en modules plus petits et implémenter chacun d’eux.
62
Unité 3: Analyse Orientée-Objet
Non ambigüe
Une exigence est ambiguë si elle a plus d’un sens. L’ambiguïté peut résulter d’un mauvais
choix de mots et / ou des définitions différentes pour un mot ou une phrase.
Cohérente
Toutes les parties du cahier de charges doivent être cohérentes. Elles ne doivent pas se
contredire les unes les autres.
Exemple de contradiction :
“Si vous supprimez une tâche toutes ses sous-tâches devrait être
supprimé automatiquement” ;
Modifiable
Les exigences devraient être structurées de telle sorte qu’il soit possible de les modifier à
moindre coût. Ceci nécessite qu’elles soient structurées avec soin, par exemple, en séparant
les exigences fonctionnelles des exigences non fonctionnelles, en fournissant un glossaire (une
table de définitions),….
Traçable
Les exigences doivent être structurées de sorte qu’il soit possible de les identifier de manière unique.
Cela permet d’y faire référence dans les tests finaux du logiciel fourni, et dans les discussions
avec le client.
Evaluation
1. En considérant le cas des projets étudiants, proposés dans l’unité 0, effectuer les
tâches suivantes:
63
L’analyse et la Conception Orientées-Objets
Présentation
L’un des principaux objectifs de l’OO est de décomposer les exigences en concepts et en objets
dans le domaine d’application et de produire un modèle conceptuel. Une technique importante
pour aider à cette décomposition est de considérer les cas d’utilisation (description narrative des
processus de domaine en termes d›interactions entre le système et ses utilisateurs).
Détails de l’activité
Par exemple, pour mener à bien le processus d’achat dans un magasin quand un Terminal de
point de vente est utilisé :
Par conséquent, pour un utilisateur, un cas d’utilisation est une façon d’utiliser le système. Un
cas d’utilisation est décrit comme une séquence d’interactions entre des acteurs et le système
par lequel le système fournit un service aux acteurs. Chaque cas d’utilisation décrit une
partie des exigences fonctionnelles de certains utilisateurs. Tous les cas d’utilisation décrivent
ensemble les exigences fonctionnelles globales du système.
La première étape du recueillement des besoins est d’assimiler les besoins aux cas
d’utilisation. Tous les cas d’utilisation permettent aux développeurs de logiciels et au client de
se mettre d’accord sur les besoins, c’est-à-dire sur les conditions auxquelles le système doit se
conformer. UML fournit une notation simple pour représenter un cas d’utilisation.
Acteurs
Un cas d’utilisation ne peut pas initier des actions de lui-même. Un acteur est une entité
qui peut initier un cas d’utilisation. Un acteur représente un ensemble cohérent de rôles qui
sont des entités externes au système pouvant utiliser le système, plutôt qu’une personne en
particulier. Un acteur représente un type d’utilisateurs du système ou un système externe avec
lequel le système interagit.
64
Unité 3: Analyse Orientée-Objet
Un système ATM (un système de guichet bancaire automatique) interagit avec des utilisateurs
qui utiliseront le système pour retirer de l›argent à partir des comptes, déposer de l›argent
sur des comptes, et de transférer de l›argent entre les comptes. Ce type d’utilisateurs
est alors représenté par l’acteur Client de la Banque. Par conséquent, un modèle de
cas d’utilisation peut être utilisé pour représenter les trois cas d›utilisation retirer de
l’argent, déposer de l’argent, et transférer de l’argent qui sont associés à l›acteur Client de la
Banque comme le montre la figure 3.1.
Ainsi, les acteurs représentent des entités en dehors du système qui collaborent avec le
système. Une fois que nous avons énuméré tous les acteurs d’un système, nous avons ainsi
identifié l’environnement externe du système.
Pour la plupart des systèmes, un seul acteur peut interagir avec de nombreux cas d’utilisation,
et un seul cas d’utilisation peut être initié par de nombreux acteurs différents. Prenant
l’exemple du cas Terminal de point de vente, la figure 3.2 montre un système complet décrit à
l’aide des acteurs et des cas d’utilisation.
65
L’analyse et la Conception Orientées-Objets
Ariane (2001) indique clairement qu’il peut être difficile de se prononcer sur la granularité
des cas d’utilisation dans un scénario particulier. Est-ce que chaque interaction utilisateur-
système est un cas d’utilisation ? ou est-ce qu’un cas d’utilisation englobe toutes les
interactions? Prenons l’exemple du système ATM dans la figure 3.3 qui permet à un utilisateur
de retirer de l’argent, nous pouvons avoir les interactions suivantes:
• Entrez carte
• Entrez le Code PIN
• Sélectionnez un montant
• Confirmer montant
• Retirer carte
• Prendre le reçu
…
66
Unité 3: Analyse Orientée-Objet
Est-ce que chacune de ces étapes, par exemple “entrer le numéro PIN” est un cas d’utilisation?
Ceci est une erreur classique dans la construction de cas d’utilisation. Ici, nous avons généré
un grand nombre de petits cas d’utilisation presque sans importance. Dans tout système non
trivial, nous nous retrouverions avec un grand nombre de cas d’utilisation, et la complexité du
système deviendrait écrasante.
Pour gérer la complexité d’un système aussi large soit-il, nous devons garder les cas
d’utilisation à un assez “haut niveau”. La meilleure façon est de garder la règle qui suit à
l’esprit.
Si nous appliquons cette règle simple à notre exemple ci-dessus, nous pouvons
poser la question suivante :
Est-ce que “prendre un reçu», par exemple, est un objectif pour notre client? Eh
bien pas vraiment. Ce ne sera pas la fin du monde si le reçu n’a pas été délivré.
Appliquez maintenant la règle aux autres cas d’utilisation, et vous verrez que
vraiment, aucun d’entre eux ne décrit l’objectif de l’utilisateur. Le but de l’utilisateur
dans ce cas est de « retirer de l’argent”, et cela devrait être le cas d’utilisation!
67
L’analyse et la Conception Orientées-Objets
Figure 3.4: Un diagramme de cas d’utilisation plus ciblée pour le système d’ATM
Il est nécessaire de mener une réflexion poussée et d’examiner le cahier des charges afin
d’identifier les cas d’utilisation :
Pour identifier les cas d’utilisation, il faut poser et répondre à un certain nombre de questions,
telles que :
Acteur Processus
La Connexion, Décon-
caissière nexion
Client Acheter des arti-
cles, Retourner des
articles
68
Unité 3: Analyse Orientée-Objet
Lorsque nous utilisons les méthodes indiquées dans le paragraphe ci-dessus pour identifier
un cas d’utilisation, nous créons d’abord un cas d’utilisation de haut niveau pour obtenir
une certaine compréhension de l’ensemble du processus, puis nous le développons en y
ajoutant plus de détails. Un cas d’utilisation de haut niveau décrit un procédé très brièvement,
généralement en deux ou trois phrases. Ils ne sont souvent concernés que par les événements
auxquels les acteurs participent. Il est décrit sous la forme suivante dans le tableau 3 .5:
Tableau 3.6: Description de haut niveau pour le Cas d’utilisation “Achat d’ar-
ticles en payant en espèce “
Cas d’utilisation:
achat des articles en payant en espèce
le cas d’utilisation est créé par une meilleure compréhension de ces fonctions,
69
L’analyse et la Conception Orientées-Objets
il est possible de vérifier que toutes les fonctions du système ont été allouées à
des cas d’utilisation,
Toutes les fonctions du système et les cas d’utilisation peuvent être repérées au
cours de l’implémentation et des tests.
Cas d’utilisation étendu
Par exemple dans le tableau 3.8, le cas d’utilisation haut niveau « Achat d’articles en payant
en espèce » dans le système Terminal de point de vente peut être développé avec les deux
sections de la manière suivante.
70
Unité 3: Analyse Orientée-Objet
Parcours alternatifs:
Chaque cas d’utilisation contient un ensemble complet de détails textuels sur les interactions
et les scénarios qu’il contient. Le tableau 3.9 montre le modèle pour une description de cas
d’utilisation:
Flux principal: Une liste des interactions du système qui ont lieu dans
le cadre du scénario le plus courant. Par exemple, pour
«retirer de l’argent”, ce serait “entrer carte, entrer le
code PIN, etc.”
71
L’analyse et la Conception Orientées-Objets
Tous les acteurs et les cas d’utilisation d’un système constituent un modèle de cas
d’utilisation qui décrit comment les cas d’utilisation sont liés les uns aux autres et aux acteurs,
et spécifie les exigences fonctionnelles du système. Un diagramme de cas d’utilisation décrit le
cadre du modèle de cas d’utilisation et illustre un ensemble de cas d’utilisation d’un système,
les acteurs, et la relation entre les acteurs et les cas d’utilisation.
une ligne entre un acteur et un cas d’utilisation signifie que l’acteur initie et / ou participe au
processus.
Une relation include peut être utilisée pour former un grand cas d’utilisation à partir de
cas plus simples.
Une relation extend est utilisée dans des cas où un cas d’utilisation peut être élargi en option
par une fonctionnalité dans un autre cas d’utilisation.
La notation “extend” étend les fonctionnalités d’un cas d’utilisation pour prendre en compte
des erreurs ou des exceptions. La relation est dessinée comme une ligne avec une flèche
pointant vers le principal cas d’utilisation comme le montre la figure 3.5. Vous utilisez la
relation “extend” lorsque vous avez un cas d’utilisation qui est semblable à un autre, mais en
fait un peu plus.
72
Unité 3: Analyse Orientée-Objet
Toutefois, si le point de décision présente des alternatives qui sont tous relativement
égale et normale dans leur probabilité, alors nous devons les considérer comme des cas
d’utilisation individuels et ils peuvent être utilisés par un cas d’utilisation principal, en utilisant
des relations uses comme dans la figure 3.6.
73
L’analyse et la Conception Orientées-Objets
Les activités et artéfacts de l’analyse de cas d’utilisation peuvent être résumés comme suit:
• Après que les fonctions du système aient été répertoriés, identifier les acteurs et
les cas d’utilisation.
• Ecrire tous les cas d’utilisation dans le format de haut niveau. Vous pouvez, les
classer comme primaire, secondaire ou facultatif.
• Dessiner un diagramme de cas d’utilisation pour le système.
• Etablir des relations entre les cas d’utilisation et les illustrer dans le diagramme de
cas d’utilisation.
• Ecrire les cas les plus critiques, influents et risqués dans le format élargi pour
mieux comprendre la nature et de la taille du problème. Différer la rédaction
de la forme élargie des cas d’utilisation les moins critiques jusqu’à ce que la
conception ou la mise en œuvre commence.
• Idéalement, les cas d’utilisation réels devraient être reportés jusqu›à la phase de
conception d›un cycle de développement, puisque leur création implique des
décisions de conception. Cependant, il est parfois nécessaire de créer certains
cas réels au cours de la phase d’exigence en cas où :
• Les descriptions concrètes aident considérablement la compréhension.
• Les clients demandent que l’on décrive leurs processus de cette façon.
• Vous pouvez, classer les cas d’utilisation afin de planifier quel cas devrait être
dans la phase de conception ou la phase de mise en œuvre.
En utilisant les techniques de la présente section, une liste (non exhaustive) des acteurs
concernés et des cas d’utilisation est répertoriée ans le tableau 3.10 :
74
Unité 3: Analyse Orientée-Objet
Les raisons pour lesquelles les cas d’utilisation sont utiles pour une la collecte des besoins sont:
Ils ne répondent pas seulement à la question de ce que le système doit faire, mais y répondent
en termes de ce que le système doit faire pour chaque utilisateur/acteur. Ils identifient donc les
fonctions que le système fournit pour ajouter de la valeur à ses utilisateurs, et aident à éliminer
les fonctions qui n’ajoutent pas de la valeur aux utilisateurs.
Ils permettent la communication entre le client et les développeurs (puisque le schéma est très
simple, tout le monde peut le comprendre)
Ils identifient les fonctions du système et la relation entre les fonctions du système.
Ils identifient également les concepts et les objets impliqués dans le domaine
d’application. Ces concepts et objets sont très importants dans la modélisation de
l’architecture du système, et sont par la suite réalisés dans la conception sous la forme de
classes et d’objets logiciels.
Les cas d’utilisation sont très semblables aux exigences/besoins, mais les exigences/besoins
ont tendance à être vagues, confus, ambigus et mal écrits, alors que les cas d’utilisation sont
beaucoup plus ciblés.
La «somme» des cas d’utilisation est l’ensemble du système. Tout ce qui n’est pas couverts par
un cas d’utilisation est en dehors de la limite du système à développer. Donc le diagramme de
cas d›utilisation ne comporte pas d’omission.
Conclusion
Les cas d’utilisation sont un puissant moyen pour modéliser ce dont le système a besoin. Un
cas d’utilisation est une description de bout en bout de l’utilisation du système pour exécuter
une tâche, et non une combinaison quelconque d’un certain nombre d’étapes de calcul. Nous
devons garder à l’esprit, la granularité des cas d’utilisation pour contenir la complexité.
75
L’analyse et la Conception Orientées-Objets
Evaluation
i. << Extend>>
2. La tâche de la saisie et l’analyse des exigences est difficile et complexe pour une
variété de raisons.
ii. Tout système a de nombreux utilisateurs (ou types d’utilisateurs), alors que
chaque utilisateur peut savoir ce qu’il ou elle fait.
iii. Très souvent, les utilisateurs ne savent pas quelles sont les exigences ou
comment les spécifier de manière précise.
3. Quelles sont les différences et les relations entre les fonctions du système et les
cas d’utilisation? Comment peuvent-ils être identifiés?
ii. Identifier les acteurs liés à chacun des cas d’utilisation identifiés dans (a)
iii. Fournir les spécifications de cas d’utilisation pour les cas d’utilisation figurant
dans la tâche (b). Sélectionnez seulement quatre cas d’utilisation clés qui reflètent les
principales tâches de votre projet.
iv. Fournir un modèle de cas d’utilisation pour montrer les relations entre les
acteurs et tous les cas d’utilisation de votre système
Remarque: Quatre principaux cas d’utilisation sélectionnés seront utilisés dans les étapes
suivantes du processus de développement de logiciels.
76
Unité 3: Analyse Orientée-Objet
Une activité importante et typique dans l’analyse des besoins orientée objet est d›identifier
les concepts liés aux exigences et de créer un modèle conceptuel du domaine. Le
terme domaine couvre la zone de l’application, dans lequel nous travaillons ; par exemple, le
magasin dans notre étude de cas du système Terminal de point de vente.
La modélisation conceptuelle (parfois appelé modélisation des domaines) est l’activité qui
consiste à découvrir quels concepts sont importants pour le système. Ce processus nous aide
à mieux comprendre le problème, et à développer une meilleure connaissance de l’activité de
notre client.
Chaque exemple particulier qui applique le concept est appelé une instance de ce
concept. Par exemple, le symbole Module tel qu›il est appliqué dans certaines universités est
un concept :
• Qui a le sens de “ représenter un cours offert dans le cadre d’un diplôme dans
cette université “ ayant un code, un titre, et un nombre de crédits, etc…
• L’extension de tous les modules offerts à l’université.
En UML, les termes de classe et de type sont utilisés, mais pas le terme concept. Nous
pouvons échanger ces termes dans la mesure où nous savons bien que nous sommes
à l’étape de l’analyse des besoins et nous comprenons et nous étudions le domaine du
problème. Chaque instance d’une classe est appelée un objet de la classe. Par exemple,
pour une classe appelée «étudiant», JahnSmith et JaneBrown sont des instances de la classe
«étudiant». Par conséquent, une classe définit un ensemble d’objets.
Les notions de classe et d’objet sont liées entre elles étant donné que l’un ne peut pas exister
sans l’autre, et que tout objet appartient à une classe.
77
L’analyse et la Conception Orientées-Objets
• Un objet est une entité concrète - qui existe dans l’espace et le temps (propriété
persistante des objets);
• Une classe est une abstraction d’un ensemble d’objets.
La définition UML d’une classe est “une description d’un ensemble d’objets qui partagent
les mêmes attributs, opérations, méthodes, relations et sémantique”. Cela couvre les classes
utilisées à toutes les étapes dans un processus de développement OO.
La première consiste à trouver des concepts à partir des descriptions textuelles du domaine
du problème selon la liste des catégories de concept. Les concepts et objets (choses) peuvent
être divisés en différentes catégories en fonction de la nature de leurs instances. La liste des
catégories de conception dans le tableau 3.11 a été trouvé utile dans l’identification des
concepts.
78
Unité 3: Analyse Orientée-Objet
Cette stratégie consiste à créer une liste de concepts candidats par rapport aux exigences
de la description du client, des rapports d›enquête initiale, les définitions des fonctions du
système, et les cas d›utilisation. Une autre technique simple et utile pour l’identification des
concepts est d’identifier le nom et syntagmes nominaux dans les descriptions textuelles d’un
domaine de problème, et les considérer comme des concepts ou des attributs candidats.
Attention:
Des précautions doivent être prises si ces méthodes sont utilisées; la correspondance
mécanique nom pour nom des concepts n’est pas possible, les mots dans les langues
naturelles sont ambigus, et les catégories conceptuelles peuvent comprendre des concepts
qui sont soit attributs, des événements ou des opérations qui ne devraient pas être modélisés
comme des classes. Nous devrions nous concentrer sur les objets / classes impliquées dans
la réalisation des cas d›utilisation.
Considérer notre cas du système Terminal de vente, des cas d’utilisation Acheter des articles
en payant en espèces. Nous pouvons identifier quelques phrases nominales comme le montre
la figure 3.7. Certains des syntagmes nominaux dans le cas d’utilisation sont des concepts
candidats; certains peuvent être des attributs de concepts.
79
L’analyse et la Conception Orientées-Objets
Les lignes directrices suivantes sont utiles pour identifier les concepts:
Multiplicité
En ce qui concerne une association entre les classes, une information importante est de savoir
comment le nombre d’objets d’une classe (dite “A”) peut être associée à un objet d’une autre
classe (dite “B”), à un moment donné. Nous utilisons la multiplicité pour représenter cette
information. Un exemple montre les expressions de multiplicité et leur signification.
80
Unité 3: Analyse Orientée-Objet
Les objets peuvent avoir plusieurs sortes de relation, et les classes (ou concepts) peuvent
avoir toutes sortes d’associations dans un domaine de problème donné. Une association doit
remplir les objectifs suivants.
Seuls les objets qui sont associés entre eux peuvent collaborer les uns avec les autres à travers
les liens.
Le rôle d’une liaison entre les objets peut être décrit comme suit:
“Un lien représente l’association spécifique par lequel un objet (le client) applique
les services d’un autre objet (le fournisseur), ou par lequel un objet peut accéder
à un autre objet”.
81
L’analyse et la Conception Orientées-Objets
Voici quelques associations hautement prioritaires qu’il est important d’inclure dans un modèle
conceptuel:
Nous pouvons maintenant ajouter des associations au modèle conceptuel du système Terminal
de point de vente créé dans la section précédente comme indiqué dans la figure 3.9.
82
Unité 3: Analyse Orientée-Objet
Chaque instance d’un concept peut avoir des propriétés utiles. Par exemple, une vente
a une date et une heure; un module a un code, un titre, et un certain nombre de crédits,
un étudiant a un nom et un âge, etc. Un attribut de classe est l›abstraction d›une seule
caractéristique ou une propriété d›entités ayant été extraites comme objets de la classe. À
tout moment, l›attribut d›un objet donné dans la classe est une valeur logique de données
représentant la propriété correspondante de l›objet, et est appelé la valeur de l’attribut
de l’objet à ce moment. Ainsi, un objet a exactement une valeur pour chaque attribut à un
moment donné. Par conséquent, la valeur d’un attribut d’un objet peut changer au fil du
temps. Par exemple,
le temps et la date sont des attributs de la classe vente, et une instance
de vente peuvent être une vente a lieu à 13h30 le 1/01/2016.
83
L’analyse et la Conception Orientées-Objets
Garder l’attribut simple
Les attributs dans un modèle conceptuel doivent de préférence être simples ou des types de
données pures :
Intuitivement, les types des attributs les plus simples sont ce qu’on considère
comme types primitifs de données: booléen, date, numérique, String (texte),
Temps.
Les attributs ne doivent pas être utilisés pour relier les concepts dans le modèle conceptuel,
mais pour stocker des informations sur les objets eux-mêmes. La violation la plus courante
de ce principe consiste à ajouter une sorte d’attribut de clé étrangère, comme on le fait
habituellement en faisant la conception des bases de données relationnelles, afin d›associer
deux types. Par exemple, l›attribut NumeroTerminalActuel dans la classe Caissier illustré par la
figure 3.10 est indésirable parce que son but est de relier la classe Caissier à la classe Terminal.
La meilleure façon d›exprimer qu›un caissier utilise un Terminal est une association, et non avec
un attribut clé étrangère.
84
Unité 3: Analyse Orientée-Objet
Le modèle conceptuel doit être créé en enquêtant sur le fonctionnement du système, les cas
d’utilisation et d’autres rapports initiaux sur le domaine. Les modèles conceptuels ne sont pas
des modèles de conception de logiciel, tels que les classes Java ou C++. Par conséquent, un
modèle conceptuel peut montrer les éléments suivants :
• concepts
• associations entre concepts
• les attributs des concepts.
Conclusion
Cette activité vous a permis de comprendre comment mettre en place un modèle conceptuel.
Vous avez pour faire la différence entre un certain nombre de concepts importants comme
classes, objets, attributs, association, etc. L’accent a été mis sur les stratégies à utiliser pour
identifier, les concepts, les attributs. Des règles ont été énoncées pour la mise en place des
associations entre deux classes.
Evaluation
Identifier des classes dans le problème suivant. Pour chaque classe, identifier leurs attributs
(membres de données)
Une station météorologique est un ensemble de logiciels contrôlé qui recueille des données,
effectue des traitements sur ces données et transmet ces données pour un traitement
ultérieur. Les instruments comprennent des thermomètres aériens et terrestres, un anémomètre,
une girouette, un baromètre et un pluviomètre. Les données sont recueillies toutes les cinq
minutes. Les stations météorologiques transmettent leurs données à un ordinateur d’une zone
donnée en réponse à une demande provenant de ce dernier. L’ordinateur de la zone rassemble
les données recueillies et l’intègre avec des rapports provenant d’autres sources telles que les
satellites et les navires. Il génère ensuite un ensemble de cartes météorologiques locales.
85
L’analyse et la Conception Orientées-Objets
“Le client d’une banque doit être en mesure de déposer un montant dans son compte et d’en
retirer en utilisant un écran tactile (ATM). Chaque transaction doit être enregistrée, le client doit
être en mesure d’examiner toutes les transactions effectuées dans le compte. L’enregistrement
des transactions doit tenir compte de la date, du type, de la quantité et du solde du compte
après la transaction. Un client peut avoir deux types de compte - un compte courant et un
compte d’épargne. L’accès à l’interface ATM est fourni par un code PIN de 4 chiffres entiers de
0 à 9.Dessinez un schéma conceptuel et fournir trois attributs clés pour chaque classe définie.
Présentation
Vous avez besoin d’identifier les opérations que le système doit effectuer et dans
quel ordre le système a besoin d’effectuer ces opérations pour mener à bien un
cas d›utilisation, et l›effet d›une telle opération sur le système, c’est-à-dire sur les
objets du système.
Détails de l’activité
3.4.2 Evénements d’entrée du système et opérations du Système
Au cours des interactions dans toute réalisation, les acteurs génèrent des événements système,
et demandent au système d’effectuer certaines opérations en réponse. Les événements
générés par les acteurs sont très étroitement liés à des opérations que le système peut
effectuer. Cela implique que vous aviez identifié les opérations de système en identifiant les
événements que les acteurs génèrent.
Une opération système est une opération que le système exécute en réponse à un événement
d’entrée du système. Certaines opérations du système génèrent également des événements
86
Unité 3: Analyse Orientée-Objet
de sortie aux acteurs pour aller vers le prochain événement système qu’un acteur peut
effectuer.
L’Appelant raccroche
87
L’analyse et la Conception Orientées-Objets
Figure 3.11: Diagramme de la trace des évènements systèmes du Téléphone pour le cas
d’utilisation “ Faire des appels téléphoniques “ (Source: Liu, (2001))
À la phase d’analyse des besoins, il est nécessaire de définir le système en le traitant comme
une boîte noire de sorte que le comportement est une description de ce qu›un système fait,
sans expliquer comment il le fait. Par conséquent, nous sommes principalement intéressés par
l’identification et l’illustration des opérations système qu›un acteur demande au système. Cela
signifie que nous sommes intéressés à trouver les événements d›entrée du système en
inspectant les cas d›utilisation et leurs scénarios.
Par exemple, le parcours typique des événements dans le cas d’utilisation Faire des
appels téléphoniques indique que l’appelant et l’appelé génèrent les événements
d’entrée du système qui peuvent être désignés par décrocher, composerNumTelephone,
repondreTelephone, raccrocher. D’une manière générale, un événement prend des paramètres.
Pour identifier les opérations système, nous pouvons également utiliser un diagramme de
trace pour montrer, pour un parcours particulier d’événements au sein d’un cas d’utilisation, les
acteurs externes qui interagissent directement avec le système, le système (comme une boîte
noire), et les événements d’entrée du système que les acteurs génèrent. Et nous appelons un
tel diagramme de trace simplifiée un diagramme de séquence du système. Un diagramme de
séquence du système pour le cas d’utilisation Faire des appels téléphoniques peut être illustré
comme dans la Figure 3.12.
88
Unité 3: Analyse Orientée-Objet
Figure 3.12: Diagramme de séquence du système téléphonique pour le cas d’utilisation “Faire
des appels téléphoniques”
Un diagramme de séquence du système doit être fait pour le parcours typique des
événements du cas d’utilisation, et peut-être pour les parcours alternatifs les plus intéressants.
Conclusion
Dans cette activité, vous avez appris comment représenter le comportement du système par le
biais d’un diagramme de séquence des opérations du système, à partir d’un cas d’utilisation.
Evaluation
89
L’analyse et la Conception Orientées-Objets
Résumé de l’unité
La phase d’analyse du développement logiciel met l’accent sur la compréhension des
exigences, des concepts et des opérations liées au système. Les enquêtes et l’analyse sont
souvent caractérisées comme se concentrant sur les questions de : Quels sont les processus,
les concepts, les associations, les attributs, les opérations.
Dans cette unité, vous avez exploré quelques artéfacts utiles qui peuvent être utilisés pour
capturer les résultats d’une enquête et d’analyse et qui se résument comme suit :
Modèle conceptuel Quels sont les concepts, les associations et les attributs?
Évaluation de l’unité
1. Exprimez en UML qu’un étudiant peut suivre jusqu’à six modules, et que
au plus 25 élèves peuvent être inscrits pour chaque module.
2. Exprimez en UML qu’un module fait partie d’une formation ; qu’une roue
fait partie d’un véhicule, qu’un employé est un membre d’une équipe.
La compagnie Total (T) Ltd souhaite informatiser son système de pompes à essence. Le
programme qui sera conçu doit commencer dans un état d’attente. En appuyant sur une
touche, il y aura une demande pour mettre le bout de la pompe dans le réservoir d’essence. Il
90
Unité 3: Analyse Orientée-Objet
existe quatre types de carburant disponible: le GPL à un coût de 800 shillings tanzaniens par
litre. Le « Sans plomb » à un coût de 700 shillings tanzaniens par litre. Le Diesel à un coût
de 850 shillings tanzaniens par litre et le « super sans plomb » a un coût de 900 shillings
tanzaniens par litre. Votre programme doit permettre à l’utilisateur de sélectionner le type de
carburant nécessaire. L’utilisateur doit être en mesure d’annuler la transaction avant et pendant
la saisie du montant et doit pouvoir entrer la quantité de carburant nécessaire. Pour des
raisons de sécurité seulement un maximum de 50 litres peut être livré en une fois.
Liu Z., (2001), “Object-Otiented Software Development Using UML”, The United Nations
University, UNU-IIST International Institute for Software Technology, Tech Report 229.
Ojo A. and Estevez El., (2005), “Object-Oriented Analysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
Pascal Roques, UML 2 par la pratique: Etudes de cas et exercices corrigés, 5ème édition,
Eyrolles
Fien Van der Heyde, Laurent Debrauwer, UML 2 : Initiation, exemples et exercices corrigés, Eni.
Benoît Charroux, Aomar Osmani, Yann Thierry-Mieg, “UML 2”, collection Synthex , Pearson
Education , 3ème édition, 2010
91
L’analyse et la Conception Orientées-Objets
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de :
Termes clés
Modèle GRASP Les modèles du GRASP sont une aide
d’apprentissage pour aider quelqu’un à comprendre l’essentiel
de la conception objet, et d’appliquer le raisonnement de la
conception à la méthodologie rationnelle, ainsi explicable. Ils
décrivent les meilleures pratiques, les meilleures conceptions,
et enregistrent l’expérience de manière à ce qu’il soit possible
à d’autres de réutiliser cette expérience. Cette approche basée
sur la compréhension et l’utilisation des principes de conception
utilise les modèles d’attribution de responsabilités.
92
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Activités d’apprentissage
Présentation
Un contrat pour les opérations du système décrit ce que l’opération du système fait, mais
ne montre pas la solution à comment les objets du logiciel vont travailler ensemble pour
remplir le contrat de l’opération. Ceci est plutôt spécifié dans l’élaboration des diagrammes
d’interaction en UML. Une tâche majeure de la phase de conception est de créer les
diagrammes d’interaction pour toutes les opérations du système.
Détails de l’activité
L’UML définit deux types de diagrammes d’interaction, chacun pouvant être utilisés pour
exprimer des messages d’interactions similaires ou identiques :
Lors du dessin des diagrammes devant être publiés sur des pages de faible largeur,
les diagrammes de collaboration ont l’avantage de permettre l’expansion verticale
pour de nouveaux objets . ’ajout d’objets additionnels dans un diagramme de
séquence doit se faire par la droite, ce qui est un facteur limitant. D’autre part,
dans les diagrammes de collaboration il est difficile de voir facilement la séquence
des messages.
93
L’analyse et la Conception Orientées-Objets
94
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
(montant payé)
Figure 4.2 : Diagramme de séquence objet pour l’opération effectuerPaiement (montant payé)
:Vente appel du constructeur de la classe Paiement pour créer un nouveau paiement new:
paiement
95
L’analyse et la Conception Orientées-Objets
Certains messages envoyés à un objet nécessitent une valeur qui doit être retournée à l’objet
émetteur. Une valeur retournée peut être montrée en faisant précéder le message du nom
d’une variable suivi d’un opérateur d’affectation (‘:=’) comme illustré dans la Figure 4.3. Le type
de la valeur retournée peut être affiché sur le plan opérationnel. La syntaxe standard pour le
message est :
Représentation de l’itération
Un objet peut envoyer plusieurs fois un message à un autre objet un certain nombre de fois.
Ceci est indiqué en préfixant le message avec un astérisque (‘*’) comme dans la figure 4.4.
96
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
L’ordre des messages est illustré avec des numéros de séquence, comme illustré dans la Figure
4.6. Le plan de numérotation est :
Parfois, un message peut être surveillé et peut être envoyé d’un objet à un autre uniquement
lorsqu’une condition est vérifiée. Ainsi, lors de l’exécution d’un objet, un choix de plusieurs
messages, surveillés par différentes conditions, sera envoyé. Dans un système séquentiel, un
objet peut envoyer un seul message à la fois et donc ces conditions doivent être mutuellement
exclusives. Lorsque nous avons des messages conditionnels mutuellement exclusifs, il
est nécessaire de modifier les expressions de séquence en ajoutant une lettre au chemin
conditionnel.
Notez que :
97
L’analyse et la Conception Orientées-Objets
L’une ou l’autre des actions 1a ou 1b pourrait s’exécuter après le msg1() selon les conditions.
Le numéro de séquence pour les deux est de 1, et a et b représentent les deux chemins.
Evaluation
2. Quelle est la différence entre *msg(), *[true] msg(), et [true] msg() dans un
diagramme de collaboration?
98
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
7. Puis O détruit P
Introduction
Les opérations complexes doivent être décomposées en de plus simples opérations internes
qui sont affectés à (ou réalisées par) d’autres objets. La principale tâche de la conception
consiste à créer les diagrammes de collaboration pour les opérations système identifiées
dans la phase de l’analyse préalable des besoins. Le plus important et le plus difficile dans la
génération de diagrammes de collaboration est l’affectation des responsabilités aux objets. Par
conséquent, le reste de cette activité portera essentiellement sur les principes généraux pour
l’affectation de responsabilité, qui sont structurées dans un format appelé modèles.
• Modèle conceptuel :
• Le concepteur peut choisir de définir les classes du logiciel correspondant aux
concepts. Les objets de ces classes participent aux interactions illustrées dans les
diagrammes d’interaction.
• Les contrats pour les opérations du système :
• Le concepteur définit les responsabilités et les conditions postérieures que les
diagrammes d’interaction doivent remplir.
• Les cas d’utilisation essentiels (ou réels):
• Le concepteur peut collecter des informations sur les tâches dont les diagrammes
d’interaction s’acquittent, en plus de ce qui est dans les contrats (N’oubliez pas
que les contrats ne disent pas beaucoup sur les sorties de l’interface utilisateur).
Détails de l’activité
Décider de quelles méthodes interviennent où et comment les objets devraient interagir est
extrêmement important. L’attribution de responsabilité est une étape cruciale/critique dans
l’élaboration des systèmes orientés objet.
Par définition, une responsabilité est un contrat ou l’obligation d’un objet. Les responsabilités
sont liées aux obligations des objets en fonction de leur comportement. Le but est d’aider à
appliquer méthodiquement les principes fondamentaux pour l’attribution des responsabilités
aux objets. Au sein des artéfacts UML, un contexte commun où ces responsabilités
(implémentées comme des méthodes) sont considérés est lors de la création de diagrammes
d’interaction. Les responsabilités peuvent être regroupées en deux types principaux :
99
L’analyse et la Conception Orientées-Objets
Ce sont des actions qu’un objet peut effectuer, notamment : faire quelque chose lui-même
comme la création d’un objet ou effectuer un calcul, amorcer une action ou opération dans
d’autres objets, contrôler et coordonner des activités dans d’autres objets.
C’est relatif à la connaissance qu’un objet détient : connaître les données privées encapsulées,
connaître les objets en relation, connaître les choses qui peuvent être dérivées ou calculées.
Commencer avec les responsabilités qui sont identifiées à partir des cas d’utilisation, du
modèle conceptuel et des contrats des opérations du système.
Décider de ce que les objets doivent faire pour s’acquitter de ces responsabilités afin
d’identifier de nouvelles responsabilités qui sont de nouveau affectés à des objets.
Répétez ces étapes jusqu’à ce que les responsabilités identifiées soient acquittées et que le
diagramme de collaboration soit terminé.
Les responsabilités sont attribuées aux classes d’objets durant l’étape de la conception
orientée objet. Notez que la responsabilité n’est pas la même chose qu’une méthode, mais
les méthodes sont implémentées pour s’acquitter des responsabilités. Les responsabilités
d’un objet sont implémentées en utilisant les méthodes de l’objet qui agisse seul ou en
collaboration avec d’autres méthodes et objets. Par exemple, si on se réfère au système de
vente :
La classe Vente pourrait définir une méthode qui effectue l’impression d’une instance de vente;
nommons la méthode print, pour s’acquitter de cette responsabilité,
L’instance Vente peut avoir à collaborer avec d’autres objets, tels que l’envoi d’un message aux
objets LignedeVente en leur demandant d’imprimer eux-mêmes.
En UML, les responsabilités sont assignées aux objets lors de la création du diagramme de
collaboration et ce dernier représente à la fois l’attribution des responsabilités aux objets et
la collaboration entre ces objets pour la réalisation des responsabilités. Par exemple, tel que
présenté dans la Figure 4.9 :
Les objets Vente ont reçu une responsabilité pour imprimer eux-mêmes, qui est invoqué avec
un message print.
100
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Les modèles sont les meilleurs principes pour l’attribution des responsabilités à des objets.
Les modèles sont des guides à la création de méthodes du logiciel. Ils sont des solutions aux
problèmes communs qui surviennent souvent. Dans ce module, le modèle GRASP (General
Responsability, Assignment Software Patterns) va être utilisé. Le modèle GRASP a le format
suivant :
Plus simplement, un motif est une paire problème/solution ayant un nom et qui peut être
appliqué à de nouveau contexte, avec des conseils sur la façon de l’appliquer dans des
situations nouvelles. Les modèles GRASP incluent les cinq modèles de base suivants :
Expert,
Créateur,
Haute Cohésion,
Faible Couplage et
Contrôleur.
GRASP 1 : Expert
C’est un modèle très simple qui est utilisé plus que tout autre modèle dans l’attribution des
responsabilités. La classe Expert est la classe qui possède les informations nécessaires pour
s’acquitter de la responsabilité. Les experts font des choses en fonction des informations qu’ils
connaissent. Attribuer la responsabilité à l’expert en information i.e. la classe qui dispose des
renseignements nécessaires pour s’acquitter de la responsabilité.
101
L’analyse et la Conception Orientées-Objets
Exemple :
Classe Responsabilité
Vente Connaît la vente totale
LignedeVente Connaît le Sous-total de chaque ligne d’article
SpecificationProduit Connaît le prix des produits
GRASP 2: Créateur
La création des objets est l’une des activités les plus courantes dans un système orienté
objet. Il pose la question “qui devrait être responsable de la création d’instances d’une classe
particulière ?” Attribuer par exemple à la classe B la responsabilité de créer une instance de la
classe A, si l’une des conditions est vraie :
B contient A
B enregistre A
B regroupe (agrège) A
B utilise étroitement A
Par exemple, dans le système Terminal de point de vente à travers un terminal, qui devrait
être responsable de la création d’une instance LignedeVente, partant du modèle Créateur,
nous devrions rechercher une classe qui agrège, contient des instances LignedeVent. Comme
Vente contient plusieurs objets LignedeVente, le motif Créateur suggère que Vente est le bon
candidat pour avoir la responsabilité de la création des instances LignedeVente comme le
montre la Figure 4.11. Cela signifie que la méthode “creerLigneProduit” sera définie dans la
classe Vente.
102
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Une classe avec une haute cohésion a des responsabilités fonctionnelles fortement liées, et
ne pas faire énormément de travail. Ces classes ont un petit nombre de méthodes avec
de simples mais très connexes fonctionnalités. Dans une bonne conception orientée objet,
chaque classe ne devrait pas faire trop de travail. Il faut juste attribuer quelques méthodes à
une classe et déléguer une partie des travaux pour s’acquitter de la responsabilité à d’autres
classes.
Alarme
Ascenseur
Portes
Registres
103
L’analyse et la Conception Orientées-Objets
Le couplage est une mesure de la manière dont une classe est fortement reliée à; a
connaissance de, ou s’appuie sur d’autres classes. Une classe avec un bas (ou faible)
couplage n’est pas dépendante de nombreuses autres classes. Lorsque nous attribuons une
responsabilité à une classe, nous aimerions affecter les responsabilités de manière à ce que le
couplage entre les classes demeure faible.
Première conception :
Seconde conception
GRASP 5 : Contrôleur
104
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Un contrôleur est une interface objet non-utilisateur qui est responsable de la gestion des
événements d’entrée du système, et le contrôleur définit la méthode pour l’opération
du système correspondant à l’événement d’entrée du système. Une solution possible est
d’ajouter/introduire une nouvelle classe, et le faire siéger entre l’acteur et les classes métiers.
Le nom de ce contrôleur est généralement appelé <nom>Handler. Le gestionnaire (Handler)
lit les commandes de l’utilisateur puis décide vers quelles classes les messages doivent être
dirigés. Le gestionnaire est la seule classe qui serait autorisée à lire et afficher. Le système
reçoit les événements externes d’entrée, impliquant habituellement une interface utilisateur
graphique exploitée par une personne.
Conclusion
Dans cette activité, vous avez appris comment utiliser le modèle GRASP pour attribuer des
responsabilités à une classe en vous basant sur les principes généraux qu’il met à notre
disposition. Les cinq principaux modèles de base GRASP ont été étudiés.
Evaluation
2. Modèle Contrôleur
3. Modèle Cohésion
105
L’analyse et la Conception Orientées-Objets
Introduction
Cette section applique les modèles GRASP pour attribuer des responsabilités à des classes, et
pour créer les diagrammes de collaboration pour le système Terminal.
Détails de l’activité
Nous considérons dans cette conception, les cas d’utilisation Acheter des articles
en espèce et Démarrer. Les Directives pour la réalisation des diagrammes de
collaboration (partiellement illustrée à la figure 4.14) comprennent:
Créer un diagramme distinct pour chaque opération du système qui a été identifiée et dont les
contrats sont définis. Si le diagramme est complexe, le diviser en des diagrammes plus petits.
Avec les cas d’utilisation, Acheter des articles en espèce et Démarrer, nous avons
identifié quatre opérations système à savoir : entrerProduit, finirVente, effectuerPaiement,
et commencer. Selon nos directives, nous devrions construire au moins quatre diagrammes
de collaboration. Selon le modèle Contrôleur, la classe Terminal pourrait être choisie comme
contrôleur pour la gestion de ces opérations.
106
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Après que la classe Terminal ait créé l’objet Vente, une instance de Terminal peut lui être
facilement associée tout le temps.
Lorsque l’objet Vente est créé, il doit créer une collection vide pour enregistrer toutes les
lignes futures LignedeVente qui seront ajoutées.
Cette collection sera maintenue par l’objet Vente, ce qui implique avec le modèle Créateur
que l’objet Vente est un bon candidat pour la création de la ligne (LignedeVente).
107
L’analyse et la Conception Orientées-Objets
La visibilité vers CatalogueProduit
La classe Terminal est responsable dans l’envoi du message nommé spec à CatalogueProduit
108
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
109
L’analyse et la Conception Orientées-Objets
Conclusion
Cette activité a mis l’accent sur comment appliquer le modèle GRASP à une classe pour
identifier ces différentes responsabilités. Ensuite, des exemples concrets ont été donnés pour
montrer comment réaliser le diagramme de collaboration inhérent à une opération donnée.
Evaluation
Expliquer les expressions suivantes du modèle GRASP :
• Responsabilités
• Opérations
• Post-conditions
Appliquer le modèle GRASP pour identifier les responsabilités d’une classe dénommée
« compte » d’un système de gestion de compte bancaire
Présentation
110
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Détails de l’activité
iii. Copier les attributs à partir des concepts connexes dans le modèle conceptuel
De plus :
Déterminer la visibilité, par exemple public (+), privé (-) qui sont important pour l’encapsulation
Chaque extrémité d’une association est appelée un rôle. Dans un diagramme de classes de
conception, le rôle peut être décoré avec une flèche de navigabilité. La navigabilité est une
propriété du rôle qui indique qu’il est possible de naviguer de façon unidirectionnelle à travers
l’association des objets de la classe source vers la classe cible.
111
L’analyse et la Conception Orientées-Objets
Conclusion
Cette activité a mis l’accent sur l’étape ultime de la phase de la conception d’un système, celui
de la réalisation d’un diagramme de classes de conception. Vous avez étudié les différentes
actions à mener pour mettre en place ce diagramme. Vous avez également compris l’utilité des
associations et de la navigabilité entre deux classes.
Evaluation
3. Créer des diagrammes de séquence objet pour les quatre opérations sélectionnées
au cours de l’analyse orientée objet
En utilisant certains des renseignements contenus dans les diagrammes de classes conceptuels,
décrire les attributs et les opérations des classes du logiciel. Indiquer les types des attributs et
opérations de la classe ainsi que leur visibilité
112
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Présentation
Détails de l’activité
Les attributs
Les attributs deviennent des variables en Java et en C#. Leur type est soit un type primitif (int ,
etc.), soit une classe fournie par la plate-forme (String, Date, etc.).
La visibilité des attributs est montrée en les faisant précéder par (+) pour public, (#) pour
protégé (protected), (-) pour privé (private). Les attributs de classe en UML deviennent des
membres statiques en Java ou en C#.
Les opérations
Les opérations deviennent des méthodes en Java et en C#. Leur visibilité est définie avec
les mêmes conventions que les attributs. Les opérations de classe deviennent des méthodes
statiques
113
L’analyse et la Conception Orientées-Objets
Les relations
Généralisation
114
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Association bidirectionnelle
Association réflexive
Agrégation et Composition
115
L’analyse et la Conception Orientées-Objets
Classe-association
Les cardinalités
Conclusion
Cette dernière activité vous a fait voir quelques exemples de critères (type de relations,
attributs, cardinalité, etc…) dont il faut tenir compte lors de la traduction d’un diagramme en
programme. Vous êtes appelé à lire le lien ci-après pour plus d’information sur le sujet abordé
dans cette activité. https://fr.scribd.com/doc/301165196/modelisationobjetavecuml-pdf (Pages
395 à 404)
116
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Evaluation
Résumé
Dans cette unité, le modèle GRASP a été exploré menant à une conception orientée objet
plus compréhensible, modifiable et robuste. L’analyse et la conception orientée objet est
une approche basée sur un modèle dans le processus de développement logiciel. En ayant
le diagramme de classes de conception en place, le langage d’implémentation peut être
appliqué pour implémenter le diagramme de classes de conception en code. Toutefois, le
module opte pour montrer comment le diagramme de classes de conception peut être mappé
avec un langage de programmation orienté-objet typique. Les langages Java et C# sont
utilisés, mais tout langage de programmation orienté objet peut être utilisé, comme C++.
Évaluation L’unité
117
L’analyse et la Conception Orientées-Objets
Résumé du module
Dans ce cours d’Analyse et Conception orientée objet, l’accent a été mis sur les principes de
l’Orienté-objet et leur utilité. Ensuite, nous avons introduit la notation UML qui est le langage
de modélisation le plus utilisé de nos jours à travers le monde et motivé son choix. Sa syntaxe
et ses principaux diagrammes ont été étudiés de long en large. Par la suite, les différentes
étapes des deux principales phases de la modélisation, à savoir l’analyse et la conception ont
été décrites à travers les différents diagrammes importants à mettre en place durant chacune
de ces phases. De nombreux exemples ont été donnés, chaque fois que cela est nécessaire
pour soutenir les concepts abordés. Enfin, des exemples montrant le passage des diagrammes
au code ont été exposés.
Evaluation du cours
Consigne
Examen de mi-parcours
Quelle est la différence entre une association de composition et une agrégation faible ?
Donnez deux exemples pour illustrer chaque concept.
Une petite médiathèque n’a qu’une seule employée qui assume toutes les tâches :
Le prêt d’un exemplaire d’une œuvre donnée est limité à trois semaines. Si l’exemplaire n’est
pas rapporté dans ce délai, cela génère un contentieux. Si l’exemplaire n’est toujours pas
rendu au bout d’un an, une procédure judiciaire est déclenchée.
118
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Pour gérer un prêt, l’employé doit rechercher l’adhérent dans le système et rechercher
également l’œuvre. S’il reste des exemplaires de l’œuvre, l’un de ces exemplaires est extrait
puis attribué à l’adhérent. L’accès au système informatique est protégé par un mot de passe.
Un hôtel est composé d’au moins deux chambres. Chaque chambre dispose d’une salle
d’eau qui peut être une douche ou une salle de bain. L’hôtel héberge des personnes. Il
peut employer du personnel et est dirigé par un des employés. L’hôtel a les caractéristiques
suivantes : une adresse, le nombre de pièces, la catégorie. Une chambre est caractérisée par le
nombre et le type de lits, le prix et le numéro. On peut calculer le chiffre d’affaires, le loyer en
fonction des occupants.
119
L’analyse et la Conception Orientées-Objets
La porte dispose en outre d’un capteur de butée qui indique que la porte a atteint sa butée
haute (porte ouverte) ou basse (porte fermée). On suppose que la porte est initialement
fermée.
Examen final
Consigne
Exercice
Une grande école universitaire veut mettre en place un système d’inscription simplifié qui
permettra de:
S’authentifier
Identifier les CU
Construire le diagramme de CU
Diagramme de classes
Diagrammes de séquences
120
Unité 4 : Conception Orientée Objet et Traduction Dans un Langage
Diagrammes d’états-transitions
Dessiner un diagramme d’état qui présente les différents états d’un dossier étudiant
Diagramme d’activité
Proposer un diagramme d’activité pour l’introduction des notes d’étudiant par le professeur
Ojo A. and Estevez El., (2005), “Object-OrientedAnalysis and Design with UML”, Training
Course, The United Nations University, UNU-IIST International Institute for Software Technology,
e-Macao Report 19, Version 1.0, October.
Pressman Roger S., (2001), “Software Engineering, A Practitioner’ S Approach” Fifth Edition,
McGraw-Hill Higher Education, ISBN 0073655783
121
L’analyse et la Conception Orientées-Objets
122
Siège de l’Université Virtuelle Africaine
PO Box 25405-00603
Nairobi, Kenya
contact@avu.org
oer@avu.org
bureauregional@avu.org
2017 UVA