Vous êtes sur la page 1sur 46

1440-03-05

Chap2: Les diagrammes de la Vue Statique


- partie 1 -

Cours: Modélisation avec UML


Enseignante: Mme N.Berbiche

Plan

◼ Introduction
◼ Classes
 Attributs
 Opérations
◼ Niveau de signification
◼ Relations entre classes
 Associations
 Association réflexive
 Classe association
 Association qualifiée
 Agrégation
 Composition
 Généralisation
 Polymorphisme
 Héritage
 Réalisation
◼ Diagramme d’objets
◼ Diagramme de paquetages
◼ Diagramme structure compositeé

N.Berbiche EST - Salé 2

1
1440-03-05

Introduction

◼ La vue statique est la base du langage UML.


◼ Elle contient tout ce qui touche habituellement à la structure des
données ainsi qu'à l'organisation des opérations qui s'y appliquent.
◼ Les diagrammes de classes expriment de manière générale la
structure statique d'un système, en termes de classes et de relations
entre ces classes. Outre les classes, ils présentent un ensemble
d'interfaces et de paquetages, ainsi que leurs relations.
Exemple:
◼ Un objet Billet véhicule:
 des données: le prix, la date du spectacle, le numéro du siège,
 les opérations sur cet objet, telles que la réservation et
l'application d'une réduction spéciale dans le calcul du prix.

N.Berbiche EST - Salé 3

Classes et objets

◼ Un objet consiste en quelque chose de physique modélisé par :


 Des données ou Attributs ayant une valeur
 Des opérations valides qui peuvent être effectuées sur l'objet
 Une identité unique

◼ Une Classe décrit une famille d'objets ayant :


 Même structure de données
 Même comportement

◼ Une association décrit un ensemble de liens.

◼ Les objets sont instances des classes et les liens sont instances des
associations.
N.Berbiche EST - Salé 4

2
1440-03-05

Classes

◼ Une classe se présente sous la forme Nom de la classe


d'un rectangle avec des compartiments Attributs
Attribut1
 Le premier contient le nom de la attribut2
classe qui est unique dans le Nom de classe Opérations
paquetage qui contient cette classe Op1()
 Deuxième contient les attributs Op2()
 Troisième contient les opérations Exception
Exception1
◼ Il est possible de définir des exception2
compartiments supplémentaires, pour
lister les responsabilités ou les Représentation graphique des
exceptions. classes

N.Berbiche EST - Salé 5

Exemple de classes et de ses instances

Classe Instance P1 Instance P2

Point P1 : Point P2 : Point


Attributs 10 100
X
Y 20 200

Montrer Montrer Montrer Avec UML, on ne


Cacher Cacher Cacher peut pas représenter
Opérations les opérations sur un
Deplacer Deplacer Deplacer
Diagramme d'objets

◼ Pour simplifier le diagramme, les compartiments


d’une classe peuvent être supprimés.
Nom de classe

◼ Cette suppression reste purement visuelle.

N.Berbiche EST - Salé 6

3
1440-03-05

Classes

Stéréotype Description

◼ Le rectangle qui «class implémentation » Implémentation d’une classe dans un


symbolise la langage de programmation

classe peut «énumération » Une classe qui définit un ensemble


d’identificateurs formant le domaine
contenir un de valeur d’un type
stéréotype «métaclasse» La classe d’une classe

«powertype» Une classe est un métatype

«processus» Une classe active qui représente un


flot de contrôle lourd
«thread» Une classe qui représente un flot de
contrôle léger

«type» Une classe qui définit un domaine


d’objets et les opérations applicables
à ces objets
«utilitaire» Une classe réduite au concept de
module et qui ne peut être instanciée

N.Berbiche EST - Salé 7

Classes

◼ Un mot clé, indiqué entre Mot clé description


guillemets, peut être «acteur» La classe modélise un
utilisé pour renforcer la ensemble de rôles joués par
description d’une classe un acteur intervenant dans
le système

«interface» La classe contient


uniquement une description
des opérations visibles

«signal» La classe modélise des


éléments de type signal

N.Berbiche EST - Salé 8

4
1440-03-05

Attributs

◼ Visibilité Nom_Attribut [“[“Multiplicité“]“] ":" Type_Attribut [ ‘ = ‘ valeur_initiale ]


 Visibilité := ‘+’ | ‘-’| ‘#’

 Multiplicité := (Intervalle | nombre)

 Type_attribut: spécification du type de l’attribut

 Valeur_initiale: expression qui définit la valeur initiale d’un objet


nouvellement créé

◼ Le type des attributs peut être une classe (Rectangle, Cercle..), un type
primitif (entier,chaîne..) ou une expression complexe dont la syntaxe n’est pas
précisé par UML (tableau[temps] de points, etc).

◼ Ces entités sont passées par valeur. Les opérations ne modifient pas les
valeurs des données mais peuvent retourner des résultats sous forme de
valeurs de données.

N.Berbiche EST - Salé 9

Attributs: exemple

Télévision Bouton

-on/off:Bouton Canal
-couleur:enum{gris,noir}
-marque:chaîne
«énumération»
-télétexte:booléen=vrai
-chaînes[5..*]:Canal TypeTV
Prix:Réel -16/9
Type:TypeTV -4/3
Volume:Parallélépipède =(600,650,500)

◼La visibilité et le type de l’attribut existent toujours, mais ne sont éventuellement


pas représentés dans une classe d’un diagramme donné

N.Berbiche EST - Salé 10

5
1440-03-05

Opérations

