Vous êtes sur la page 1sur 40

Modélisation des SI

DIAGRAMME DE CLASSES

RESPONSABLE DU COURS : HÉLA HACHICHA

ANNÉE UNIVERSITAIRE : 2014 - 2015


Objectif du diagramme de classes
2

 Modéliser les entités du système


Entités du système :
 ensemble des informations gérées par le domaine
(manipulées, transformées, partagées,
… pour accomplir les finalités du domaine)

Modéliser :
 structurer ces informations
 regrouper en classes, relations entre classes
 respecter la non-redondance

 diagramme de classe = structure statique


Classes, attributs et opérations
3

 objet = entité spécifique que l’on peut distinguer

 une personne : le client « Paul Durand »


 un objet concret : le livre intitulé « Germinal »
 un objet abstrait : le compte bancaire n° 1915233C
 un événement : la commande n° 2004-125
 …

 attribut = propriété, caractéristique d’un objet


 un client a un nom, un prénom, une adresse, un code client, …
 un compte bancaire a un numéro, un solde, …
 doit avoir une valeur atomique, possède un type
Classes, attributs et opérations
4
 classe = formée par des objets de même nature
Est représentée par un rectangle avec:
• Propriétés
• Méthodes et
• Exceptions / Conditions

Classe = propriétés + méthodes + instanciation


 Exemple :
 tous les clients sont décrits par un nom, un prénom, …
 tous les comptes bancaires ont un numéro, un solde, …

 Remarques :
 une classe est un ensemble d’objets de même nature
 un objet est une instance d’une classe
Classes, attributs et opérations
5
 Pour une classe :
 on peut ne pas représenter ses propriétés ou ses méthodes sur un
diagramme (Différents niveaux de détail possibles),
 Spécifier les niveaux de protection des membres d'une classe
 ne veut pas dire qu'on ne représente que les membres publics.

 Représenter les trois compartiments, en se limitant à son nom :


 Généralement seuls les deux premiers sont utilisés.

 Le nom de la classe, selon la norme UML est en gras, mais on


peut se limiter à l’écrire en majuscule.
 Une propriété d’une classe constitue un élément de l'état de l'objet
(permet de caractériser l’objet)
 Une opération représente un service spécifique offert par un objet
Classes, attributs et opérations
6
 Les attributs et les opérations :
 Sont décrits dans le deuxième et troisième compartiments
 Peuvent être précisés par : attributs et opérations

Nom de Classe

NomAttribut [: type = valeur


initiale]

Opération ()
….

 Remarques :
 Opération = méthode = fonction-membre, …
 Attribut = propriété = donnée-membre, …
Classes, attributs et opérations
7
 La syntaxe de description des attributs est :

Visibilité NomAttribut [[Multiplicité] :


Type [=ValeurInitiale] [{Propriété}]]

 Visibilité = type d'accessibilité :


+ : public, visible et modifiable par tout objet du même paquetage
-: private, seulement visible et modifiable par les opérations de l'objet
auquel il appartient.
# : protected, seulement accessible et modifiable par les opérations des
classes descendantes
 Multiplicité : intervalle ou nombre
 Propriété : mutabilité (gelé, variable, ajout Uniquement, …)
Classes, attributs et opérations
8
 Le type des attributs peut être :
 Un type primitif : Entier, chaîne, …

 Une classe (type utilisateur) : Etudiant, Rectangle, …

 Expression complexe non supportée par UML

 Multiplicité : intervalle ou nombre


Multiplicité :=(Intervalle|nombre)[,Multiplicité]

 La mutabilité :
 Gelé : attribut non modifiable (const de C++)

 Variable : propriété par défaut, précise que l’attribut est modifiable

 Ajout Uniquement : seul l’ajout est possible (multiplicité >1)


Classes, attributs et opérations
9
 Un attribut peut être
 Attributs dérivés précédés de "/"(/Attribut) :
 peut être déduit par application d’une formule sur d’autres attributs.

 qui conduit en implémentation à une opération

