0% ont trouvé ce document utile (0 vote)
30 vues48 pages

Module 5

Le document traite de la modélisation UML, en se concentrant sur les diagrammes de classes et d'objets qui représentent la structure statique d'un système. Il explique comment identifier les classes, leurs attributs et opérations, ainsi que les relations entre elles, telles que l'association, l'agrégation et la composition. Le document aborde également des concepts avancés comme la généralisation et les contraintes sur les associations.

Transféré par

Sékou Doucouré
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues48 pages

Module 5

Le document traite de la modélisation UML, en se concentrant sur les diagrammes de classes et d'objets qui représentent la structure statique d'un système. Il explique comment identifier les classes, leurs attributs et opérations, ainsi que les relations entre elles, telles que l'association, l'agrégation et la composition. Le document aborde également des concepts avancés comme la généralisation et les contraintes sur les associations.

Transféré par

Sékou Doucouré
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chargé de cours: Dr Yacouba GOITA

Modélisation UML
Diagramme de classes
Diagramme d’objets

Module 5
©eni-abt_2024
Modélisation structurale
• Les classes et les objets modélisent les entités matérielles ou
immatérielles qui existent dans le système qu’on essaye de
décrire
• Les relations entre les classes (ou entre les objets)
établissent les connexions entre les divers éléments de
modélisation et montrent leur agencement architectural
• Le diagramme de classes et le diagramme d’objets sont les
pièces maîtresses de la vue structurale
– Dans UML, ils sont répertoriés comme des diagrammes
montrant la structure "statique"
– Le diagramme d’objets est un exemple du diagramme de classe
qui donne une photographie du système dans le temps

©eni-abt_2024
Diagramme de classes
• Le diagramme de classes décrit la vue statique du
système en terme de classes et de relations entre elles
• Le diagramme de classes est utilisé dans l’analyse, la
conception et le développement
• N’oubliez pas que les use-cases seront implantés par la
collaboration entre un ensemble d’objets
• Pour créer un diagramme de classes, il faut :
– Identifier et décrire les classes
– Identifier et décrire les relations qui existent entre ces
classes
©eni-abt_2024
Diagramme de classes
• Comment trouver les classes ?
– Quelles sont les informations qui doivent être stockées et
analysées ?
• Une information qui doit être stockée, transformée, analysée ou
traitée est candidate d’une classe. L’information étant prise dans
son sens le plus large (donnée, événement, transaction, etc.)
– A-t-on des systèmes externes ?
• Un système externe pourrait être vu comme une classe qui n’est
pas dans le système étudié mais qui interagit avec lui
– A-t-on des patrons, librairies de classes, composantes, etc. ?
• Ces choses contiennent des classes candidates
– Y a-t-il des supports que le système doit traiter ?
• Tous les supports techniques connectés au système se
transforment en classes candidates qui traitent ces supports

©eni-abt_2024
Diagramme de classes
• Comment trouver les classes ? (suite …)
– A-t-on des parties organisationnelles en contact avec
le système?
• Ces unités sont représentées par des classes
– Quels rôles ont les acteurs dans le système ?
• Ces rôles peuvent être vus comme des classes
• Exemples : Utilisateur, Opérateur système, client, etc.
– Critère à appliquer : si l’on ne peut demander à un
élément que sa valeur, il s’agit d’un simple attribut; si
plusieurs questions s’y appliquent, il s’agit plutôt d’un
objet qui possède lui-même plusieurs attributs, ainsi
que des liens avec d’autres objets
©eni-abt_2024
Diagramme de classes
• Représentation d’une classe
– Le nom
• Écrit en gras et centré Nom Voiture
• Dérivé du domaine du problème Matricule
• Non ambigu Marque
Attributs Vitesse
Nbrportes

Opérations Conduire()
– Les attributs
• Décrivent les caractéristiques des objets
• Captent l’information qui décrit et identifie
une instance spécifique de la classe
• Seuls les attributs intéressants du système doivent être modélisés