◼ Visibilité Nom_Opération “(“ Arguments“) “ ‘:’ Type_Retourné {“{“Propriété”}”}


 Visibilité ::= ‘+’ | ‘-’| ‘#’
 Arguments ::= Direction Nom_Argument ‘:’Type_Argument
[‘=‘valeur_par_défaut] [‘,’Arguments]
◼ Direction::= in |out| inout
 Type_Retourné: précise le type retourné par l’opération

◼ La direction d’un argument:


 In: l’argument est un paramètre en entrée seule et non modifié par
l’exécution de l’opération
 Out : l’argument est un paramètre en sortie seule; l’appelant peut récupérer
des informations.
 Inout: l’argument est un paramètre en entrée-sortie, passé à l’opération et
modifiable.

N.Berbiche EST - Salé 11

Opérations : Exemple

Robot

« crée » + robot()
+avancer()
+reculer()
+stopper()
+fixervitesse(vitesse:réel)
+Vitesse(out vitesseActuelle:Réel)
+rotation(angle:Degré, vitesseRotation:Réel=1.0)
+cheminParcouru(inout parcourt :Point[], nb_échantillons)

◼ Les opérations peuvent être stéréotypées. Le stéréotype est placé avant


l’indicateur de visibilité de l’opération et indiqué entre guillemets.

N.Berbiche EST - Salé 12

6
1440-03-05

Visibilité et portée des attributs et des opérations

◼ UML définit trois niveaux de Visibilité Symbole description


visibilité pour les attributs et Public + L’élément est
les opérations: visible pour
tous les clients
de la classe
Protégé # L’élément est
visible pour les
A sous-classes
de la classe
+Attribut public Privé - L’élément est
# Attribut protégé visible pour la
- Attribut privé classe seule
+ Opération publique()
# Opération protégée()
- Opération privée()

N.Berbiche EST - Salé 13

Niveau de signification

◼ Dans un modèle, les classes existent selon plusieurs niveaux de signification


 le niveau d'analyse,
 le niveau de conception
 le niveau d'implémentation.

◼ L'analyse identifie le quoi faire et l'environnement d'un système.

◼ Le quoi faire représente les besoins des utilisateurs.

◼ A un tel niveau, une classe représente un concept logique du


domaine de l'application

◼ Le modèle d'analyse capture la logique essentielle du système sans


entrer dans les problèmes de performance ou de construction.

N.Berbiche EST - Salé 14

7
1440-03-05

Niveau de signification

◼ les diagrammes d’UML, qui montrent des éléments de la


vue logique et qui peuvent être utilisés en analyse:
 Les diagrammes des cas d'utilisation;

 Les diagrammes de classes et d'objets;

 Les diagrammes de collaboration: communication;

 Les diagrammes de séquence;

 Les diagrammes d’activités;

 Les diagrammes d'états-transitions

N.Berbiche EST - Salé 15

Niveau de signification

◼ La conception est comment rendre possible les désirs exprimés par


les utilisateurs dans l’analyse.

◼ A ce niveau, une classe représente la décision d'empaqueter les


informations relatives à l'état et les opérations qui s'y appliquent en
une unité discrète.

◼ Au niveau de la conception, les classes contiennent à la fois le


contenu du monde réel et le contenu informatique

◼ Au niveau de l'implémentation, les classes sont mappées


directement avec le code du langage de programmation.

N.Berbiche EST - Salé 16

8
1440-03-05

Relations entre classes

Relation Fonction Notation

Association Description d'une connexion entre les


instances des classes
Généralisation Relation entre une description plus
spécifique et plus générale utilisée —————
pour l'héritage et pour les déclarations
polymorphes
Dépendance Relation entre deux éléments du ----------------
modèle

Utilisation Situation dans laquelle un élément a "kind"


besoin d'un autre élément pour ----------------
fonctionner correctement
Réalisation Relation entre une spécification et son
implémentation ---------------

N.Berbiche EST - Salé 17

Associations

◼ Les associations sont les connexions grâce auxquelles les objets de


classes différentes peuvent interagir.

◼ L'association binaire entre une paire de classeurs représente le type


d'association le plus courant.

◼ Les associations se représentent en traçant une ligne entre les


classes associées

Classe A Classe B

N.Berbiche EST - Salé 18

9
1440-03-05

Associations

◼ L'instance d'une association est un lien. Un lien binaire contient une


paire d'objets. Chaque valeur de la paire d’objets est unique.
Classe A Classe B

B2:Classe B
A2:Classe A

A1:Classe A B1:Classe B

possible :Deux instances impossible : Deux


d’une même association instances d’une même
reliant deux instances de association reliant deux
classes (objets) différentes mêmes instances de
classes

N.Berbiche EST - Salé 19

Associations

◼ On appelle terminaison d'association chaque connexion d'une


association à une classe.

◼ La plupart des informations liées à une association se situent à une


de ses terminaisons.

◼ Il peut s'agir:
 de noms (noms de rôles) et de visibilité.
 De la multiplicité ou cardinalité: le nombre d'instances d'une
classe qui peut être lié à une instance d'une autre classe

◼ La multiplicité convient mieux aux associations binaires car il est plus


compliqué de la définir pour des associations n-aires.
N.Berbiche EST - Salé 20

10
1440-03-05

Associations: Nom et rôles des extrémités

◼ Le nom de l'association surplombe le trait qui symbolise l’association

Nom
Classe A Classe B

<Travaille pour
Société Personne

◼ Un nom de rôle est à chaque terminaison l’association


