Vous êtes sur la page 1sur 51

Cours : Modélisation Objet (UML2)

Chapitre 3 : Diagrammes Statiques (Classes et


Objets)
Enseignante : Amina BOUSSEMA
Année universitaire : 2022-2023
Classe : DSI L2S3

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.

 Le diagramme de classes permet de fournir une représentation abstraite de ces objets

 Le diagramme le plus important de la modélisation orientée objet : le seul obligatoire


3
Diagramme de classes – Définition

 Diagramme de classes est :


▪ Diagramme central du modèle du SI.
▪ Utilisé surtout en conception mais peut être utilisé en analyse
▪ En phase d’analyse : a pour objectif de décrire la structure des entités
manipulées par les utilisateurs.
▪ En phase de conception: représente la structure d’un code orienté objet
▪ Décrit la structure interne du système
▪ Montre les classes et leurs relations statiques.
▪ Le plus riche en notations
▪ Permet la génération automatique du code
▪ Permet de donner une vue statique du système : pas de facteur temporel
▪ Les erreurs dans ce diagramme ont souvent un impact sur les autres
diagrammes
4
Plan
Diagramme de classes – Définition
Concept de classe
Concept de relation
Diagramme d’objets
Contraintes OCL

5
Concept de classe

 Une classe est un concept Abstrait qui permet de représenter toutes les
entités d’un système

 Description d’un ensemble d’objets partageant les mêmes caractéristiques et


les mêmes comportements.

 Avec UML, une classe est définie par :

o Nom

o Attributs

o Opérations.

6
Concept de classe

 Classe = Attributs + Opérations + Mécanisme d’instanciation (Constructeur)


 Remarque : Par abus de langage

 Attribut = propriété = donnée-membre, …

 Opération = méthode = fonction-membre, …

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.

▪ Un attribut est une propriété, caractéristique d’un objet. Par exemple :

▪ un client a un nom, un prénom, une adresse, un code client, …

▪ un compte bancaire a un numéro, un solde, …

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

 Les Notes (Commentaires)

 Lors des phases de modélisation et de


spécification, il est nécessaire de documenter ses
modèles. En UML, on utilise les Notes

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

 Les relations entre classes :

o Association

o Agrégation

o Composition

o Héritage

15
Concept de relation : Association

 Une association est une relation statique bidirectionnelle entre deux ou


plusieurs classes.

 Exemple : la phrase "une personne travaille pour une entreprise" se traduit


par une association entre la classe Personne et la classe Entreprise.

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

 Une association est instanciable dans un diagramme d'objets sous forme de


liens, ou dans un diagramme de collaboration sous forme de messages,

Association
Diagramme de classes C1 C2

:C1 :C2 :C1 :C2


Lien Message

Diagramme d’objet Diagramme de collaboration

17
Concept de relation : Association

 Une association indique qu'il peut y avoir des liens entre des instances des
classes associées (les objets).

 Des instances de l’association Posséder :

{ (P1, V1), (P1, V2), …. (P2, V4), (P2, V7), ….}

V1 : Voiture
Possède

P1 : Personne Lien : relation entre objets

Possède
V2 : Voiture

18
Concept de relation : Association

Notion de rôle :

 On peut donner à une classe un rôle dans une association

 Le rôle permet d'exprimer la manière dont l'objet participe à la relation.

 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

Le rôle est utile surtout dans deux cas :

 Lorsqu’on a plusieurs associations entre deux classes avec des rôles


différents

 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

Valeurs de cardinalité conventionnelles

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

Classe d’association (classe associative)


 Une association peut/doit, parfois, avoir des propriétés. Dans ce cas, ces
propriétés sont encapsulées dans une classe nommée classe d’association.
 En général, elle est utilisée dans les associations de type plusieurs à
plusieurs.
 Une classe-association est représenté par un trait discontinu entre la classe
et l'association qu'elle représente.

Une commande n’existe que s’il existe un client et un article 25


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

 Elaborez le diagramme de classes correspondant à la description ci-dessus.

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

 Une agrégation est une forme particulière d'association non symétrique


exprimant une relation de contenance.

 Les agrégations n’ont pas besoin d’être nommées : implicitement elles signifient
« contient », « est composé de ».

 La destruction de l’agrégat n’entraine pas la destruction de tous ses éléments.


Agrégat (composé) Agrégée (composant)
Page web image

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:

 un élément ne peut appartenir qu’à un seul agrégat composite (agrégation non

 partagée)

 la destruction de l’agrégat composite entraîne la destruction de tous ses


éléments (le composite est responsable du cycle de vie de composants).

 Un objet composant n’existe pas sans son objet composite

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.

▪ Un rectangle a deux sommets qui sont des points. On construit un rectangle à


partir des coordonnées de deux points. Il est possible de calculer sa surface et son
périmètre, ou encore de le translater.

▪ 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:

▪ Une personne peut posséder des immeubles.

▪ Dans un immeuble, on peut trouver des ascenseurs.

▪ Un immeuble est composé d’étages.

▪ Une personne peut posséder des comptes et une adresse.

33
Concept de relation : composition

 Exercice d’application – correction

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 simple Généralisation


Spécialisation

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.

➢ Objectif : factoriser des propriétés communes


à plusieurs sous-classes

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.

 Doit être vérifiées à tout instant

 Elle est exprimée :

 en langage naturel (entre accolades {texte} )

 ou formel (en OCL : Object Constraint Language).

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

La personne qui développe un logiciel ne doit pas tester lui-même


ce logiciel

48
Contraintes OCL : contraintes d’héritage
 {disjoint} : tout objet est au lus une instance d’une sous-classe

 {chevauché} une instance de l’une des spécifications peut être simultanément


une instance de l’autre

 {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.

 Certaines contraintes ont propres au système à modéliser

50
Question?

51

51

Vous aimerez peut-être aussi