RECTANGLE RECTANGLE
OU
Longueur Longueur
Largeur Surface = Largeur
/Surface
longueur * largeur
Opérations Surface ()

 Remarque générale :
 Une opération : un service qu’une instance de la classe peut réaliser.
 Une méthode est l’implémentation d’une opération.
 Dans le cadre de ce cours : opération = méthode
Classes, attributs et opérations
10
 Exemple :

}
TELEVISION
CANAL

-on/off : BOUTON HAUT- Classes


-couleur : énum {gris,noir} PARLEUR
-marque :Chaîne
-télétexte : Boolean = Vrai
-chaînes [2..*] : CANAL BOUTON
-prix : Réel
-hautparleur [2..6] : HAUT-PARLEUR
-type : TypeTV{gelé} … <<énumération>>
TypeTV
- 16 / 9
- 3/4

Les stéréotypes : des mécanismes d’extension prévus par UML. Appliqués


aux classes, ils permettent d’avoir des classes particulières répondant à un
besoin donné. Exemples: énumération, interface, utilitaire, …
Classes, attributs et opérations
11
 La syntaxe de description des opérations est :
Visibilité NomOpération [[Arguments] :
TypeRetourné [{Propriété}]]

 Visibilité : +, -, #
 Arguments :
Direction NomArgument : TypeArgument
[= ValeurDefaut]

 Direction : in, out, inout (in est la valeur par défaut)


 In : argument est un paramètre en entrée seule ; non modifié par
l’exécution de cette opération
 Out : argument est un paramètre en sortie seule; l’appelant peut récupérer
les informations
 inOut : argument est un paramètre en entrée-sortie; passé à l’opération et
modifiable
Associations
12
 Les relations entre classes :
 Association Remarque : par rapport au modèle E/A de base
 Agrégation UML + riches sémantiquement et + proches de la réalité
 Composition
 Héritage
 Les associations :
 Une association = relation existant entre des classes portant un nom
(signification)
 Une association exprime une connexion sémantique bidirectionnelle entre n
classes (n>=1).
Associations
13

 Constatations : Une association est instanciable dans un


diagramme d'objets ou de collaboration sous forme de liens entre
objets issus des classes associées.

Association
Diagramme de classes C1 C2

Lien
:C1 :C2 :C1 :C2

Diagramme d’objets Diagramme de collaboration


Associations
14
 Entre 2 classes, il peut y avoir plusieurs associations

 Association réflexive = relie une classe à elle-même


Associations
15
 Degré d’une association = nombre de classes participantes

 Association binaire : relie 2 classes


 Association ternaire : relie 3 classes
 Association n-aire : relie n classes (à éviter)
Classe d’associations
16
 Classe d'association :
 est une classe qui réalise la navigation entre les instances d'autres classes.
 représente les associations porteuses de données.

 Exemples :
Associations
17
 Arités des associations :
 Exemple : on désire représenter le fait suivant : un Professeur enseigne
dans une salle des étudiants.

PROFESSEUR

Enseigner
SALLE ETUDIANT
Associations
18
 Arités des associations :
 représentent des liens statiques/conceptuels entre objets et à longue durée
de vie (n’est pas un lien instantané ni passager).
 Relient une ou plusieurs classes : arité 1 ou plus
 Par rapport au modèle Entité / Association :

Entité 1 Entité 2
Card1 Card2
Diag. Entité / P11, Ass P21,
Association P12 P22
… …

Card2 Card1
Diag. De CEntité1 CEntité2
classes
Associations
19

 Multiplicité = nombre de participations d’objets


 indiquée à chaque extrémité d’association
 sous la forme min..max
 min, max = 0, 1, *

 Exemple général

 Exemple concret
Associations
20

 Exemple ternaire

 pour un couple d’instances de la classe A et de la classe B,