◼ Un rôle exprime comment une classe voit une autre classe au travers d’une
association
Source A Destination B
Rôle de B

Employeur
Sociéte Personne
Employé

N.Berbiche EST - Salé 21

Associations: visibilité des rôles

◼ Un indicateur de visibilité peut être placé avant le rôle


pour préciser la visibilité du rôle à l’extérieur de
l’association.
◼ Par défaut, le rôle est public

- grossiste
Vente Tiers
+ client

N.Berbiche EST - Salé 22

11
1440-03-05

Associations: multiplicité

◼ L’indication de multiplicité est placé à chaque extrémité de


l’association

1..* Classe Un à plusieurs


1 Classe Exactement 1

M Exactement M
0..1 Classe
Classe Zéro ou 1 M spécifié numériquement

0..* De zéro à
Classe M..N De M à N
plusieurs Classe M et N spécifiés numériquement
Ou *

N.Berbiche EST - Salé 23

Association binaire

Sociéte +Employeur < Travaille pour +Employé


Personne
1 1..*

Exemple: association binaire

N.Berbiche EST - Salé 24

12
1440-03-05

Association réflexive

◼ Association réflexive: une association qui relie une classe à elle-


même
◼ Une instance de classe est liée à une autre instance de cette classe
Nom de l'association

Priorité
parents
Personne
2
enfants * Association réflexive
0..1
suivant
Abonnement 0..1
précédent
Exemple1 Nom du rôle Source 0..1 multiplicité

Association binaire

Billets *
Classe participante
Réservation

Exemple2
N.Berbiche EST - Salé 25

Classe-association / classe associative

◼ Une association peut posséder ses propres attributs et opérations.


◼ Il s'agit à la fois d'une association et d'une classe, c'est-à-dire d'une classe -
association
◼ Elle symbolisé par une ligne en pointillée pour attacher une classe à une
association
Classe participante

Organisation Donneur Personne


A B * *

Classe – association (tout un élément)


C
attributs
Opérations() NiveauDonation

Exemple1 sommeAnnuelle: Argent


sommeAvie:Argent
Attributs de l'association

N.Berbiche EST - Salé 26

13
1440-03-05

Classe association

◼ En conception, une classe association peut être remplacée par une classe
intermédiaire et qui sert de pivot pour une paire d’association.

n
A B 1 n
m C B
A 1
m attributs

attributs

N.Berbiche EST - Salé 27

Classe association – liens multiples

 Il peut donc y avoir


plusieurs instances de la
classe-association Actions
liant une même personne à
une même société

 C’est justement la raison de


la contrainte {bag} qui,
Problème: Plusieurs instances d’une placée sur les terminaisons
même association ne peuvent lier les d’association de la classe-
mêmes objets. association Actions, indique
qu’il peut y avoir des liens
multiples impliquant les
 Cependant, dans cet exemple, une mêmes paires d’objets.
même personne peut acheter à des
moments différents des actions d’une
même société
N.Berbiche EST - Salé 28

14
1440-03-05

Associations n-aires

◼ Les associations n-aires peuvent exister et se représentent par un losange


sur lequel arrivent les différentes composantes de l’association.

Matière Matière
* 1

Etudiant enseignant Etudiant enseignant


* * * 1
cours

Cours
Date Début
Date fin
Heure début
Heure fin

N.Berbiche EST - Salé 29

Associations n-aires

◼ Généralement, les associations n-aires peuvent se représenter en


promouvant l’association au rang de classe et en ajoutant une
contrainte qui exprime que les multiple branches de l’association
s’instancient toutes simultanément, en un même lien

Matière La contrainte est exprimée


par un stéréotype non
standard

« Association terniaire »
Cours
Etudiant enseignant
Date Début
Date fin
Heure début
Heure fin

N.Berbiche EST - Salé 30

15
1440-03-05

Association qualifiée

◼ La qualification d’une association est appelée aussi restriction d’une


association
◼ Si la valeur de l'attribut d'une association est unique dans un jeu
d'objets liés, il s'agit alors d'un qualificatif et l'association est alors
une association qualifiée
◼ Le qualificatif est placé sur l’extrémité d’association au niveau de la
classe source, dans un compartiment rectangulaire.
◼ Le qualificatif appartient à l’association et non aux classes associées

Classe source Classe destination


qualificatif

N.Berbiche EST - Salé 31

Association qualifiée

◼ L’instanciation d’une association qualifiée définit: le nom de l’objet source et


destination, et la valeur du qualificatif.
◼ Chaque instance de la classe source accompagnée de la valeur du
qualificatif, identifie un sous ensemble des instances de la classe destination
qui participent à l’association
◼ La qualification partitionne l’ensemble de destination et réduit ainsi la
multiplicité de l’association

:dest :dest
:dest
:dest

Avec clé
Sans clé

:source

N.Berbiche EST - Salé 32

16
1440-03-05

Association qualifiée

Banque Banque
* #compte

0..1
client *
client

Relation entre une - Un compte dans une banque appartient à au


banque et ses clients plus un client. C’est-à-dire, une instance du
couple {Banque, compte} est en association
avec zéro à une instance de la classe Client.

- Un client peut posséder plusieurs comptes


dans plusieurs banques

N.Berbiche EST - Salé 33

Association qualifiée

◼ La restriction d’une association peut être opérée en combinant les


valeurs des différents attributs qui forment le qualificatif

Classe participante Association qualifiée

qualificatif

Spectacle
Date: Date vente Billet
Siège : numéroSiège
1 ventes 0..1

