Vous êtes sur la page 1sur 52

Conception Orientée Objets des Systèmes d’informations

Introduction à UML

Elaboré par Dr. Emna HKIRI


Emna.hkiri@gmail.com

Polytech de Monastir 2022-2023


Plan
 Concepts de l’approche objets et présentation d’UML2
 Modélisation des besoins
 Diagrammes de cas d’utilisation
 Modélisation de la structure statique
 Diagramme de classes
 Diagramme d’objets
 Modélisation du comportement dynamique
 Diagrammes d’interaction
 Diagramme de séquence
 Diagramme de collaboration
 Diagramme d’états-transition
 Diagramme d’activités

2
Plan du chapitre
I. Introduction
II. Diagrammes de classes: définitions ,utilisation & exemple
III. Paquetages
IV. Classe représentation UML
V. Propriétés : attributs et relations
VI. Encapsulation & exemple
VII. Relations entre classes
VIII. Héritage simple & héritage multiple
IX. Polymorphisme
X. Construction d’un DC
XI. Exercice d’application

3
Introduction

 Les diagrammes de cas d'utilisation-use cases- modélisent à QUOI sert le


système???.

 Le système est composé d'objets qui interagissent entre eux et avec les
acteurs pour réaliser ces cas d'utilisation.

 Les diagrammes de classes permettent de spécifier la structure et les liens


entre les objets dont le système est composé.

4
Diagramme de classes: exemple

5
Diagramme de classes : définitions
 Point central de la modélisation du système pour exprimer sa structure statique.

 Représentation d’un ensemble de classes,


d’interfaces
et de paquetages
et leurs relations.

 Une classe décrit un ensemble d’objets (instances de la classe).

6
Utilisation du Diagramme de classes :
 Lors de l’analyse et de la conception:
– Définitions formelles des objets qui composent le système à partir des cas
d’utilisation et des diagrammes d’interaction (séquences et collaboration).
– Bases conceptuelles pour les diagrammes d’´etat-transition, de déploiement, ...

 Lors de l’implantation :
– Génération automatique des structures statiques du système (classes,
relations, ...).

7
Diagramme de classes: Les Classes

8
Les Classes
 Une classe est la description d'un ensemble d'objets ayant une sémantique, des
attributs, des méthodes et des relations en commun.
Elle spécifie l'ensemble des caractéristiques qui composent des objets de même type.

 Une classe est composée


d'un nom, d'attributs et
d'opérations.

 Selon l'avancement de la
modélisation, ces
informations ne sont pas
forcement toutes connues.

9
Classes : Représentation UML
 Représentation UML: On peut ne pas visualiser les attributs et/ou les opérations, afin de
ne pas alourdir inutilement le schéma.

Exemple:

10
Propriétés : attributs et opérations
 Les attributs et les opérations sont les propriétés d'une classe.
 Leur nom commence par une minuscule.
 Un attribut décrit une donnée de la classe.
 Une opération est un service offert par la classe (un traitement que les objets
correspondant peuvent effectuer)