il y a au min. r1 instances de la classe C et au max. r2 instances,
…
…
Associations
21

 notation abrégée des multiplicités :

1  1..1 (exactement 1)
*  0..* (0 ou plusieurs)
n  n .. n (exactement n)
1..*  1 ou plusieurs (1 ou plus)
0..1  0 ou 1 (au plus un)
1..100  entre 1 et 100
Associations - Nommage
22
 Les associations : Nommage
 Une association peut être nommée

[ Nom Association ]
Classe1 Classe2

 Comment justifier la non obligation du nom de l’association :


 Aux niveaux conception et implantation

 Sens de lecture d’une association :


 Association en forme verbale active (ou passive) :
 précise le sens principal de lecture d'une association (> ou <).

Est Employée Par>

HÔTEL héberge> PERSONNE PERSONNE SOCIÉTÉ

Association en forme verbale active Association en forme verbale Passive


Associations - Rôles
23
 Les associations : Notion de rôle

 Rôle des associations (utilisé pour les associations ambiguës) :


 spécifie la fonction d'une classe pour une association donnée

[ Nom Association ]
Classe1 Classe2
[Rôle1] [Rôle2]
 Rôle 1 : le rôle joué par Classe 1 dans l’association
 Rôle 2 : le rôle joué par Classe 2 dans l’association

Professeur Etudiant
Enseigne Est Enseigné
Client Parents
HÔTEL PERSONNE PERSONNE
Directeur Enfants
Associations - Navigabilité
24
 Association à navigabilité restreinte :