Multiplicité qualifiée

Attributs du qualificatif

N.Berbiche EST - Salé 34

17
1440-03-05

Navigabilité

◼ Par défaut les associations sont navigable dans les deux directions.

◼ Dans certains cas, une seule navigation est utile: l’extrémité d’association
vers laquelle la navigation est possible porte une flèche

Classe A Classe B

◼ Les objets instances de A voient les objets instances de B, mais les objets
instances de B ne voient pas les objets instances de A

◼ Cette distinction est souvent réalisée pendant la conception

◼ Elle apparaît en analyse, lorsque l’étude du domaine révèle une dissymétrie


des besoins de communications.

◼ L’absence de flèche signifie que l’association est navigable dans les deux
sens.
N.Berbiche EST - Salé 35

Navigabilité

Commande +ligne article


Produit
* *

La terminaison du côté de la classe commande n’est pas navigable:


cela signifie que les instances de la classe Produit ne stockent pas
de liste d’objets du type Commande.

Inversement, la terminaison du côté de la classe Produit est


navigable: chaque objet commande contient une liste de produits

N.Berbiche EST - Salé 36

18
1440-03-05

Agrégation

◼ Lorsque l’on souhaite modéliser une relation tout/partie où une


classe constitue un élément plus grand (tout) composé d’éléments
plus petit (partie), il faut utiliser une agrégation.

◼ Une agrégation est une association qui représente une relation


d'inclusion structurelle ou comportementale d’un élément dans un
ensemble.

◼ Elle 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é.

◼ Elle se représente par un losange vide à l'extrémité du chemin relié à


la classe agrégat.
Une agrégation
agrégat Elément agrégé

N.Berbiche EST - Salé 37

Agrégation

Salle

30 31 1 1

table chaise Bureau tableau …..


enseignant

une salle contient un bureau et une chaise pour


l’enseignant, trente tables et chaises pour les étudiants,
un tableau, …etc.

N.Berbiche EST - Salé 38

19
1440-03-05

Composition

◼ La composition est un cas particulier d’agrégation avec un couplage


plus important.
◼ La classe ayant le rôle prédominant dans une composition est
appelée classes composite.
◼ Une composition est une forme d'association plus forte où le
composite a pour seule tâche de gérer ses parties,
◼ On illustre la composition par un losange plein de couleur noire à
l'extrémité du composite.
Composite

0..1 une composition


composite composant *
*
composant

N.Berbiche EST - Salé 39

Composition

◼ Durée de vie identique pour le composite et ses composants


◼ La création, la modification et la destruction des divers composants sont la
responsabilité du composite
◼ La multiplicité du côté du composite peut prendre les valeurs 0 ou 1
uniquement.
◼ Le composite n'existe pas sans ses composants
◼ Les objets composites sont des instances de classes composites

voiture 1 Moteur

6 1

Cylindre Carburateur ….

N.Berbiche EST - Salé 40

20
1440-03-05

Exercices

1- Dessinez la structure d'un ordinateur


2- tracez un modèle de classes pour décrire un graphe non
orienté. Un graphe non orienté est constitué d’un
ensemble de sommets et d’arêtes. Les arêtes relient des
paires de sommets.
a1
s5 s4

a5 a2
a6

s1 s3
a4
a3

s2
N.Berbiche EST - Salé 41

Généralisation

◼ La relation de généralisation crée un rapport entre une description


générale de classeur parent (superclasses) et une description plus
spécifique des classeurs enfants (sous-classes) qui découle de la
première et l'étend.

◼ La description spécifique est en parfaite cohérence par rapport à la


description générale (elle possède toutes ses propriétés, ses membres et
ses relations). Elle peut contenir d'autres informations.

◼ La relation de généralisation signifie est un ou est une sorte de.

◼ On représente une généralisation par une flèche allant de l'enfant vers le


parent, avec un triangle vide à son extrémité qui pointe vers le parent

N.Berbiche EST - Salé 42

21
1440-03-05

Généralisation

Avion
Constructeur Super-classe
Nºd’identification
Poids
coût

Sous -classes

Chasseur à
hélicoptère réaction
hélices missiles

La généralisation nous permet de définir les fonctions de l'avion une seule fois
puis d'ajouter simplement les fonctions supplémentaires spécifiques à un
hélicoptère ainsi qu'un avion de chasse.

N.Berbiche EST - Salé 43

Généralisation

N.Berbiche EST - Salé 44

22
1440-03-05

Généralisation

