Académique Documents
Professionnel Documents
Culture Documents
1
Plan
Diagramme de classes – Définition
Concept de classe
Concept de relation
Diagramme d’objets
Contraintes OCL
2
Diagramme de classes – Définition
Dans la modélisation objet, le système est composé d’objet qui interagissent entre eux
et avec les acteurs pour réaliser les cas d’utilisation.
5
Concept de classe
Une classe est un concept Abstrait qui permet de représenter toutes les
entités d’un système
o Nom
o Attributs
o Opérations.
6
Concept de classe
Nom de la classe
Attributs
Méthodes
7
Concept de classe
Attribut
▪ Un attribut représente une donnée intéressante (dans le cadre du problème)
contenue dans une classe.
8
Concept de classe
La description d’un attribut comporte :
Visibilité attribut:type[= valeur initiale]
Visibilité = type d'accessibilité :
▪ + (publique, public): visible par tous
▪ -(privée, private): visible seulement dans la classe
▪ # (protégée, protected): visible seulement dans la classe et dans les sous-classes
directes de la classe.
Nom d’attribut
Type de l’attribut peut être :
▪ Un type primitif (supporté par les LP) : Entier, réel, chaîne, …
▪ Une classe (type utilisateur) : BOUTON, RECTANGLE, …
▪ Une expression complexe : tableaux, enregistrements, …
Valeur initiale (facultative)
9
Concept de classe
Exemples d’attributs:
➢ -couleur: enum{Rouge, Vert, Bleu}
➢ # b: boolean= vrai
➢ -Client : Personne
Lorsqu’un attribut peut être dérivé ou calculé à partir d'autres attributs, il est
précédé d’un /.
10
Concept de classe
Opération et méthode
▪ Une opération est :
✓ un service offert par la classe
✓ une fonction ou une transformation qui peut être appliquée aux objets
d’une classe.
✓ permet de décrire le comportement d’un objet. Par exemple,
«Embaucher», «Licencier» et «Payer» sont des opérations de la classe
«Société».
▪ Une méthode est
✓ l’implémentation d’un service offert par la classe (opération)
✓ de différents types :
✓ accesseurs (get...) : renvoie une information sur l'état d'un objet (fonction)
✓ modifieurs(set...) : modifie l'état de l'objet (procédure)
✓ constructeurs : initialise une nouvelle instance 11
Concept de classe
Exemple d’Opération
12
Concept de classe
Analyse VS Conception
13
Plan
Diagramme de classes – Définition
Concept de classe
Concept de relation
Diagramme d’objets
Contraintes OCL
14
Concept de relation
o Association
o Agrégation
o Composition
o Héritage
15
Concept de relation : Association
association
Personne Entreprise
Nom : String Travailler pour Raison social : String
Prénom : String marque
Adresse
Chiffre_affaire() : float
Salaire() : float
16
Concept de relation : Association
Association
Diagramme de classes C1 C2
17
Concept de relation : Association
Une association indique qu'il peut y avoir des liens entre des instances des
classes associées (les objets).
V1 : Voiture
Possède
Possède
V2 : Voiture
18
Concept de relation : Association
Notion de rôle :
Chaque rôle est placé à l'extrémité de l'association, du côté de l'objet qui joue
le rôle.
Rôle de
Rôle de
Entreprise dans
Personne dans
l’association
l’association
Personne Entreprise
Nom : String employé Travail pour employeur Raison social : String
Prénom : String
Adresse : string
Chiffre_affaire() : float
Salaire() : float 19
Concept de relation : Association
une relation réflexive : relation entre deux instances d’une même classe
20
Concept de relation : Association
La multiplicité (cardinalités)
indiquée à chaque extrémité d’une association
Permettent de contraindre le nombre d’objets intervenant dans les
instanciations des associations
Une multiplicité d’un coté spécifie combien d’objets de la classe du coté
considéré sont associés à un objet donné de la classe de l’autre coté
Une entreprise Une personne
fait travailler 0 travaille pour
ou plusieurs une seule
personnes entreprise
Personne Entreprise
Nom : String
* Travail pour 1 Raison social : String
Prénom : String
Salaire() : float Chiffre_affaire() : float
21
Concept de relation : Association
1 un et un seul
0..1 zéro ou un
N exactement N (entier naturel)
M..N de M à N (entiers naturels)
0..* de zéros à plusieurs
* de zéros à plusieurs
1..* de 1 à plusieurs
22
Concept de relation : Association
Association Multiple
Deux classes peuvent être reliées à travers plusieurs associations
Personne Appartement
Nom : String 1 propose
* Adresse: String
Prénom : String Pièces : int
* loue * Loyer : float Le rôle est très utile puisque la
même association concerne les
mêmes classes
Vol
DateDepart : date 0..* dessert 1 Aéroport
dateArrivée : date départ nom
0..* dessert 1
Reserver() Arrivée
23
Concept de relation : Association
Association réflexive
Association entre une classe donnée et elle même
24
Concept de relation : Association
Exercice d’application :
Un étudiant peut réaliser plusieurs travaux.
Un travail est réalisé par un ou plusieurs étudiants.
Pour chaque travail réalisé, pour chaque étudiant on lui attribue une note
26
Concept de relation : Association
Exercice d’application :
Un étudiant peut réaliser plusieurs travaux.
Un travail est réalisé par un ou plusieurs étudiants.
Pour chaque travail réalisé, pour chaque étudiant on lui attribue une note
27
Concept de relation : Association
Association n-aire
Une relation entre deux classes est dite binaire
Une relation entre plusieurs classes est dites n-aire
Représentée par un losange
Il vaut mieux limiter leurs utilisations
28
Concept de relation : Agrégation
Les agrégations n’ont pas besoin d’être nommées : implicitement elles signifient
« contient », « est composé de ».
0..* 0..*
La suppression d’une page web n’implique pas la suppression des images qui
la composent 29
Concept de relation : composition
Une composition est une forme particulière d'agrégation (une agrégation plus
forte). Elle implique:
partagée)
30
Concept de relation : composition
Agrégation vs Composition
➢ Titre, texte, destination peuvent être ➢ Siège, roue, moteur ne sont pas
partagés entre plusieurs emails partagés entre plusieurs voitures
➢ La destruction de l’email n’entraine pas ➢ La destruction de la voiture entraine
la destruction de tous éléments la destruction de tous éléments 31
Concept de relation : Association
Exercice d’application 1 :
Pour chacun des énoncés suivants, donnez un diagramme des 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
32 heure
déterminée.
Concept de relation : composition
Exercice d’application 2:
33
Concept de relation : composition
34
Concept de relation : Heritage
Spécialisation/généralisation
La relation de généralisation signifie
est un(e)
est une sorte de
Les sous classes héritent des propriétés, des opérations, des relations et des
contraintes définies dans leur super-classe. Elles peuvent comporter des
informations supplémentaires (attributs, opérations, associations)
Héritage multiple
35
Classe abstraite
Les classes abstraites ne sont pas instanciables directement.
Elle définit au moins une méthode abstraite (On connaît sa déclaration, mais
pas sa définition) ou la classe parent contient une méthode abstraite non encore
réalisée.
En UML, une classe ou une méthode abstraite sont représentées par le
stéréotype «abstract». Graphiquement, celui-ci est représenté soit explicitement,
soit implicitement avec une mise en italiques du nom de la classe ou de la
méthode.
36
Interface
Une interface est une classe totalement abstraite (sans attributs et toutes les
méthodes sont abstraites et publiques)
Stéréotype « interface »
Doit être réalisée (implémentée) par au moins une classe et peut l’être par
plusieurs
37
Interface
Une classe peut également dépendre d’une interface pour réaliser ses
opérations.
Cette dernière est alors employée comme type au sein de la classe (attribut,
paramètre de l’une des méthodes ou variable locale de l’une des méthodes).
38
Etapes pour élaborer un diagramme de
classes
A partir d’une description du système :
1. Identifier un premier ensemble de classes candidates
2. Identifier les associations et les attributs
3. Identifier les généralisations
4. Lister les traitements, choisir les opérations
5. Vérifier le modèle obtenu
6. Itérer jusqu’à satisfaction …
39
Plan
Diagramme de classes – Définition
Concept de classe
Concept de relation
Diagramme d’objets
Contraintes OCL
40
Diagramme d’objets
Présentation des objets
Un groupe d’objets :
41
Diagramme d’objets
Du diagramme de classes vers le diagramme d’objet
42
Diagramme d’objets
Du diagramme de classes vers le diagramme d’objet
Personne Appartement
Nom : String
1 propose * Adresse: String
Prénom : String Pièces : int
Loyer : float
* loue *
Kaisbensalah:
Personne T1:Appartement
loue
Nom = ben salah Adresse=Tunis
Prénom = kais Pièces = 2
propose Loyer = 400
AlibenOmar :
Personne Appartement
Nom = benOmar Adresse= Sousse
loue
Prénom = Ali Pièces = 3
Loyer = 450 43
Plan
Diagramme de classes – Définition
Concept de classe
Concept de relation
Diagramme d’objets
Contraintes OCL
44
Contraintes OCL
Une contrainte UML est une règle de gestion attachée à un élément du modèle.
45
Contraintes OCL : contrainte {ordonné}
Elle est définit sur un rôle et spécifie qu’une relation d’ordre décrit les objets de
la collection
46
Contraintes OCL : contrainte {sous-
ensemble} ou {inclusion}
Elle permet de préciser qu'une collection est incluse dans une autre.
47
Contraintes OCL : contrainte d’exclusion
ou {XOR}
La contrainte d'exclusion indique que tous les objets d’une classe peuvent
participer à l’une des deux associations mais pas aux deux à la fois
48
Contraintes OCL : contraintes d’héritage
{disjoint} : tout objet est au lus une instance d’une sous-classe
{complet} : indique que la généralisation est terminée (il n’est pas possible
d’ajouter d’autres sous-classes)
49
Contraintes OCL : contraintes non prédéfinies
UML permet de spécifier explicitement des contraintes particulières sur des
éléments du modèle.
50
Question?
51
51