2. Introduction
▪ UML, « Unified Modeling Language ». En français « Langage de modélisation
unifié ».
▪ Utilisé lorsqu’on prévoit de développer des applications avec une démarche objet
(développement en Java, en C++,python.. etc.).
▪ UML nous aide à faire la description du fonctionnement de l’application de façon
graphique et devient alors un excellent moyen pour « visualiser » la future
application.
▪ Langage visuel constitué d’un ensemble de schémas, appelés des diagrammes, qui
donnent chacun une vision différente du projet à traiter. Réaliser ces diagrammes
revient donc à modéliser les besoins du logiciel à développer.
3. Introduction
Différents types de projets
Projet de mise en production (cycle de vie)
• Objectif: développer et assurer la mise en
production
• Démarre dès l’expression du besoin
• Termine lorsque l’utilisateur peut utiliser le logiciel
Projet de développement (cycle de dev)
• Objectif: livrer la première version utilisable par
l’utilisateur
• Démarre à partir de l’expression de besoin par le
propriétaire
• Termine lors de la livraison par le développeur
5. Introduction
Les 3 grandes phases du cycle de développement
Analyse
Expression, recueil et formalisation des
besoins du demandeur (le client) et de
l'ensemble des contraintes.
Conception
Organiser le développement, c’est-à-dire
précise les gros modules à développer et
précise les tâches
Développement
Développer les composants définis dans la
conception et en fin livre le résultat.
6. Introduction
Méthode d'analyse et de conception: est un procédé qui a pour objectif
de permettre de formaliser les étapes préliminaires du développement
d'un système afin de rendre ce développement plus fidèle aux besoins
du client.
Merise Méthode Booch OOSE
OMT
UML: Langage de modélisation unifié
… …..
Jams Rumbaugh
Grady Booch Ivar Jacobson
7. Présentation de l’UML
▪ UML est une démarche qui se base sur une approche objet.
▪ L’approche objet nécessite une démarche itérative et incrémentale, c-à-d que le
concepteur doit faire des allers-retours entre les diagrammes initiaux et, les
besoins du client. Et des utilisateurs perçus au fur et à mesure de la conception
du logiciel afin de le modifier si nécessaire.
▪ L’approche objet est guidée par les besoins du client.
▪ L’approche objet est centrée sur le diagramme de classes qui décrit aussi bien
des actions que des informations dans une même entité. Les autres diagrammes
nous aident à voir clair dans les besoins et dans la solution qui est à développer.
8. Présentation de l’UML
Modélisation et Modèle
La Modélisation objet consiste à créer une représentation abstraite, sous forme
d'objets, d'entités ayant une existence physique ou non(personne, téléphone,
compte...)
9. • La Modélisation consiste à créer une représentation virtuelle de la
réalité. Elle comporte deux composantes:
➢L'analyse, c'est-à-dire l'étude du problème;
➢La conception, soit la mise au point d'une solution au problème.
• Un Modèle est une simplification de la réalité (abstraction de la
réalité). Grâce au modèle il est possible de représenter simplement
un problème, un concept et le simuler.
Présentation de l’UML
Modélisation et Modèle
10. Les différents types de diagrammes
• À ce jour, il existe 13 diagrammes « officiels », qui peuvent être
regroupés selon les deux aspects suivants :
Aspects fonctionnels
Qui utilisera le logiciel et pour quoi faire ?
Comment les actions devront-elles se
dérouler ?
Quelles informations seront utilisées pour
cela ?
Aspects liés à l’architecture
Quels seront les différents composants
logiciels à utiliser (base de données,
librairies, interfaces, etc.)?
Sur quel matériel chacun des composants
sera installé ?
11. Les différents types de diagrammes
• Une première décomposition d’une problématique ou système peut donc être faite à
l’aide de 4+1 vues. Le schéma ci-dessous montre les différentes vues permettant de
répondre au mieux aux besoins des utilisateurs.
• Chacune des vues est constituée de diagrammes.
• Diagramme de Classe
• Diagramme d’objet
• Diagramme de Séquence
• Diagramme d’activité
• Diagramme de collaboration
• Diagramme d’état de transition
• Diagramme de temps
• Diagramme de Structure
composite
• Diagramme de composants
• Diagramme de déploiement
• Digramme de packages
• Diagramme de cas d’utilisation
12. Les besoins des utilisateurs
Cette partie représente le cœur de l’analyse. On y décrit le contexte, les
acteurs ou utilisateurs du projet logiciel, les fonctionnalités du logiciel
et les interactions entre ces acteurs et ces fonctionnalités.
Le besoin des utilisateurs peut être décrit à l’aide de deux diagrammes.
1. Le diagramme de cas d’utilisation
1. Le diagramme de packages
14. Diagramme de cas d’utilisation
• C’est souvent le premier diagramme construit lors du développement d’un
projet.
• Il va clarifier, filtrer et structurer les besoins des utilisateurs, et donc les
objectifs à atteindre par le système.
• Ce diagramme insiste uniquement sur ce que fait le système et non sur
comment il va le faire.
• Cette démarche simplificatrice permet une meilleure compréhension du
système à développer, et permet de vérifier tout au long de la conception
que les besoins des utilisateurs sont satisfaits.
15. Diagramme de cas d’utilisation
• Objectif: Comprendre les besoins du client pour rédiger le cahier des
charges fonctionnel.
• Trois questions:
1. Définir les utilisations principales du système: à quoi sert-il? (cas
d’utilisation)
2. Définir l’environnement du système: qui va l’utiliser ou interagir
avec lui? (acteurs)
3. Définir les limites du système: où s’arrête sa responsabilité?
17. Diagramme de cas d’utilisation
Acteurs et cas d’utilisation
Acteur : Entité externe au système qui interagit directement avec lui.
• Personne, chose, logiciel extérieure au système…
• Représente un rôle (plusieurs rôles possibles pour une même entité)
Identifié par le nom de rôle.
Cas d’ utilisation :Fonctionnalité visible de l’extérieur
• Action déclenchée par un acteur
• Identifié par une action ( verbe à l’infinitif)
18. Diagramme de cas d’utilisation
Association
• Lien d’association : Relations entre acteurs et cas d’utilisation
→marque la participation d’un acteur à un cas d’utilisation.
• Représentation :
Association
19. Diagramme de cas d’utilisation
• Exemple: Retirer de
l’argent
Consulter les
comptes
Déposer les
chèques
Effectuer un
virement
Client
Propriétaire
du compte
Guichet automatique bancaire
20. Diagramme de cas d’utilisation
Généralisation de rôle
Situation: Y peut faire tout ce que fait X Modélisation: Faire apparaître Y comme un cas
particulier de X (autrement dit X généralisation de Y)
Y
X
X
Y
21. Diagramme de cas d’utilisation
Généralisation de rôle (Exemple 1)
22. Diagramme de cas d’utilisation
Généralisation de rôle (Exemple 2)
Deux acteurs ont des cas communs mais chacun a ses cas spécifiques, donc aucun n'est un cas particulier de l'autre.
Dans ce cas, on utilise l'héritage en créant un acteur intermédiaires qui va rassembler et hériter les cas communs.
23. Généralisation: X est un cas particulier de Y
Tout ou partie du scénario de Y est spécifique à X
Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
y
x2
x1
24. Extension : X « extends » Y
• Cas d’utilisation X peut être déclenché au cours du scénario de Y
• X est optionnel pour Y
Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
y
x
25. Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
Inclusion: X « includes » Y
Scénario de Y inclus dans le scénario de X Y est nécessaire pour X
Cas d’utilisation Y déclenché au cours du scénario de X
x
y
27. • À partir du schéma suivant, dite quelle est la signification d’une relation de
type « include » ?
❑Le cas d’utilisation A est réalisé avant le cas d’utilisation B.
❑Le cas d’utilisation A toujours besoin du cas d’utilisation B.
❑Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B.
❑Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A.
Use case B
Use case A
« include »
28. • À partir du schéma suivant, dite quelle est la signification d’une relation de
type « extend » ?
• Le cas d’utilisation A toujours besoin du cas d’utilisation B.
• Le cas d’utilisation A est réalisé avant le cas d’utilisation B.
• Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B.
• Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A.
Use case B
Use case A
« extend »
29. 1. Parmi les cas d’utilisation suivants, lequel un cas d’utilisation optionnel ?
Inscrire étudiant
Consulter
statistique
Ajouter Nv filière
Gérer filières
Supprimer filière
Secrétaire
Administrateur
S’authentifier
Imprimer fiche
étudiant
30. 2. Pour quelle raison l’acteur « Administrateur» est-il utile dans le diagramme ?
❑Cet acteur pourra utiliser uniquement la fonctionnalité « gérer filières».
❑Cet acteur pourra utiliser les mêmes fonctionnalités que les autres personnes,
mais il a également besoin d’une fonctionnalité supplémentaire : « gérer filières».
❑Cet acteur est consulté par les autres personnes concernant la gestion des filières.
3. Pourquoi le cas d’utilisation « s’authentifier» est-il lié à deux autres cas
d’utilisation avec une relation « include » ?
❑Lorsqu’une personne souhaite « inscrire un étudiant » ou « consulter les
statistiques », il faut obligatoirement s’authentifier.
❑Lorsqu’une personne souhaite «inscrire un étudiant » ou «consulter les statistiques
», elle peut s’authentifier.
❑La s’authentification oblige la personne à inscrire un « étudiant » et à consulter les
statistiques
31. Exercice: Donner le diagramme des cas d'utilisation de ce système
Dans un établissement scolaire, on désire gérer la réservation des salles
de cours ainsi que du matériel pédagogique (ordinateur portable ou
vidéo projecteur).
• Seuls les enseignants sont habilités à effectuer des réservations (sous
réserve de disponibilité de la salle ou du matériel).
• Le planning des salles peut quant à lui être consulté par tout le monde
(enseignants et étudiants).
• Par contre, le récapitulatif horaire par enseignant (calculé à partir du
planning des salles) ne peut être consulté que par les enseignants.
• Enfin, il existe pour chaque formation un enseignant responsable qui
seul peut éditer le récapitulatif horaire pour l’ensemble de formation.
32. Exercice:
Travail demandé : Réaliser le diagramme de cas d’utilisation
Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est
gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux-
ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont
chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de
nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui
doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à
tous les services de la bibliothèque (Consulter du catalogue, emprunter ouvrage,
demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les
enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une
autre université à s’inscrire exceptionnellement comme abonné moyennant le versement
d’une cotisation.
33. Exercice:
Travail demandé : Réaliser le diagramme de cas d’utilisation
Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est
gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux-
ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont
chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de
nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui
doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à
tous les services de la bibliothèque( Consulter du catalogue, emprunter ouvrage,
demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les
enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une
autre université à s’inscrire exceptionnellement comme abonné moyennant le versement
d’une cotisation.
35. Diagramme de classe
Conception orientée objet: Représentation du système comme un ensemble d’objets
interagissant
Diagramme de classes
• Représentation da la structure interne du logiciel
• Utilisé surtout en conception
Diagramme d’objets
• Représentation de l’état du logiciel (objets + relation)
• Digramme évoluant avec l’exécution du logiciel
• Création et suppression d’objets
• Modification de l’état des objets (valeurs des attributs)
• Modification des relations entre objets
36. Approche Objet
Objet: entité identifiable du monde réel pouvant avoir ou pas une
existence physique. Exemples : chien, table, personne, compteB…
• Un objet possède trois composantes :
+ identité (adresse mémoire),
+ état (attributs),
+ comportement (Méthodes)
37. Approche Classe
• Des objets ayant des
propriétés communes
(attributs et méthodes) sont
alors regroupés dans une
structure abstraite appelée
classe.
• Les valeurs sont différentes
pour chaque objet
38. Approche Classe et Objet
• Classe:
Regroupement d’objets de même nature (mêmes attributs + mêmes
opérations)
• Objet
A partir d’une classe on peut créer un ou plusieurs objets par instanciation ;
Chaque objet est une instance d’une seule classe.
Objet= instance d’une classe
39. Approche Objet
• Un objet possède trois composantes :
+ identité (adresse mémoire), état (attributs), comportement (opérations)
40. Approche Classe et Objet
L’instanciation est l’opération qui consiste à créer un objet à partir d’une classe
41. Approche Classe et Objet
Attributs
• Caractéristique partagée par tous les objets de la classe
• Associe à chaque objet une valeur
• Type associé simple (int, …), primitif (Date) ou énuméré
42. Approche Classe et Objet
Attributs
Objets différents (identités différentes) peuvent avoir mêmes attributs
Jean1 et jean2 sont deux personnes différentes dans la mémoire.
43. Approche Classe et Objet
• En particulier, pas d'attribut dont le type est une classe du diagramme
44. Approche Classe et Objet
• En particulier, pas d'attribut dont le type est une classe du diagramme
Mais association vers cette classe
45. Approche Classe et Objet
Opérations
• Une tâche dont tous les objets de la classe doivent pouvoir effectuer
• Comportement commun à tous les objets de la classe
46. Exercice
On cherche à développer un système qui gère les empreintes et les retours dans une
bibliothèque.
La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par
son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la revue,
un numéro volume et sa date de parution.
Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la
bibliothèque et sa date de retour.
Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès du
bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution.
Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte
est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours.
On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un
nouvel ouvrage si on est en retard pour rendre un ouvrage.
l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un
numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents
ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du
même ouvrage sont stockés au même endroit.
47. Exercice
On cherche à développer un système qui gère les empreintes et les retours dans une
bibliothèque.
La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par
son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la
revue, un numéro volume et sa date de parution.
Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la
bibliothèque et sa date de retour.
Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès
du bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution.
Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte
est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours.
On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un
nouvel ouvrage si on est en retard pour rendre un ouvrage.
l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un
numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents
ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du
même ouvrage sont stockés au même endroit.
48. Relation entre objets
Lien entre objets: Un lien représente une relation entre objets à un
instant donné.
La relation nous montre que les comptes sont possédés par des clients et que les personnes sont propriétaire des comptes
50. Relations entre classes
1. Association:
• Relation sémantique durable entre deux classes.
• Représente les liens qui existent entre les instances des classes.
• Chaque association peut être identifié par son nom
51. Relations entre classes
2. Rôle:
• Définit la manière dont une classe intervient dans une relation, est placé à une
extrémité du lien d’association,
• Toute association possède 2 rôles.
➢ On peut accéder à partir d'un compte à son propriétaire et à partir d'une personne à ses comptes
52. Relations entre classes
3. Multiplicité:
• Contraint le nombre d'objets liés par l'association
• Une information portée par le rôle, qui quantifie le nombre de fois où un objet
participe à une instance de relation
Exactement un objet personne peut être relier à un objet compte par l’association possède
Et une personne peut être relier à plusieurs compte et compris 0
53. Relations entre classes
• Il est possible de préciser le rôle joué par une ou plusieurs des classes
composant une association afin d'en faciliter la compréhension. On
ajoute pour cela ce rôle à côté de la classe concernée.
• Mais afin de ne pas alourdir le modèle, il est conseillé de ne pas
nommer l’association, cela est lorsque son nom est trivial:
"appartient", "concerne" etc ...
56. Association réflexive
Diagramme de Classes
• Une association est un lien entre deux classes mais pas forcément deux classes
différentes,
• On peut donc exprimer un lien entre une classe et elle-même
• Un objet de la classe personne va toujours être relier à deux autres objets de la
classe personne qui sont désignées comme ses parents et peut être relier à
d’autres objets personne qui sont désignées comme ses enfants
57. Association réflexive
Exemple de diagramme d’objets
JeanDupont a deux parents (Anne et Michel) ce qui respecte les multiplicité de diagramme de classe
58. Association réflexive
Exemple de diagramme d’objets
Il peut avoir des frères et des sœurs qui seront relier chacun aux deux mêmes parents que Jean,
60. Association multiple
Diagramme de Classes
• On peut avoir besoin de représenter plusieurs relations entre deux classes par exemple entre une personne et
un appartement à louer
• On peut avoir une relation locataire et une relation propriétaire,
• Une personne peut posséder plusieurs appartements et peut être locataire de plusieurs appartements
• un appartement a un unique propriétaire mais peut être loué par plusieurs personnes en cas de colocataire
61. Association multiple
Exemple de diagramme d’objets
- Jean loue l’appartement qui est proposé par Alain et Alain peut lui-même louer un autre appartement,
- Évidement le fait de lier deux associations entre ces deux classes n’ implique pas du tout de trouver deux liens loue
et propose entre chaque couple d’objet personne et appartement
62. Classe-association
• Permet de paramétrer une association entre deux classes par une classe
Par fois on veut mettre plus d’information dans une association par exemple ici, on veut pas simplement représenter le
fait qu’une personne est employée dans une entreprise, mais occupe un poste qui a un nom, un début et un fin. On
ajoute cette information en paramétrant l’association par une classe, ce qu’on appelle une classe association
- Une personne peut occuper plusieurs emploies et une entreprise propose au moins un emploie
- la multiplicité * de personne vers entreprise ne se comprend pas comme une contrainte sur le nombre d’objet
entreprise différents, auquel une personne est reliée mais sur un nombre de lien entre elle et les entreprises
64. Association n-aire
• Association reliant plus de deux classes
Par exemple ici trois classes sont
reliées entre elles pour signifier
qu’un cours, un enseignant et un
étudiant forment une relation à
trois composantes.
➢ Cet étudiant a cet enseignant
pour ce cours.
On relie les trois branches de
l ’association par un losange pour
faire apparaitre l’association
clairement.
66. Association n-aire
• Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre
d'objets qui lui sont associés
Pour un enseignant et un cours il y a
au moins un étudiant
Pour un cours et un étudiant il y a
un unique enseignant
Pour un enseignant et un étudiant
il y a un unique cours
67. Association n-aire
• Pour chaque tournée, on peut associer plusieurs
chauffeurs et plusieurs camions
• Chaque camion peut être affecté à plusieurs
tournées et plusieurs chauffeurs.
68. Relations entre classes
Pour chacun des énoncés suivants, donnez un diagramme de classes.
• Tout écrivain a écrit au moins une œuvre.
• Les personnes peuvent être associées à des universités en tant
qu’étudiants aussi bien qu’en tant que professeurs.
• Les cinémas sont composés de plusieurs salles. Les films sont projetés
dans des salles. Les projections correspondantes ont lieu à chacune à
une heure déterminée.
69. • Relations entre classes
• Un facteur est affecté à une seule zone géographique. Les habitants
sont aussi associés à une zone géographique. Les recommandés
distribués par les facteurs sont de deux sortes : lettres ou colis.
Comme plusieurs facteurs peuvent intervenir sur la même zone, on
souhaite, pour chaque recommandé, le facteur qui l'a distribué, en
plus du destinataire (l’habitant). Un facteur distribue pour un habitant
plusieurs recommandés alors un habitant reçoie des recommandés
plusieurs facteurs.
70. Relations entre classes
• Un rectangle peut se construire par exactement quatre points et un
vecteur est construit par deux points.
• Un pays possède une capitale.
• Une route connecte deux villes.
• Une personne peut être associé à un comité comme président ou
membre du comité.
• Des personnes utilisent un langage pour un projet.
71. Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des opérations et les
organiser en arborescence
72. Hiérarchie de classes
• Les éléments spécialisés héritent de la structure et du comportement
des éléments plus généraux
• Spécialisation : raffinement d'une classe en une sous-classe
• Généralisation : abstraction d'un ensemble de classes en super-classe
73. Héritage
Les deux visions de l’héritage :
• Spécialisation : on étend les propriétés d’une classe à des sous-
classes plus spécifiques. Cela permet donc la réutilisation de modèles
déjà existants.
• Généralisation : on factorise les propriétés communes d’un
ensemble de classes dans une super-classe plus abstraite. Cela
permet de gagner en généricité.
74. Héritage
Deux intérêts majeurs :
1. On construit une hiérarchie de classes. On évite ainsi des
répétitions dans le code, en encourageant la réutilisation de
classes déjà existantes.
2. Cela permet de simplifier la conception de la modélisation.
75. Héritage
Comment savoir s'il y a un héritage à faire ou pas?
• Il y a héritage quand on peut dire : « A est un B ».
Exemple:
Un magicien est une personne,
Un étudiant est une personne
Un enseignant est une personne
Donc Magicien, Etudiant et Enseignant hérite de la classe Personne
76. Hiérarchie de classes
• Héritage : est l'association entre deux classes permettant d'exprimer
que l'une est plus générale que l'autre et implique une transmission
automatique des propriétés (attributs et méthodes) d'une super-
classe à une sous-classe .
77. Héritage
La classe D dérive de la classe B ou D est une sous-classe de B.
On dit aussi:
La classe B est la super classe, la classe de base, ou la classe mère de la classe dérivée D.
• D va hériter l’ensemble
➢ Des attributs de B
➢ Des méthodes de B
• les attributs et les méthodes de B vont être
disponibles pour D sans que l’on ait besoin
de redéfinir explicitement dans D.
• Aussi les méthodes héritées de B peuvent
être redéfinies dans D ( enrichissement et
spécialisation)
78. Classe abstraite
Classe sans instance, seulement une base pour classes héritées
Notation : nom de la classe en italique (ou stéréotype ≪ abstract ≫)
79. Classe abstraite
▪Les classes abstraites sont à utiliser lorsqu'une classe mère
ne doit pas être instanciée.
▪Une classe abstraite ne peut donc pas être instanciée.
▪Une classe abstraite n'est pas obligée de contenir de
méthode abstraite.
▪Si une classe contient une méthode abstraite, cette classe
doit alors être déclarée abstraite.
▪Une méthode abstraite n'a pas de corps.
85. Opération abstraite
• Opération non définie pour une classe abstraite, car impossible de la
définir pour tous les objets de la classe (opération en italique)
• Opération abstraite implique classe abstraite
• Exemple : On ne peut pas calculer la surface d'une forme sans savoir
de quelle forme il s'agit
86. Polymorphisme
Contexte : Définition d'une opération abstraite dans les classes héritant
d'une classe abstraite
➢c’est un mécanisme qui permet à une sous classe de redéfinir une
méthode dont elle a hérité tout en gardant la même signature.
88. Héritage multiple
• l’héritage multiple: une classe peut hériter les comportements et les fonctionnalités de plus
d'une super-classe.
• L'héritage multiple génère parfois des erreurs de compilation .
• Le principal problème rencontré est la présence de différentes implémentations par les super-
classes d'une certaine classe pour une même déclaration.
• Lorsqu'une méthode polymorphique est appelée, il faut déduire la bonne implémentation à
exécuter. elle a alors plusieurs implémentations possibles.
89. Héritage multiple
• Avec l'héritage multiple, une classe peut hériter en même temps de
plusieurs super-classes. Ce mécanisme n'existe pas en Java. Les
interfaces permettent de mettre en œuvre un mécanisme de
remplacement.
90. Interface
Qu’est-ce qu’une interface ?
• Classe sans attribut dont toutes les opérations sont abstraites ;
• Ne peut être instanciée (une classe 100 % abstraite);
• Doit être réalisée (implémentée) par des classes non abstraites ;
• Peut hériter d’une autre interface
Pourquoi des interfaces ?
• Utilisation similaire aux classes abstraites
• En Java : une classe ne peut hériter de plus d’une classe, mais elle
peut réaliser plusieurs interfaces.
91. Interface
• Aucune méthode d'une interface n'a de corps.
• Une interface sert à utiliser le polymorphisme.
• Possibilité implémenter autant d'interfaces que vous voulez dans les
classes.
• Possibilité de redéfinir toutes les méthodes de l'interface dans la
classe.
93. Agrégation
• L'agrégation est une association particulière utilisée pour préciser
une relation tout/partie (ou ensemble /élément),
• La multiplicité, peut être exprimée librement, en particulier les
instances de la classe Élément peuvent être associées à plusieurs
instances de la classe Ensemble.
94. Agrégation
• Agrégation : C'est une relation particulière qui attribut à l'une des
classes le rôle d'agrégat et à l'autre classe le rôle d'agrégé.
L'agrégation peut être assimilée à une appartenance - faible -.
• Est une association non symétrique : l’une des extrémités joue un rôle
prédominant par rapport à l’autre.
• L'agrégation se modélise par un losange côté agrégat.
95. Agrégation
• L'appartenance est dite faible car l'agrégé pourra participer à d'autres
agrégats et son cycle de vie n'est pas subordonné à celui de son agrégat.
• La disparition de l’université n'entraîne pas la disparition de l’étudiant.
L'agrégation traduit une relation d'appartenance de l'agrégé dans l'agrégat;
Agrégé Agrégat
96. Agrégation
Exemple
Une page peut contenir des images mais celles-ci peuvent appartenir à
d'autres pages.
- la destruction d'une page n'entraîne pas celle de l'image mais
seulement la suppression du lien.
97. Composition
On appelle composition une association particulière qui possède les
propriétés suivantes :
• La composition associe une classe composite et des classes parties,
tel que tout objet partie appartient à un et un seul objet composite.
C'est donc une association 1..*.
• La composition n'est pas partageable, donc un objet partie ne peut
appartenir qu'à un seul objet composite à la fois.
98. Composition
• Le cycle de vie des objets parties est lié à celui de l'objet composite,
donc un objet partie disparaît quand l'objet composite auquel il est
associé disparaît.
• La multiplicité côté composite est toujours de exactement 1.
• Côté partie la multiplicité est libre, elle peut être 0..1, 1,* ou bien 1..*
• La composition se modélise par un losange noir côté composé.
99. Composition
• Exemple 1 :
• Le composite contient réellement ce composant
• Une université est déterminé par des salles et n’existe pas sans elles est
une salle n'existe pas au dehors de l'université
• La disparition de l’université entraîne alors à la disparition de la salle
100. Composition
Exemple 2 :
• Une application contient de 0 à n fenêtres qui contiennent de 0 à n
boutons.
• La fermeture de l'application entraîne la destruction des fenêtres qui
entraîne la destruction des boutons.
• La non-présence des valeurs de multiplicités est synonyme de 1..1
101. Composition
• Un composant ne peut appartenir à un moment donné qu'à un seul
composé.
• La cardinalité ne peut être que de 1 maximum coté composite.
• La suppression du composé entraîne celle du composant.
102. Navigabilité
• Association à navigabilité restreinte : par défaut une association est navigable dans les
deux sens. Mais on peut aussi indiquer que les instances d’une classe ne connaissent
pas les instances d’une autre
• Depuis un A, on a accès aux objets de B qui lui associés, mais pas l’inverse.
• Un électeur peut savoir le candidat qui veut voter pour lui mais un candidat ne peut
pas connaitre l’électeur qui a voté pour lui
103. Visibilité des attributs et méthodes
• Un attribut ou une méthode sont dits publics si leur utilisation est
autorisée en dehors de la classe.
• Un attribut ou une méthode sont dits protégés si leur utilisation est
limitée à la classe et ses descendantes (sous classes).
• Un attribut ou une méthode sont dits privés si leur utilisation est
interdite en dehors de la classe.
104. Visibilité des attributs et méthodes
• Public (+) : accès à partir de toute entité interne ou externe à la classe
• Protégé (#) : accès à partir de la classe ou des sous-classes
• Privé (-) : accès à partir des opérations de la classe
• Exemple
105. Attributs dérivés
• Attributs dérivés : attributs dont la valeur peut être calculée à partir
d’autres attributs et de formules de calcul.
Représentation : avec un « / » devant le nom.
Exemple
106. Relations entre classes
• Un dessin est soit du texte, soit une forme géométrique, soit un groupe
de dessins.
• Une équipe est composée de plusieurs personnes.
• Les étudiants et les enseignants sont deux sortes de personnes. Et Un
doctorant est un étudiant qui assure des enseignements. Les doctorants
et les étudiants doivent s'inscrire au début de l'année et éventuellement
modifier leur inscription. On connaît le nom et le prénom de toutes les
personnes. On doit pouvoir calculer le salaire des doctorants aussi bien
que celui des enseignants.
107.
108.
109. Relations entre classes
• Les modems et les claviers sont des périphériques d’entrées/sorties
• Une transaction boursière est un achat ou une vente
• L'université comporte des personnels administratifs et techniques,
des enseignants, des étudiants et des chercheurs (qui sont tous des
personnes).
Les enseignants chercheurs sont à la fois chercheurs et enseignants
Les doctorants sont à la fois chercheurs et étudiants
les assistants enseignants sont enseignants et étudiants
Les doctorants enseignants peuvent être doctorants et assistants
enseignants.
110.
111.
112. Exercice
• Les conducteurs sont des personnes qui ont un permis
caractérisé par le type et la date d’obtention de permis ;
• Toute voiture est possédée par une unique personne (qui
peut en posséder plusieurs) ; que les voitures peuvent être
conduites par des conducteurs et que les conducteurs
peuvent conduire plusieurs voitures.
• Une personne porte un nom, un prénom et une date de
naissance et on peut calculer l'âge de chaque personne.
• Une voiture est caractérisée par un nombre de portes, le
nombre de kilométrage, une marque et son type.
Question: Réaliser le diagramme de classe
113. Opérations
• Service qui peut être demandé à tout objet de la classe
• Comportement commun à tous les objets de la classe
115. Opérations
Effets possibles d'une opération
● Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
116. Opérations
Effets possibles d'une opération
Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
- ajout/suppressions de liens entre objets
117. Opérations
Effets possibles d'une opération
Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
- ajout/suppressions de liens entre objets
- création/destruction d'objets
119. Diagramme d’objets
• Représentation d’un ensemble d’objets et de liens, exprimant la
structure statique.
• Un diagramme d’objets est une instance d’un diagramme de classes
et illustre l’état d’un système à un moment donné.
• Un diagramme d’objets est composé :
o d’objets (instances de classes),
o de liens (instances d’associations).
• La notation des diagrammes d’objets est dérivée de celle des
diagrammes de classes.
120. Diagramme d’objets
• Un objet est une instance d’une classe : il représente “l’état” d’une
classe à un instant précis.
Représentation UML :
• Un message envoyé vers un groupe d’objets (instances d’une même
classe) est reçu par tous les objets du groupe.
121. Diagramme d’objets
• L’état d’un objet est déterminé par les valeurs de ses attributs : il est
possible de nommer un état afin d’indiquer clairement dans quel état
se trouve un objet.
• Les représentations des objets peuvent contenir des attributs
significatifs.
122. Diagramme d’objets
• Possibilité de modéliser les changements d’états des objets:
• Possibilité d’utiliser des liens stéréotypes (exemple : la copie d’objets)
124. Lien
• Les objets sont relies par des instances d’associations : les liens.
• Un lien représente une relation entre objets à un instant donné.
• ATTENTION : la multiplicité des extrémités des liens est toujours de 1.
• Exemple : représentation de la structure générale d’une voiture
125. Réaliser le diagramme d’objets
pour ce diagramme de classes en
se basant sur les informations
suivante:
Le système gère un seul bâtiment
contenant trois portes.
• Le système peut être géré par
une personne nommée Tolkien.
•Deux utilisateurs peuvent
accéder au bâtiment :
• Gandalf a accès à la première
(8h-18h) et seconde porte
(12h-24h)
• Bilbon a accès à la troisième
porte toute la journée.
Exercice
128. Diagramme de package
• Un package est une collection d’éléments du modèle: il peut contenir
les collections des cas d’utilisation ou des classes, et les relations qui
les lient entre eux.
• Il peut exister des dépendances entre les packages, des dépendances
entre éléments contenus dans les package.
• Les packages peuvent être utilisés dans n’importe quelle vue ou
diagramme UML.
129. Diagramme de package
• Notion de paquetage : Lorsque nous sommes en présence d’un
système de grande taille, il peut être intéressant de le décomposer en
plusieurs parties (appelées paquetage).
• Un paquetage est donc un regroupement de différents éléments d’un
système (regroupement de classes, diagrammes, fonctions,
interfaces…). Cela permet de clarifier le modèle en l’organisant. Il est
représenté par un dossier avec son nom à l’intérieur :
130. Diagramme de package
• Il est possible de représenter les éléments du système appartenant au
paquetage
➢à l’intérieur de celui-ci :
➢ou à l’extérieur :
131. Diagramme de package
• Pour faire appel à un élément d’un paquetage, nous indiquons le nom
du paquetage suivi de deux fois deux points (::) puis du nom de
l’élément.
132. Diagramme de package
Dépendances entre paquetages:
• Visibilité : Chaque éléments d’un paquetage est soit :
-privé: Encapsulé dans le paquetage et invisible à l’extérieur de celui-ci.
-public: Visible et accessible de l’extérieur du paquetage.
Par défaut, les éléments d’un paquetage sont publics.
133. Diagramme de package
Dépendance de type « import » :
Elle correspond à l’importation par un paquetage B de tous les éléments publics d’un paquetage A.
Ces éléments :
- auront la visibilité « public » dans le paquetage B (et seraient donc aussi transmis à un paquetage
C qui ferait une importation du paquetage B).
- seront accessibles au paquetage B sans avoir à utiliser explicitement le nom du paquetage A. La
dépendance de type « import » est représentée par une flèche pointillée muni du stéréotype <>.
Le paquetage B importe
Classe1 et Classe2 (pas
Classe3 qui a une visibilité
de type privée). Classe1
et Classe2 ont une
visibilité de type public
dans paquetage B. Le
paquetage C importe
Classe1, Classe2 et
Classe4.
134. Diagramme de package
Dépendance de type « access » :
• Elle correspond à l’accès par un paquetage B de tous les éléments publics d’un
paquetage A. Ces éléments auront la visibilité privé dans le paquetage B, ils ne
peuvent donc pas être transmis à un paquetage C qui ferait une importation ou
un accès au paquetage B (pas de transitivité).
• La dépendance de type « access » est représentée par une flèche pointillée muni
du stéréotype <<access>>.
Le paquetage B a accès à Classe1
et Classe2 (pas à Classe3 qui a
une visibilité de type privée).
Classe1 et Classe2 ont une
visibilité de type privé dans
paquetage B. Le paquetage C a
accès à Classe4 (pas à Classe1 et
Classe2 qui ont une visibilité de
type privée dans paquetage B).
135. Diagramme de package
Dépendance de type « merge » :
• Elle correspond à la fusion de 2 paquetages en un seul.
• La dépendance de type « merge » est représentée par une flèche
pointillée muni du stéréotype <<merge>>.
Le paquetage A est fusionné dans le paquetage B (le paquetage A n’est pas modifié alors que le
paquetage B est écrasé pour accueillir la fusion des 2 paquetages).
137. Diagrammes de séquence
• Donne une description dynamique du système.
• Permet d’établir un lien entre le diagramme de cas d’utilisation et le
diagramme de classes.
• Représente les interactions entre objets en précisant la chronologie
des échanges de messages.
• Permet de représenter les scénarios d’un cas d’utilisation donné
▪ un scénario est une instance d’un cas d’utilisation
▪ Un message reçu par un objet déclenche l’exécution d’une
opération, et en général renvoie un message qui correspond au
résultat de l’opération.
138. Diagramme de classes
Diagramme de séquence
Diag. de cas d’utilisation
Vérifier l’identifiant
Récupérer l’objet client
Chercher le num compte
Effectuer le virement et
Modifier le solde de deux
compte
Créer l’objet virement
139. Diagrammes de séquence
❑Le cœur d’un diagramme de séquence est la description des
échanges de messages entre les éléments du système et les acteurs
extérieurs.
❑Les messages les plus courants sont :
• Des opérations liées au cas d’utilisation
• Des opérations internes qui appartiennent aux classes de système.
140. Diagrammes de séquence
Éléments du diagramme de séquence
▪ Acteurs
▪ Objets (instances)
▪ Messages (cas d'utilisation, appels d’opération)
Principes de base : Représentation graphique de la chronologie des échanges de
messages avec le système ou au sein du système
▪ « Vie » de chaque entité (le Temps) représentée verticalement
▪ Échanges de messages représentés horizontalement
141. Diagrammes de séquence
Éléments de base
Les instances de la classe est noté : nom de la classe et souligné; même chose pour les acteurs
142. Diagrammes de séquence
Éléments de base
Appel d’une opération: représenté par une flèche pleine
Valeur renvoyée ou message de réponse : représentée par une flèche pointillé
143. Diagrammes de séquence
Éléments de base
Ligne de vie : représente un participant à une interaction. C’est par exemple un des
objets du système ou un acteur extérieur.
144. Diagrammes de séquence
Éléments de base
Période d’activité (exécution) : marque le fait qu’un élément soit actif. Cette période
commence généralement à la réception d’un message et peut se clôturer par l’envoi d’une
réponse.
146. Diagrammes de séquence
Types de messages
• Message synchrone : Émetteur bloqué en attente du retour
• Message asynchrone : Émetteur non bloqué, continue son exécution
147. Diagrammes de séquence
Création et destruction d'objet
• Un message peut également commander la création ou la destruction d’un
objet.
• La destruction d’un objet, se représente par « X »
148. Diagrammes de séquence
Message réflexif
• Un message réflexif ne représente pas l'envoi d'un message, il
représente une activité interne à l'objet (qui peut être détaillée dans
un diagramme d'activités).
149. Exercice
Rédigez un diagramme de séquence basé sur l’énoncé suivant:
• Le guichetier ouvre une session
• Le guichetier saisit le numéro de compte du client.
• Le système guichet valide le compte auprès du système central.
• Le système guichet demande le type d’opération au guichetier
• Le guichetier sélectionne le montant du retrait
• Le système guichet interroge le système central pour s’assurer que le
compte est suffisamment approvisionné
• Le système guichet demande au système central de débiter le compte
• Le système notifie au guichetier qu’il peut délivrer le montant demandé
150.
151. Diagrammes de séquence
fragment de séquence
• UML propose une notion de bloc appelé « fragment de séquence »
permettant d’inclure dans un rectangle des sous-parties de
diagrammes de séquence.
• Un fragment de séquence indique dans le cartouche situé dans le coin
haut à gauche le nom de l’opérateur du fragment. Une autre raison de
l’intérêt des fragments est la possibilité d’exprimer les instructions de
choix, les itérations... des algorithmes classiques
153. Diagrammes de séquence
Alternative
Parfois on a besoin de décrire les algorithmes avec des conditions. par exemple ici on a besoin de décrire ce qui fait
l'ascenseur dans le cas où l'étage demandé est un étage courant et dans le cas inverse on fixe un message de condition
entre crochet pour préciser le contexte dans lequel le message et envoyer. Si l'étage demandé est l'étage courant on
demande la porte de s'ouvrir sinon on demande à la cabine de se déplacer jusqu'à l'étage demandé.
154. Diagrammes de séquence
Alternative
Donc pour montrer que les deux condition sont en relation on fait apparaitre un bloc appelé Alt on le sépare par
un trait pointillé
155. Diagrammes de séquence
Boucle
• Opérateur loop : Répéter un enchaînement de messages. permet de
modéliser des itérations.
Notation :
Note
bloc de boucle loop
On peut avoir besoin de représenter des boucles grâce à une note ou bien on peut utiliser un bloc appelé loop pour
encadrer les messages qui doivent être répéter en précisant dans loop les objets qu'il faut parcourir
ici par exemple pour tous les livres du catalogue on va appeler l'opération PremierAuteur()
156. Diagrammes de séquence
Référence à un autre diagramme
Le fragment de séquence ref: permet d’inclure une sous-séquence du
diagramme de séquence, la sous-séquence étant décrite dans un autre
diagramme de séquence.
157. Exercice: Etude d’une caisse de supermarché
Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en
compte que le cas du paiement en liquide. Le déroulement normal d’utilisation d’une
caisse de supermarché est le suivant :
1. Un client arrive à la caisse avec ses articles à payer
2. Le caissier enregistre le numéro d’identification de chaque article, ainsi que la
quantité si elle est supérieure à 1
3. La caisse affiche le prix de chaque article et son libellé
4. Lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
5. La caisse affiche le total des achats
6. Le caissier annonce au client le montant total à payer
7. Le client choisit son mode de paiement: liquide : le caissier encaisse l’argent, la
caisse indique le montant à rendre au client. chèque : le caissier note le numéro
de pièce d’identité du client. carte de crédit : la demande d’autorisation est
envoyée avant la saisie
8. La caisse enregistre la vente et l’imprime
9. Le caissier donne le ticket de caisse au client