◼ On utilise la généralisation pour les classeurs (les classes, les interfaces,


les types de données, les cas d'utilisation, les acteurs, les signaux, etc.).
Pour les classes, on emploie les termes de superclasse pour désigner le
parent et de sous-classe pour l'enfant.

◼ Les sous-classes héritent des attributs, des opérations, des relations et des
contraintes définis dans les superclasses.

◼ En programmation, la relation de généralisation est très souvent réalisée en


utilisant la relation d’héritage entre classes

N.Berbiche EST - Salé 45

Généralisation multiple

◼ Généralisation multiple: les classes ont plusieurs superclasses.

A
B

◼ Si un classeur possède plusieurs parents, il hérite de chacun d'entre eux

◼ Ses fonctionnalités (attributs, opérations et signaux) sont l'union de celles de


ses parents

◼ Si plusieurs chemins laissent apparaître la même classe comme un ancêtre,


elle n'apporte toutefois qu'une seule copie de chacun de ses membres.

N.Berbiche EST - Salé 46

23
1440-03-05

Polymorphisme

◼ Le polymorphisme décrit la caractéristique d'un élément qui peut prendre


plusieurs formes, comme l'eau qui se trouve à l'état solide, liquide ou
gazeux.

◼ La généralisation autorise le polymorphisme d'opération, c'est-à-dire la


possibilité de déclencher des opérations différentes en réponse à un même
message.

◼ Chaque sous-classe hérite de la spécification des opérations de ses


superclasses, mais a la possibilité de modifier localement le
comportement de ces opérations, afin de mieux prendre en compte les
particularités liés à un niveau d'abstraction donné.

N.Berbiche EST - Salé 47

Polymorphisme

Animal

Zoo
1 *
Dormir()

Lion Tigre Ours

Dormir() Dormir()
Dormir()
{ {
{
Sur le ventre Dans un arbre
Sur le dos
} }
}

N.Berbiche EST - Salé 48

24
1440-03-05

Héritage

◼ Chaque type d'élément généralisable possède un jeu de propriétés


héritables.

◼ Un enfant hérite de toutes les propriétés héritables de tous ses


ancêtres. Le jeu complet de ses propriétés correspond au jeu des
propriétés héritées accompagné des propriétés qu'il déclare
directement.

◼ Pour un classeur, il ne faut pas redéclarer dans un descendant un


attribut déclaré dans un ancêtre. Il est possible de déclarer une
opération dans plusieurs classeurs à condition que les spécifications
soient cohérentes (mêmes paramètres, contraintes et signification).
Les autres déclarations sont tout simplement redondantes.

N.Berbiche EST - Salé 49

héritage

◼ Dans une hiérarchie, plusieurs classes peuvent déclarer une même


méthode.

◼ Une méthode reliée à un descendant emporte sur et remplace


(supprime) une méthode portant la même signature que celle
déclarée dans un ancêtre.

◼ Si une classe hérite toutefois de deux ou plusieurs copies distinctes


d'une méthode (via un héritage multiple de classes différentes), elles
entrent alors en conflit et le modèle devient mal formé.

N.Berbiche EST - Salé 50

25
1440-03-05

Héritage

◼ L'héritage permet de déclarer une seule fois des parties de description


partagées par de nombreuses classes plutôt que de les répéter dans
chaque classe qui les utilise.

◼ Grâce à ce partage, il est possible de réduire la taille d'un modèle.

◼ Plus important encore, cela réduit le nombre de changements à apporter au


modèle lors d'une actualisation et minimise les risques involontaires
d'incohérence.

N.Berbiche EST - Salé 51

Réalisation

◼ La réalisation est utilisée entre une classe et ses interfaces, et entre une
collaboration réalisant un cas d'utilisation et le cas d'utilisation concerné.

◼ La généralisation permet de relier une description plus générale à des


versions plus complètes. Elle relie deux éléments au même niveau de
sémantique, habituellement dans le même modèle.

◼ la réalisation relie deux éléments à des niveaux sémantiques différents (une


classe d'analyse et une classe de conception, par exemple, ou une interface
et une classe), qui se trouvent souvent dans des modèles différents.

◼ La réalisation est illustrée par une flèche vide en pointillés vers la classe plus
générale. Elle ressemble au symbole de la généralisation, avec une ligne en
pointillés, afin de rappeler la similitude avec un type d'héritage.

N.Berbiche EST - Salé 52

26
1440-03-05

Réalisation

Interface MenuDéroulant
BlocChoix Relation de réalisation

SetDefault(choix: Choix) Spécificateur implémentation SetDefault(choix: Bouton)


Getchoix (): Choix Getchoix (): Bouton

rangéeBoutonRadio

SetDefault(choix: Bouton)
Getchoix (): Bouton Choix 1..*
1..*choix

Chaîne
Choix

1..*choix

Bouton

N.Berbiche EST - Salé 53

Contrainte

◼ Une contrainte est une expression booléenne prenant la forme d'une chaîne qu'un
langage donné peut interpréter.
◼ UML permet d'exprimer des contraintes
 de manière informelle, en langage naturel ou en pseudo-code.
 de manière formelle, le langage de contraintes OCL (Object Constraint
Language).
◼ On représente une contrainte par une expression textuelle entre accolades.
◼ On peut placer la chaîne textuelle dans une note ou l'attacher à une flèche de
dépendance.
Propriétaire privé
Personne
compte
compte
(xor) contrainte entre des associations

compte

Société
Propriétaire privé

N.Berbiche EST - Salé 54

27
1440-03-05

Note

◼ Une note est un symbole graphique qui contient des informations.

◼ Ces informations sont sous forme textuelle.

◼ Une note permet de présenter des commentaires, des contraintes, le


contenu de méthodes ou des valeurs marquées.

La représentation d'une note

N.Berbiche EST - Salé 55

Instance

◼ Une instance est une entité en cours d'exécution dotée


d'une identité,. A tout instant, elle possède une valeur.

◼ La valeur peut changer dans le temps pour répondre aux


opérations qui s'y appliquent.

N.Berbiche EST - Salé 56

28
1440-03-05

Diagramme d’objets

◼ Le diagramme d’objets ou diagramme d’instances, montre des objets et des


liens.

◼ Les diagrammes d’objets représentent la structure statique

◼ Un diagramme d’objets est une instance d’un diagramme de classe qui


montre l’état du système modélisé à un instant donné

◼ Chaque objet est représenté par un rectangle qui contient soit le nom de
l’objet, soit le nom et la classe de l’objet séparés par un double point, soit
seulement la classe de l’objet: l'objet est dit anonyme

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

N.Berbiche EST - Salé 57

Diagramme d’objets

◼ Les rectangles qui symbolisent les objets peuvent comporter un deuxième


compartiment qui contient les valeurs des attributs.

◼ L’état d’un objet est déterminé par les valeurs que prennent les attributs

◼ A un instant donné, un objet est dans un état particulier,conséquence des


opérations de modification qui lui ont été appliquées

:voiture

Vitesse=100
Couleur=rouge

Les objets sont reliés par des liens instances des associations entre les
classes des objets considérés

N.Berbiche EST - Salé 58

29
1440-03-05

Diagramme d’objets

1 1
: Voiture : Moteur Voiture Moteur
1

4
: Roue : Roue
Roue

: Roue : Roue Diagramme de classes

Diagramme d’objets

N.Berbiche EST - Salé 59

Principe de construction du diagramme de classe

Cahier
des charges
Technique de
1. Besoin 1 listage
des noms
3. Besoin 3
Client Attributs
5. Besoin 5 Classes
Utilisateurs

<<Un Package>>

Modèle Statique

Diagramme de Classes Initial (DCI)

Instructeur 1..* Cours


1..*
NomInst NoCours
Adresse Titre
Auteur
Session
Date

N.Berbiche EST - Salé 60

30
1440-03-05

Principe de construction du diagramme de classe

◼ Utiliser la technique de listage des noms


 Simple et très efficace
 Un Nom est un candidat potentiel pour
◼ Une classe
◼ Un attribut
Attention
 Il peut y avoir des noms qui n'ont aucun intérêt
 Des noms différents pour la même classe ou le même attribut
◼ Démarche
 Lister tous les noms
 Déterminer quelles sont, les classes candidates et les attributs
 Vérifier ensuite si les classes candidates sont dans (ou dehors)
le paquetage à développer
 Procéder par affinements successifs (itération)

N.Berbiche EST - Salé 61

Exemple

◼ La société vend les articles via ses trois représentants qui effectuent des
visites chez leurs clients
◼ Un représentant effectue des visites chez plusieurs clients à des dates
différentes
◼ Chaque représentant est connu par son numéro, son nom et il est
caractérisé par le montant total des ventes qu'il a effectuées (chez tous ses
clients) sur une période d'un mois
 Société : veut-on garder des informations sur la société ? non
 Article : a des attributs à garder → classe
 Représentant : a des attributs à garder → classe
 Client : a des attributs à garder → classe
 Représentant effectue des visites : relation
 Visite : a des attributs à garder → classe
 Date : un attribut de la classe visite
 Numéro : un attribut de la classe représentant