Article
+Désignation : string
+Prix : float=0
 Exemple: +avisInternautes: commentaire [0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
+getPrix(): float

11
Propriété: Attribut

 Définition : propriété définie par un nom, un type et éventuellement une valeur initiale.
 Les types des attributs et leurs initialisations ainsi que les modificateurs d'accès peuvent être
précisés dans le modèle
 Syntaxe UML :[ visibilité ] nom attribut [ multiplicité ]:type attribut [ = valeur initiale ]
 visibilité : (privé; public et protégé)
 nom attribut : identificateur de l’attribut, unique au sein de la classe.
 multiplicité : l’attribut représente un ensemble de valeurs;
 exemple de tableau: Parents[ 1..2 ] : Personne.
 valeur initiale : valeur prise par l’attribut lors de l’instanciation de la classe (valeur en concordance avec
le type de l’attribut). Article
+Désignation : string
+Prix : float= 0
+avisInternautes: commentaire
[0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
12 +getPrix(): float
Les opérations
 Une opération est définie par son nom ainsi que par les types de ses paramètres
et le type de sa valeur de retour.

 La syntaxe de la déclaration d'une opération est la suivante :


visibilité nomOperation ( parametres ): ClasseRetour
 La syntaxe de la liste des paramètres est la suivante :
nomClasse1 nomParam1 , ... , nomClasseN nomParamN

Article
Désignation : string
Prix : float=0
avisInternautes: commentaire [0..1]
+acheter()
+aperçu()
+setPrix(value: float) :void
13 +getPrix(): float
Les opérations
 Syntaxe UML:
[ visibilité ] nom opération ( [ arguments ] ) : type retourné propriétés
 visibilité: (privé; public et protégé)
 nom opération : identificateur de l’opération, unique au sein de la classe.
 type retourné : type de la valeur retournée par l’opération; si omis l’opération ne
retourne aucune valeur.

 Exemple:

14
Encapsulation
 L'encapsulation est un principe de conception consistant à protéger le cœur d'un
système des accès intempestifs venant de l'extérieur.
 En UML, utilisation de modificateurs d'accès sur les attributs ou les classes:
 Public ou «  + » : propriété ou classe visible partout
 Protected ou «  # » . propriété ou classe visible dans la classe et par tous ses descendants.
 Private ou « - » : propriété ou classe visible uniquement dans la classe
 Package, ou « ~ » : propriété ou classe visible uniquement dans le paquetage
 Il n'y a pas de visibilité « par défaut » .

Package (paquetage):
 Les packages contiennent des éléments de modèle de haut niveau, comme des
classes, des diagrammes de cas d'utilisation ou d'autres packages. On organise les
éléments modélisés en packages et sous-packages.

15
Encapsulation
Visible

B
Visible

Héritage

Visible
C

16
Exemple d'encapsulation des packages
 Les modificateurs d'accès sont également applicables aux opérations.

17
Diagramme de classes: Les associations/relations

18
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe

La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction

19
Association
 Définition : relation entre au moins deux classes qui entraînent des connexions entre leurs instances.
 Représentation UML: trait reliant les deux classes en relation.

 Exemple:
Appartenir

Note : ne pas utiliser à la fois le nommage d’une association et les rôles des extrémités de la même
association.
20
Multiplicités des associations
 La notion de multiplicité permet le contrôle du nombre d'objets intervenant dans chaque instance
d'une association.

 Exemple:: un article n'appartient qu'à une seule catégorie (1) ; une catégorie concerne plus de 0
articles, sans maximum (*).

 La syntaxe est MultMin..MultMax.


 1  1..1 (exactement 1) | *  0..* ( 0 ou plusieurs)
 n  n..n (exactement n) | 1..*  1 ou plusieurs ( 1ou plus)
 0..1  0 ou 1 (au plus un) | 1..100  entre 1 et 100
 2,4,5  exactement 2,4 ou 5

21
Navigabilité d'une association
 La navigabilité permet de spécifier dans quel(s) sens il est possible de traverser
l'association à l'exécution.
 On restreint la navigabilité d'une association à un seul sens à l'aide d'une flèche.

 Exemple: : Connaissant un article on connaît les commentaires, mais pas l'inverse.

22
Association : rôles des extrémités
• Les extrémités des associations peuvent être qualifiées par des rôles.
• Un rôle indique comment une classe Source voit une classe Destination.

Le rôle est un pseudo-attribut de la classe source (utilisé comme un attribut).

23
Associations réflexives
 L'association la plus utilisée est l'association binaire (reliant deux classes).

 Parfois, les deux extrémités de l'association pointent vers la même classe. Dans ce cas,
l'association est dite « réflexive » .
 Exemple:

Salarié 1 A pour mère


Est le subordonné de
0..*

0..1
Est le supérieur de 0..*
A pour enfant

24
Association : contraintes
 Les contraintes (prédéfinies) souvent utilisées :
 {ordonné}
 {sous ensemble}
 {xor}
 {addOnly}
 {frozen}

25
Association : contraintes
 Contrainte {ordonné} Indique que les objets seront ordonnés à chaque opération de
création, modification, suppression, …
 Exemple: Les comptes d’une personne sont ordonnés

 Contrainte {sous-ensemble} : Indique qu’une collection est incluse dans une autre.
Elle nécessite la présence d’au moins deux relations
 Exemple: Les personnes qui jouent le rôle de délégué font partie des personnes

26
Association : contraintes
 Contrainte {xor}: Indique que parmi un groupe d’associations, une seule est
valide à la fois

 Exemple: Un PC Portable est alimenté soit à partir d’une batterie, soit à partir
d’un secteur

27
Association : contraintes
 Contrainte {addOnly}:La contrainte prédéfinie {addOnly} autorise l’ajout de
nouveaux objets, mais pas leur suppression ni leur mise à jour.

 Exemple

28
Association : contraintes
 Contrainte {frozen}: La contrainte prédéfinie {frozen} interdit l’ajout, la
suppression ou la mise à jour des liens d’un objet vers les objets de la classe
associée, après l’initialisation du premier.
 Exemple:

29
Classe-association
 Une association peut être raffinée et avoir ses propres attributs, qui ne sont
disponibles dans aucune des classes qu'elle lie.
 Cette association devient alors une classe appelée « classe-association » .
 Une classe-association peut avoir d’association avec d’autres classes
 Exemple:

30
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe

La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction

31
Association de type agrégation
 Une agrégation est une forme particulière d'association.
 Elle représente la relation d'inclusion d'un élément dans un ensemble.
 On représente l'agrégation par l'ajout d'un losange vide du côté de l'agrégat.
 Une agrégation dénote une relation d'un ensemble à ses parties. L'ensemble est
l'agrégat et la partie l'agrégé.

Equipe Département

Joueurs Enseignants

32
Association de type agrégation : exemple
Exemple:

33
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe

La relation de composition
décrit une contenance
structurelle entre instances
Une relation d'héritage est
une relation de
généralisation/spécialisation
permettant l'abstraction

34
Association de type composition
 La relation de composition décrit une contenance structurelle entre instances. On
utilise un losange plein.
 La composition implique :
– la durée de vie des composants est la même que celle du composite.
– la multiplicité du côté du composite prend ses valeurs dans 0 ou 1.
 Une instance de la partie n'appartient jamais à plus d'une instance de l'élément
composite.

35
Composition et agrégation
 Dès lors que l'on a une relation du tout à sa partie, on a une relation d'agrégation ou de
composition.
La composition est aussi dite « agrégation forte » .
 Pour décider de mettre une composition plutôt qu'une agrégation, on doit se poser
les questions suivantes :
 Est-ce que la destruction de l'objet composite (du tout) implique nécessairement la
destruction des objets composants (les parties) ? C'est le cas si les composants n'ont pas
d'autonomie vis-à-vis des composites.

 Lorsque l'on copie le composite, doit-on aussi copier les composants, ou est-ce qu'on peut
les «  réutiliser » , auquel cas un composant peut faire partie de plusieurs composites ?

Si on répond par l'affirmative à ces deux questions, on doit utiliser une composition.

36
Exemple composition et agrégation
 La création (copie, destruction) du composite (container) implique la
création (copie, destruction) de ses composants
 Un composant appartient à au plus un composite

37
Exercice 1: énoncé
 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.
1. Donnez le diagramme de classes.
2. Utilisez les contraintes pour affiner les relations.

38
Exercice1 : Corrigé

39
Relations entre classes
Une relation d'agrégation
Une association représente la relation d'inclusion
représente une relation d'un élément dans un
sémantique entre les ensemble.
objets d'une classe

La relation de composition
décrit une contenance
Une relation d'héritage est structurelle entre instances
une relation de
généralisation/spécialisation
permettant l'abstraction

40
Relation d'héritage
 L'héritage une relation de spécialisation/généralisation.

 Les éléments spécialisés


héritent de la structure
et du comportement des
éléments plus généraux
(attributs et opérations)

 Exemple: : Par héritage


d'Article, un livre a
d'office un prix, une
désignation et une
opération acheter(), sans
qu'il soit nécessaire de le
préciser
41
Relation d'héritage
 Définition : relation entre une classe plus générale et une classe plus spécifique
(signifie “est un” ou “est une sorte de”). Ce n’est pas une association.!!!!

 L’ élément plus spécifique peut contenir des informations qui lui sont propres, à
condition que ces informations et la description des éléments plus généraux soient
totalement cohérentes.

 Deux types de généralisation :


 simple
 multiple.

42
Relation d'héritage et propriétés

 La classe enfant possède toutes les propriétés


de ses classes parents (attributs et opérations)
 La classe enfant est la classe spécialisée (ici Livre)
 La classe parent est la classe générale (ici Article)
 Toutefois, elle n'a pas accès aux propriétés privées.

43
Représentation UML
 Représentation UML : flèche triangulaire blanche orientée vers la classe la plus
générale.

44
Héritage multiple
 Une classe peut avoir plusieurs classes parents. On parle alors d'héritage multiple.
 Le langage C++ est un des langages objet permettant son implantation effective.
 Java ne le permet pas.

 Exemple:

45
Polymorphisme
 • Définition : mécanisme permettant à une classe fille la spécialisation d’opérations.

 L’exécution de l’opération mange() déprendra du type réel de l’objet


 Lion::mange() pour un Lion et Vache::mange() pour une vache

46
Exemple concret
 Pour compléter ce qui a été dit sur le polymorphisme, on fait l'exemple des animaux.
On manipule les animaux(chien , chat et canari) et sur l'un d'entre eux, on veut lui
faire faire la méthode « être content ».
 Mais comme il ne font pas l'action de la même façon, on doit avant analyser le type
d'animaux :,.

Un chien remue la queue Un chat ronronne Un canari chante


quand il est content quand il est content quand il est content

47
Application:
 Soient les phrases suivantes :
• Un répertoire contient des fichiers
• Les modems et claviers sont des périphériques d’entrée / sortie
• Une transaction boursière est un achat ou une vente
• Un compte bancaire peut appartenir à une personne physique ou morale

 Elaborez les diagrammes de classe correspondants en choisissant le type de relation


approprié

48
Exercice d’application
 Une académie souhaite gérer les cours dispensés dans plusieurs collèges. Pour cela, on dispose
des renseignements suivants :
 Chaque collège possède d’un site Internet. Chaque collège est structuré en départements, qui
regroupent chacun des enseignants spécifiques. Parmi ces enseignants, l’un d’eux est responsable
du département.
 Un enseignant se définit par son nom, prénom, tél, mail, date de prise de fonction et son indice.
Chaque enseignant ne dispense qu’une seule matière.
 Les étudiants suivent quant à eux plusieurs matières et reçoivent une note pour chacune d’elle.
Pour chaque étudiant, on veut gérer son nom, prénom, tél, mail, ainsi que son année d’entrée au
collège.
 Une matière peut être enseignée par plusieurs enseignants mais a toujours lieu dans la même
salle de cours (chacune ayant un nombre de places déterminé)
 On désire pouvoir calculer la moyenne par matière ainsi que par département
 On veut également calculer la moyenne générale d’un élève et pouvoir afficher les matières dans
lesquelles il n’a pas été noté. Enfin, on doit pouvoir imprimer la fiche signalétique ( prénom, tél,
mail) d’un enseignant ou d’un élève.
 Travail
49 demandé: Elaborez le diagramme de classes correspondant
50
Construction d'un diagramme de classes
1) Trouver les classes du domaine étudié ;
 Souvent, concepts et substantifs du domaine.
2) Trouver les associations entre classes ;
 Souvent, verbes mettant en relation plusieurs classes.
3) Trouver les attributs des classes ;
 Souvent, substantifs correspondant à un niveau de granularité plus fin que les classes.
Les adjectifs et les valeurs correspondent souvent à des valeurs d'attributs.
4) Organiser et simplifier le modèle en utilisant l'héritage;
5) Tester les chemins d'accès aux classées ;
6) Itérer et raffiner le modèle.

51
Schéma Récapitulatif

52

Vous aimerez peut-être aussi