Qu’est-ce que la navigabilité d’une association entre C1 et C2 ?
 Capacité d’une instance de C1 (resp. C2) à accéder aux instances de C2 (resp. C1)
 Par défaut, une association est navigable dans les deux sens.

 On peut la limiter à un seul sens dans un modèle (et non lors de


d'implémentation).  association navigable
 indique que les instances d'une classe ne « connaissent » pas les instances d'une autre.

Exemples : ELECTEUR vote CANDIDAT


Connaître
ETUDIANT ENSEIGNANT

 Spécification : on doit être en mesure de savoir le client qui a fait la commande et non toutes
les commandes d’un client
 Conception :
Commandes Cl i ents
1..*
1

 Implémentation : la classe commande doit avoir un champ faisant référence à la classe client
Associations – Propriétés et Contraintes
25
 Les associations : Contraintes

 contrainte = règle de gestion attachée à un élément


exprimée en langage naturel ou formel (OCL)

 des expressions qui précisent le rôle ou la portée d'un élément de


modélisation
 permettent d'étendre ou de préciser la sémantique
 permettent de restreindre le nombre d'instances visées
 peuvent s'exprimer en :
 Langage Naturel ou
 graphiquement avec un {texte} ou
 En OCL (Object Constraint Language)
Associations – Propriétés et Contraintes
26
Associations
27
 Agrégation :
 Est une association non symétrique,
 Exprime un couplage fort et une relation de subordination.
 Représente une relation de type "ensemble/élément".
 Peut notamment (mais pas nécessairement) exprimer :
 qu'une classe (un "élément") fait partie d'une autre ("l'agrégat"),
 qu'un changement d'état d'une classe, entraîne un changement d'état
d'une autre,
 qu'une action sur une classe, entraîne une action sur une autre.
 Une instance d'élément agrégé peut :
 être liée à plusieurs instances d'autres classes :
 l'élément agrégé peut être partagé (dans le temps)
 exister sans agrégat (et inversement)
 les CV de l'agrégat et de ses éléments agrégés peuvent être indépendants :
 La création de l’un n’implique pas celle de l’autre
Associations
28

 Agrégation
 classe agrégat, classes agrégée
 entre les deux, il existe une relation de type « est composé de »

Agrégat Agrégée

 lorsque quelque chose contrôle l’agrégat, il contrôle aussi l’agrégé


Associations
29
 Composition :
 La composition est une agrégation forte.
 Les cycles de vie des éléments (les "composants") et du composé
coïncident :
 si le composé est détruit (ou copié), ses composants le sont aussi.
 une instance de composant ne peut être liée qu'à un seul composé.
 Les "objets composites" sont des instances de classes composées.

COUVERTURE LIVRE CHAPITRE

Agrégation Composition

Remarque : toutes les conventions relatives aux cardinalités restent valables


pour les Agrégations et les compositions
Généralisation / Spécialisation
30
 Généralisation :
 L’héritage, avec UML, est désigné par GENERALISATION
 La généralisation peut être
 Simple ou
GENARALISATION

Est Un
SPECIALISATION
 Multiple :
 La spécialisation a plus qu’une généralisation

Remarque : une classe généralisée peut être spécialisée selon ≠ critères


Généralisation / Spécialisation
31

 généraliser = mettre en facteur des classes  « super-classe »


 spécialiser = décrire de nouveaux détails  « sous-classes »

 comparable à une association de type « est un »


 une sous-classe hérite des attributs et opérations de sa super-classe
Généralisation / Spécialisation
32

 une classe peut hériter de plusieurs super-classes


= héritage multiple
Généralisation / Spécialisation
33

 Classe abstraite = classe générique (super-classe),


 créée à seule fin de « factoriser »
 une description commune

 non directement instanciable


Généralisation / Spécialisation
34
 Contraintes et propriétés de la généralisation :
 La contrainte exprimée par le mot-clé {disjoint}
 Tout objet est au plus instance d’une seule sous-classe
 La généralisation, par défaut, symbolise une décomposition exclusive.
 La contrainte exprimée par le mot-clé {chevauchement} ou {overlapping}
 Une classe descendante  au produit cartésien de ses classes généralisées

VEHICULE
Premier Deuxième
critère critère
Motorisation Milieu

{10/06} {chevauchement}
A VOILE A MOTEUR TERRSETRE MARIN

LES DEUX
Les interfaces
35

Schématiquement :
Une Classe

Une interface
Classes abstraites
36
Diagrammes de packages
37

 Un paquetage élément de modélisation qui :


 permet d'organiser des éléments de modélisation en groupes.
 permet de regrouper des classes, des associations, des interfaces
et d’autres paquetages.
 Les classes, les interfaces et les packages ne peuvent qu’un seul
package dans lequel ils sont regroupés
 Les paquetages peuvent être imbriqués les uns dans les autres.
 Pour accéder au contenu de tels paquetages, il faut utiliser des deux-
points comme séparateur des noms de paquetage.

 Par exemple, si un paquetage B est inclus dans un paquetage A et


contient une classe X, il faut écrire A::B::X pour pouvoir utiliser la classe
X en dehors du contexte du paquetage B.
Etapes pour établir un diagramme
38

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
a. Supprimer les transitivités
b. S’assurer que le schéma répond à la demande
6. Itérer jusqu’à satisfaction …
Utilité du diagramme de classes
39

Créés à différents stades, et différents niveaux de détail :

 modèle exploratoire du domaine


 développé durant l’analyse du domaine
 pour mieux comprendre le domaine

 modèle du domaine
 conception du domaine

 modèle du système
 inclut toutes les classes,
 y compris classes d’architecture et d’interfaces utilisateur
Résumé
40

 modéliser la structure statique :


 manières d’utiliser un système
 périmètre, acteurs impliqués

 notions :
 classes : types de données manipulés
 attributs :données caractérisant les instances
 opérations : fonctions qui s’opèrent sur les instances
 associations : relations entre classes
 généralisation : hiérarchie de classes avec héritage

 intervient dans différentes phases :


 analyse du domaine (modèle exploratoire)
 conception du domaine (modèle de domaine)
 conception fine du système (modèle du système)

Vous aimerez peut-être aussi