N.Berbiche EST - Salé 62

31
1440-03-05

Règles de qualité sur le modèle des données

◼ Utilisez uniquement des relations binaires


 Les relations n-aires sont difficiles à comprendre conceptuellement
 Toute relation n-aires peut être décomposée en relations binaires

◼ Introduisez une classe associative dans les relations M:N


 La classe associative contient les attributs de la relation

N.Berbiche EST - Salé 63

Transformation du diagramme de classe en


modèle relationnel

N.Berbiche 64

32
1440-03-05

Règle1: présence de la multiplicité (?..1) d’un


côté de l’association

Livre
Code-Livre Exemplaire
Auteur est un exemplaire du a l'exemplaire N°-Exemplaire
Titre 1..1 0..n Localisation
Edition 0,,,*

 Chaque classe se transforme en une table


 Chaque attribut de classe se transforme en un champs de table
 L’identifiant de la classe qui est associée à la multiplicité (?..1) (ex: Livre)
devient le clé étrangère de l’autre classe (ex: Exemplaire)

Contrainte d’intégrité référentielle:


CléEtrangère  CléPrimaire
Ex: Exemplaire.Code-Livre  Livre.Code-Livre
N.Berbiche 65

Règle1 - Exemple
•Quel est l’auteur de
Livre l’exemplaire dont le
Code-Livre
1
Auteur
Chirac
Titre
Titre1
Edition
Edition 1
N°Exemplaire est 30 ?
2 Clinton Titre2 Edition 2
3
4
Eltsin
Blair
Titre3
Titre4
Edition 3
Edition 4 •Quels sont les exemplaires
(N°Exemplaire) du livre
Exemplaire
N°-Exemplaire Localisation Code-Livre dont le CodeLivre est 1 ?
10 Localisation 1 1
20 Localisation 2 1
30 Localisation 1 2 •Quel est l’auteur de
40 Localisation 3 3
50 Localisation 4 5 !!! l’exemplaire dont le
N°Exemplaire est 50 ?
→ pas de sens !!!
Contrainte d’intégrité référentielle :
Exemplaire.Code-Livre  Livre.Code-Livre
N.Berbiche 66

33
1440-03-05

Règle2: présence de (?..*) des deux côtés


de l’association Emprunte
Code-Emprunte
Date
Date-De-Retour

Personne Livre
Code-Personne Code-Livre
Nom Est emprunté par Emprunte Auteur
Prenom 0,,,* 0,,,* Titre
0..n 0..n
Adresse Edition

 Chaque classe se transforme en une table


 Chaque attribut de classe se transforme en un champs de table
 L’association se transforme en une table. Cette table a comme
champs l’identifiant de chacune des deux classes, plus d’éventuels
autres attributs.

Emprunte.Code-Personne  Personne.Code-Personne
Emprunte.Code-Livre  Livre.Code-Livre
N.Berbiche 67