©eni-abt_2024
Diagramme de classes
• Représentation d’une classe (suite …)
– Les attributs
• Un attribut est typé (type de base ou type composé) et possède
une visibilité
• La visibilité décrit si l’attribut est visible lorsqu’il est référencé à
partir des classes autres que celle où il est défini
• Exemples de visibilité
– Privé (-) : L’attribut ne peut pas être accédé à partir d’autres
classes
– Publique (+) : L’attribut peut être vu et utilisé par d’autres classes
– protégé (#) : L’attribut est utilisé par les sous-classes de la classe

©eni-abt_2024
Diagramme de classes
• Représentation d’une classe (suite …)
– Les attributs
• Exemple

Abonné
+ Nom : String
+ Prénom : String
+ Âge : Integer
# login : String
# motdepasse : String

©eni-abt_2024
Diagramme de classes
• Représentation d’une classe (suite …)
– Les opérations
• Utilisées pour manipuler les attributs ou exécuter certaines actions
• Signature d’une opération = Son nom, son type de retour et ses
paramètres
• Les opérations décrivent ce qu’une classe peut faire et quels
services elle offre aux autres classes
• Les mêmes visibilités s’appliquent aux attributs et aux opérations
(publique, protégé, privé)
• Exemple
Abonné
+ Nom : String
# login : String
# motdepasse : String
+ Ouvrir-session()
©eni-abt_2024
# changeMotPasse()
Diagramme de classes
• Représentation d’une classe (suite …)
– Les opérations
• En orienté objet, on considère que l’objet sur lequel on pourra
réaliser un traitement doit le déclarer en tant qu’opération. Les
objets qui sont en relation avec cet objet pourront alors lui envoyer
un message qui invoque cette opération
• Exemple

Agence-voyage Vol
propose

ouvrirReservation()
fermerReservation()

©eni-abt_2024
Relations entre les classes
• Association
– C’est une connexion entre les classes (elle est aussi une
connexion entre les objets de ces classes)
– Association orientée
Classe1 Classe2

Les objets de Classe1 sont accessibles aux objets de Classe2

– Association non orientée (Bi-directionnelle)

Classe1 Classe2

Les objets de Classe2 sont accessibles à partir de ceux de


Classe1 et vice-versa
©eni-abt_2024
Relations entre les classes
• Association
– Multiplicités

1 Un et un seul
0 .. 1 Zéro ou un
n n (entier naturel)
m .. n De m à n (entiers naturels)
 De zéro à plusieurs
0 ..  De zéro à plusieurs
1 ..  De un à plusieurs

©eni-abt_2024
Relations entre les classes
• Association
– Multiplicité
• Exemples
Personne 1..* 0..* Voiture

Président 1 1 Pays

Voiture 1 4 Roue

Nœud *
Un réseau est composé de nœuds
* inter-connectés

Association réflexive
©eni-abt_2024
Relations entre les classes
• Association
– Nommage des associations
• Une association peut être nommée pour faciliter la compréhension
du modèle. Dans ce cas, le nom est indiqué au milieu du lien
symbolisant l’association

A nom B

• L’usage recommande de choisir comme nom d’une association une


forme verbale active (exemple : travaille pour) ou passive (exemple
: est employé par)

Personne travaille pour Société

Personne est employée par Société


©eni-abt_2024
Relations entre les classes
• Association
– Nommage des associations
• Par défaut le sens de la lecture du nom d’une association est de
gauche à droite
• Dans le cas où la lecture du nom est ambiguë, on peut ajouter l’un
des signes < ou > pour indiquer le sens de lecture
• Exemples

Société < travaille pour Personne

Personne 1
*

< est père de


©eni-abt_2024
Relations entre les classes
• Association
– Rôles des extrémités d’une association
• On peut attribuer à une extrémité d’une association un nom appelé
rôle qui décrit comment une classe source voit une classe
destination au travers de l’association
• Le rôle est placé près de la fin de l’association et à côté de la
classe à laquelle il est appliqué
• L’utilisation des rôles est optionnelle
• Représentation et exemple

A B
rôle de B

Société employeur Personne


employé

©eni-abt_2024
Relations entre les classes
• Association
– Classe d’association
• Il est possible de représenter une association par une classe pour
ajouter par exemple des attributs ou des opérations à l’association
• La classe attachée à l’association est appelée une classe
d’association ou classe associative
• La classe d’association possède à la fois les caractéristiques d’une
association et celle d’une classe et peut à ce titre participer à
d’autres relations dans le modèle
• La classe d’association est attachée à l’association avec une ligne
en pointillée

©eni-abt_2024
Relations entre les classes
• Association
– Classe d’association
• Représentation et exemple

Classe A Classe B

Classe C

Étudiant 1..* Inscrit à > 0..* Cours

Évaluation

©eni-abt_2024
Relations entre les classes
• Association
– Association ternaire
• Trois classes sont associées ensemble
• Configuration déconseillée
• Exemple

Professeur
1

1..*
Étudiant

1
Salle
©eni-abt_2024
Relations entre les classes
• Contraintes sur les associations
– Association ordonnée
• C’est une contrainte qui spécifie que les objets sont ordonnés
(selon la clé, le nom, la date, etc.)
• Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté
de la classe dont les instances sont ordonnées

Entreprise 0..* 0..* Produits


{Ordonné}

• Le modèle ne spécifie pas comment les objets sont ordonnés


• Pour décrire comment les objets sont ordonnés on utilise la
notation graphique suivante :
Ordonné
par ...

©eni-abt_2024
Relations entre les classes
• Contraintes sur les associations
– Association « ou-exclusif »
• Elle spécifie que les objets d’une classe peuvent participer au
meilleur des cas dans une association pour un certain temps
• Exemple

Contrat *
d’assurance Un contrat d’assurance concerne une
entreprise ou une personne mais pas
*
{XOR}
les deux en même temps

1..* 1..*
Personne Entreprise

©eni-abt_2024
Relations entre les classes
• Contraintes sur les associations
– Association « sous-ensemble »
• C’est une contrainte qui indique qu’une collection est incluse dans
une autre collection
• La contrainte est placée à proximité d’une relation de dépendance
entre deux associations
• La flèche de la relation de dépendance indique le sens de la
contrainte
• Exemple

1..* Membre de > 1


Politicien {Sous-ensemble} Parti politique
1 Chef de > 1

©eni-abt_2024
Relations entre les classes
• Association
– Association qualifiée
• La qualification d’une association (ou restriction d’une association)
consiste à sélectionner un sous-ensemble d’objets parmi l’ensemble
des objets qui participent à une association
• La qualification est réalisée au moyen d’un qualitatif ou clé
• Elle réduit la multiplicité effective du modèle

Classe A qualitatif * Classe B

{sous-ensemble} *

:B :B
:B :B
sans clé :B

avec clé
:A
©eni-abt_2024
Relations entre les classes
• Association
– Association qualifiée
• Exemple

Un répertoire contient 0 ou plusieurs


Répertoire * * Fichier
fichiers. Un fichier peut exister dans 0
ou plusieurs répertoires

Chaque fichier est identifié


Répertoire Image * Fichier par un identificateur dans
le répertoire

©eni-abt_2024
Relations entre les classes
• Agrégation
– Une agrégation représente une association non symétrique dans
laquelle une des extrémités joue un rôle prédominant par
rapport à l’autre extrémité
– L’agrégation représente une relation de type ensemble/élément
– L’agrégation ne concerne qu’un seul rôle (une extrémité) d’une
association
– Représentation
Agrégat Élément agrégé

– L’agrégation permet de modéliser une contrainte d’intégrité et


de désigner l’agrégat comme gérant de cette contrainte

©eni-abt_2024
Relations entre les classes
• Agrégation
– Exemple 1
• Une personne se trouve dans une foule
• Une foule contient plusieurs personnes

Foule * Personne
Contient >

– Exemple 2 (Agrégation partagée)


• Une personne fait partie de plusieurs équipes
• Une équipe contient plusieurs personnes
* * Personne
Équipe
< membre

©eni-abt_2024
Relations entre les classes
• Composition
– La composition est un cas particulier de l’agrégation avec un
couplage plus important
– La classe qui possède le rôle prédominant dans une composition
est appelée classe composite ou classe conteneur
– La composition implique une contrainte sur la valeur de la
multiplicité du côté du composite qui doit être 0 ou 1. Cela veut
dire qu’il n’y a pas de partage des composants
– Représentation

0..1
Composite Composant

©eni-abt_2024
Relations entre les classes
• Composition
– Exemple 1 Tête
1
Corps
Possibilité 1 Personne
2 Main
2
Pied

Personne
Possibilité 2
1 1 2 2
Tête Corps Main Pied

©eni-abt_2024
Relations entre les classes
• Composition
– Dans une composition, la destruction du composite implique
automatiquement la destruction de tous ses composants
– La composition et l’agrégation sont 2 vues subjectives qui sont
utilisées pour ajouter de la sémantique au modèle lorsque c’est
pertinent de le faire
– Exemple

Molécule * Atome

©eni-abt_2024
Relations entre les classes
• Généralisation
– C’est une relation de classification entre un élément général et
un élément plus spécifique
– L’élément le plus spécifique est cohérent avec l’élément le plus
général et contient plus d’informations
– Exemple
Véhicule

Voiture Bus Camion

©eni-abt_2024
Relations entre les classes
• Généralisation
– Généralisation avec restriction

{Contrainte1, Contrainte2, ...}

B C ... N

©eni-abt_2024
Relations entre les classes
• Généralisation
– Généralisation avec restriction
• Exemples
Personne

{disjoint}

Homme Femme

Moyen de transport

Incomplet veut dire qu'il


{incomplet}
peut exister d'autres
moyens de locomotion
Auto Train Avion non énumérés
©eni-abt_2024
Relations entre les classes
• Raffinement
– C’est une relation entre 2 descriptions d’une même chose mais
à des différents niveaux d’abstraction
– Exemple

Classe de la conception Classe de l’analyse

©eni-abt_2024
Relations entre les classes
• Dérivation
– C’est une règle qui indique comment certaines choses peuvent
être dérivées
– L’attribut dérivé est indiqué en faisant précéder son nom d‘un «/»
– Le principe de dérivation est aussi appliqué pour des associations
– Exemple
Article Article
prixVente prixVente
prixAchat OU prixAchat
{profit =
/profit /profit
prixVente -
prixAchat}

{profit = prixVente - prixAchat}

©eni-abt_2024
Classe abstraite
• C’est une classe qui ne peut pas être instanciée
• Les classes abstraites forment une base pour les logiciels
extensibles
• Une classe est abstraite si elle dispose d’un attribut ou d’une
méthode abstraite
Figure
• Exemple {Abstract}
Toile *
position : pos
* Dessiner () {Abstract}
Corps vide

Géométrie Polygone Ligne Cercle


*
Dessiner () Dessiner () Dessiner () Dessiner ()

©eni-abt_2024
© Université Laval 2005
Diagramme de classes
• Exemple Réservation
Rabais : Real
Véhicule NumRes : Integer
DateRes : Date
Matricule : String
Montant : Money
Kilométrage : Integer
État : String 1..* *
<concerne Confirmer()
Annuler()
1..*

1
Employé
Camion Voiture
Matricule : String
Charge : Integer Classe : String Nom : String
NbrPlaces : Integer
Démarrer()
Réserver()
Démarrer()
©eni-abt_2024
Diagramme de classes
• Les interfaces
– Les interfaces jouent un rôle important dans la construction de
systèmes
– Une interface décrit le comportement visible d’une classe, d’un
composant, d’un sous-système ou d’un package
– Le comportement visible d’une interface est décrit par des
opérations abstraites dont la visibilité est publique
– Une interface est représentée par un petit cercle ayant un nom

Une classe Une interface

Représentation d’une interface au moyen d’un petit cercle


relié à la classe qui fournit effectivement les services

©eni-abt_2024
Diagramme de classes
• Les interfaces
– Une classe qui utilise l’interface (implantée par une autre
classe) est connectée via une relation de dépendance (une
flèche interrompue) vers le cercle représentatif de cette
interface
– La classe dépendante peut appeler les opérations déclarées
dans l’interface qu’elle utilise
– Exemple
Stockable

Classe A Classe B

Exécutable

Classe C Exécutable
©eni-abt_2024
Diagramme de classes
• Les interfaces
– Pour montrer les opérations dans une interface, on la spécifie
comme une classe avec le stéréotype «interface»
– Exemple

«Interface» «Interface»
Exécutable Stockable
{abstraite} {abstraite}

Exécuter() Charger() {abstraite}


{abstraite} Sauver() {abstraite}

©eni-abt_2024
Diagramme de classes
• Les interfaces
– Une interface peut être réalisée par plusieurs classes
– Une même classe peut réaliser plusieurs interfaces
– Exemple

Crédit
«utilise»
Entreprise Banque La classe Banque
réalise les deux
«utilise» interfaces Crédit et
Assurance

Client «utilise» «Interface»


Assurance

©eni-abt_2024
Diagramme d’objets
• Diagramme d’objets = Diagramme d’instances
• C’est un exemple de diagramme de classes avec des objets
instanciés
• Montre comment le système est vu à un instant t donné dans
le temps
• Notation : dérivée de celle de la classe
• Les diagrammes d’objets sont utilisés pour montrer un
contexte (avant ou après une interaction entre objets par
exemple)
Objet anonyme
• Plusieurs notations possibles

Nom de l’objet Nom de l’objet : Classe : Classe

©eni-abt_2024
Diagramme d’objets
• Représentation d’un groupe d’objets instances d’une
même classe
– Un message vers le groupe d’objets atteint l’ensemble des
objets du groupe

:Personne

• Le nom de la classe peut contenir le chemin complet,


composé à partir des noms des différents paquetages
séparés par des doubles deux-points

BoutonOK : IHM::Contrôles::BoutonPoussoir

©eni-abt_2024
Diagramme d’objets
• Représentation des liens
– Les objets sont reliés par des liens, instances des associations
entre les classes qui donnent naissance aux objets considérés
– Les liens entre objets représentent les connexions entre les
instances des classes à un instant donné seulement (dans un
contexte déterminé). Autrement dit, un diagramme de classe
représente une situation générale alors qu’un diagramme objets
représente une situation particulière
– Exemple
Voiture 1 Moteur :Voiture :Moteur
1
1

4
Roue :Roue :Roue :Roue :Roue
©eni-abt_2024
Diagramme d’objets
• Représentation des liens
– Un lien instance d’une association réflexive peut relier un objet
à lui-même. Dans ce cas, le lien est représenté par une boucle
portée par l’objet en question
– Exemple
Marc : Employé
patron
patron

Michel : Employé

Marie : Employé

Marc est le Michel est le patron


patron de Marie de lui-même

©eni-abt_2024
Diagramme d’objets
• Les objets composites
– Il est possible de représenter les objets composés de sous-
objets au moyen d’un objet composite afin de réduire la
complexité des diagrammes
– L’objet composite se présente comme un objet habituel avec la
différence que les attributs sont remplacés par des objets soit
sous une forme textuelle soulignée soit sous une forme
graphique
– Représentation

Un objet composite

:Partie 1 :Partie 1 :Partie 1

©eni-abt_2024
Diagramme d’objets
• Les objets composites
– Exemple : Fenêtre à l’écran
Fenêtre 1 2 Ascenseur
1

1
Zone de dessin

:Fenêtre

AsVertical:Ascenseur

:Zone de dessin
AsHorizontal:Ascenseur

©eni-abt_2024
Diagramme d’objets
• Exemple de diagramme objets
1 passager *
Diagramme de Bus Personne
classes 1..*
1 conducteur 1

1
Compagnie

B105: Bus passagers :Personne


Diagramme
d’objets
conducteur

STV: Compagnie J. Dupont:Personne

©eni-abt_2024
Références

– P-A. Muller, N. Gaertner, «Modélisation Objet avec UML»


– P. Roques, «UML par la pratique»
– H-E Eriksson & M. Penker, «UML Toolkit»
– B. Moulin, «Object Oriented Project (Design and
Management)»
– N. Tawbi et H. Yahyaoui, «Génie Logiciel IFT-16859 Partie
2, Avril 99»
– [Link]

©eni-abt_2024

Vous aimerez peut-être aussi