Règle2 - Exemple
Personne
Code-Personne Prénom Nom Adresse
1 David Massart Adr 1
2 Stéphane Faulkner Adr 2
3 Mohamed Dahchour Adr 3
4 Pierre Dupont Adr 4

Livre
Code-Livre Titre Auteur Edition
1 Happy Baby Book Kathelyn Ed1
2 LATEX Borceux Ed2
3 Principle of Database Ullman Ed3

Emprunte
Code-Personne Code-Livre Date DateDeRetour Code-Emprunte
1 1 1/1/98 1/2/98 1
2 1 1/1/99 1/2/99 2
2 3 10/1/99 20/1/99 3
3 3 1/1/98 10/1/98 4
5 !!! 2 1/6/98 1/7/98 5
4 9 !!! 1/1/98 1/1/99 6

Contraintes d’intégrité référentielle :


Emprunte.Code-Personne  Personne.Code-Personne
Emprunte.Code-Livre  Livre.Code-Livre
•Qui a emprunté le « Happy baby book » ?
•Quels sont les livres (titres) qui sont empruntés par Stéphane Faulkner ?
•Qui a emprunté le livre « LaTEX » ? → pas de sens
•Quels sont les livres (titres) qui sont empruntés par Pierre Dupont ? → pas de sens
N.Berbiche 68

34
1440-03-05

Règle3: présence d’une généralisation


• Méthode 1: Personne
Code-Personne
Nom
Prenom
Adresse

Professeur Etudiant
Salaire Noma
Note-Moyenne

 Créer une table avec tous les attributs des classes


 Ajouter un attribut pour distinguer les types des objets

{Professeur,
Etudiant}

N.Berbiche 69

Règle3: présence d’une généralisation


Personne
• Méthode 2: Code-Personne
Nom
Prenom
Adresse

Professeur Etudiant
Salaire Noma
Note-Moyenne

 Créer une table pour chaque sous type, chaque table se


compose des attributs génériques et d’attributs spécifiques

N.Berbiche 70

35
1440-03-05

Règle3: présence d’une généralisation


Personne
• Méthode 3: Code-Personne
Nom
Prenom
Adresse

Professeur Etudiant
Salaire Noma
Note-Moyenne

 Créer une table par classe et des associations

N.Berbiche 71

Résolution des relations

 Relation de plusieurs à plusieurs

* * Résolue
par

* *
 Relation de 1 à 1

A A (+B)
1 1 B
Peut être
résolue par

N.Berbiche EST - Salé 72

36
1440-03-05

Exercice 1

◼ Construire le modèle relationnel correspondant au


diagramme de classe suivant:

0,,,* 1,,,* 1,,,*

N.Berbiche 73

Exercice 1: Solution

N.Berbiche 74

37
1440-03-05

Client
N_Client NomClient Adresse Tel •Quel est le prix et
1 Michel Bruxelles 123456
2 David Namur 456298 numéro produit du
3
4
Manuel
Lucas
Dinant
Bruge
876230
937402
GSMNokia
5 Tintin Bruxelles 384043

Commande •Quels sont les clients


N_Commande DateCommande N_Client
1 12/09/98 1 (nom) qui habitent à
2
3
15/03/97
12/09/98
1
3
Bruxelles
4 10/01/00 3
5 20/10/00 4
6 15/02/00 5 •Quels sont les clients
Constitution (nom et adresse) qui ont
QtProduit
1
N_Commande
5
N_Produit
200
achetés de produits le
1
2
5
3
400
500
12/09/98
3 6 500
2
2
5
4
600
600 •Qui (nom et adresse)
Produit ont achetés le chocolat
N_Produit
100 Walkman
NomProduit Prix
5.000,00 FB
Leonidas
200 TV 20.000,00 FB

•Quels sont les produits


300 GSMNokia 10.000,00 FB
400 PlayStation2 200.000,00 FB
500 Leonidas 500,00 FB
600 Godiva 1.200,00 FB (nomProduit) achetés
par Lucas
Contraintes d’intégrité référentielle :
Commande.N_Client  Client.N_Client
Constitution.N_Commande  Commande.N_Commande
N.Berbiche Constitution.N_Produit  Produit.N_Produit 75

Exercice 2

Construire le modèle relationnel correspondant au diagramme


de classe suivant:
Client Demande-Reservation
N°-Client N°-Reservation
Nom-Client émise par émet Date-debut
Adresse-Client 1..1 0..n Date-fin
0,,,*
Telephone-Client Region

intervient dans 0..n


0,,,*

Constitution
Nombre-Chambres

1,,,*
consite en 1..n
Type-Chambre
Code-Type
Nombre-Personnes
Commodités

N.Berbiche 76

38
1440-03-05

Exercice 2: Solution

N.Berbiche 77

Exercice 3

Construire le modèle relationnel correspondant au diagramme


de classe suivant:
Occupation
Date
Heure
Durée

Cours
Code-Cours Salle
Nom-Cours est occupée par occupe Code-Salle
Description 0..n
0,,,* 1..n Localisation
1,,,*
Nombre-ECT

Auditoire SalleInfo
Nombre-Places Nombre-Ordinateurs

N.Berbiche 78

39
1440-03-05

Exercice 3: Solution

N.Berbiche 79

Exercice 4

Construire le modèle relationnel correspondant au diagramme de


classe suivant:

1,,,*
0,,,*

0,,,*

0,,,*

N.Berbiche 80

40
1440-03-05

Exercice 4: Solution

N.Berbiche 81

Les relations de dépendance

N.Berbiche EST - Salé 82

41
1440-03-05

Dépendance

◼ Une dépendance indique une relation sémantique entre deux éléments du


modèle ou plus.

◼ Elle définit une relation unidirectionnelle entre un élément source (client) et


un élément cible (fournisseur).

◼ Elle indique une situation dans laquelle un changement apporté à l'élément


cible (B dans la figure) implique un changement au niveau de la source (A).

◼ UML représente une dépendance par une flèche en pointillés allant de


l’élément source à l’élément cible, avec un mot clé ou un stéréotype indiqué
entre guillemets pour préciser sa nature.

« stéréotype ou mot clé »


A B
Élément source Élément cible

N.Berbiche EST - Salé 83

Dépendance

◼ On utilise souvent une dépendance quand une classe en utilise une


autre comme argument dans la signature d’une opération.

Exemple: la classe Confrontation utilise la classe Stratégie car la


classe Confrontation possède une méthode confronter dont deux
paramètre sont du type Stratégie. Si la classe Stratégie, change,
alors des modifications devront également être apportées à la classe
Confrontation.

N.Berbiche EST - Salé 84

42
1440-03-05

Dépendance

◼ UML définit quatre types particuliers de relation de dépendances:


 Abstraction: Il s'agit d'une relation de dépendance entre
éléments qui représentent un même concept à différents niveaux
d'abstraction.

 Liaison: les paramètres formels d'une classe doivent être liés à


des valeurs.

 Permission: un élément source a le droit d'accéder à un espace


de nommage (cible).

 Utilisation: un élément source requiert la présence d'un élément


cible pour son bon fonctionnement ou son implémentation.

N.Berbiche EST - Salé 85

Dépendance: Mots clés

◼ Les mots clés:

 «Lie» (bind) : représente une dépendance Liaison

 «Utilise» (use): représente une dépendance Utilisation

N.Berbiche EST - Salé 86

43
1440-03-05

Dépendance: stéréotype

Stéréotype Fonction Type de dépendance

«ami» (access) L'élément source (paquetage, Permission


classe, opération,..) a accès à
l'élément destination (paquetage,
classe, opération,..) quelle que
soit la spécification de sa
visibilité de ce dernier.

«appelle» (call) Une opération d'une classe qui Utilisation


appelle une opération d'une
autre classe

«crée» (create) Une classe source crée une Utilisation


instance de la classe cible

«dérive» (derive) Un élément défini ou calculé à Abstraction


partir d'un autre

N.Berbiche EST - Salé 87

Dépendance: stéréotype

Stéréotype Fonction Type de dépendance

«instancie» (instantiate) Création d'une instance de la Utilisation


classe cible par une opération de
la classe source

«raffine» (refine) Une relation de dépendance Abstraction


entre deux éléments à des
niveaux de sémantiques
différents

«réalise» (realize) Une relation de dépendance Abstraction


entre une spécification (cible) et
l'élément qui implémente cette
spécification (source)

«trace» (trace) Représente l'historique des Abstraction


constructions présentes dans les
différents modèles

N.Berbiche EST - Salé 88

44
1440-03-05

Dépendance:exemple

fournisseur Client

Classe A Classe D
«ami»

«instancie»
«appelle»

Classe B
Classe C Classe E

opB1()
«raffine»

«raffine»

Classe Y Classe Z

N.Berbiche EST - Salé 89

Les paquetages

◼ Un paquetage est un groupe d'éléments (classes, associations, généralisations et autres


paquetages plus petit) partageant un thème commun

◼ Avant de commencer l'analyse en termes de données et de comportement, on peut


allouer l'ensemble des besoins
 A un Paquetage unique
 Ou à plusieurs Paquetages

◼ L'allocation des besoins à plusieurs Paquetages


 Simplifie considérablement l'analyse: On analyse un Paquetage
 Améliore le découpage logique de l'application

◼ Chaque paquetage est représenté par un dossier

Paquetage 1 Paquetage 2

N.Berbiche EST - Salé 90

45
1440-03-05

Les paquetages: espace de nommage

◼ Chaque paquetage définit un espace de nommage


 Tous les éléments contenus dans un paquetage se distinguent par leur
appartenance au paquetage englobant

◼ Deux éléments de modélisation, contenus dans deux paquetages différents,


peuvent porter le même nom.

◼ Les éléments contenus dans un paquetage possède un nom unique.

◼ Les paquetages forment une arborescence dans laquelle l'abstraction


augmente en s'approchant de la racine, qui correspond à l'application elle-
même, considérée comme le paquetage de plus haut niveau.

◼ Un paquetage ne peut pas être instancié: il s’agit uniquement d’un conteneur


qui définit un espace de nommage, sans existence dans le monde réel.

N.Berbiche EST - Salé 91

Dépendances entre paquetages

◼ L'architecture du système est représentée par des paquetages qui ont entre
eux des relations de dépendance
◼ La relation de dépendance est orientée du paquetage source (client) vers le
paquetage cible (fournisseur).
◼ Les dépendances sont unidirectionnelles.
◼ UML définit deux dépendances stéréotypées standard associées aux
paquetages:
 « importe »: ajoute les éléments du paquetage destination à l’espace de
nommage défini par le paquetage source.
 « accède »: permet de référencer des éléments du paquetage
destination:
« importe » Destination 1

Source
« accède » destination 2

N.Berbiche EST - Salé 92

46

Vous aimerez peut-être aussi