23/12/2023
Université d’Alger 1-Ben Youcef Ben Khedda
Faculté des Sciences
Département d’Informatique
A. Benghalia
4) Diagramme de classes - vue statique-
1
23/12/2023
Introduction
• En UML, le modèle structurel ou statique d’un système est décrit
à l'aide de :
− Diagrammes de classes (description de tout ou d'une partie du
système d'une manière abstraite en termes de classes et de
relations).
− Diagrammes d'objets (description d'exemples de configuration
de tout ou partie du système, en termes d'objets, de valeurs et de
liens).
Introduction
• Les diagrammes de cas d'utilisation 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 classe permettent de spécifier la structure et
les liens entre les objets dont le système est composé.
2
23/12/2023
Définition d’une classe
• 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
forcément toutes connues.
Diagramme de classe
Intérêt
• Le diagramme de classes est considéré comme le plus important de
la modélisation orientée objet. Il est le seul obligatoire lors d’une
telle modélisation. Il permet de:
Définir les futures composantes du système final.
Structurer le travail de développement de manière très efficace.
Séparer les composantes de manière à pouvoir répartir le travail
de développement entre les membres (développeurs), dans le
cas de travaux réalisés en groupe (surtout dans les milieux
industriels).
3
23/12/2023
Notion de classe
• La notion de classe est essentielle en programmation
orientée objet : elle définit une abstraction, un type
abstrait qui permettra plus tard d’instancier des objets.
• On distingue généralement des classes abstraites (qui ne
peuvent pas être instanciées) et des classes "normales",
qui servent à définir des objets.
• La classe intègre les concepts de type (en tant que
«moule à instances »)
NOTATION :
• Tout nom de classe commence par une majuscule
•Une classe est un classeur représenté par un rectangle divisé en trois
compartiments.
NomAttribut : type = ValeurInitiale
NomOpération(ListeArguments) : typeRetour
NomClasse
4
23/12/2023
Attribut
• Les attributs définissent les propriétés des objets de la classe.
• Un attribut est défini par un nom, un type de données, une
visibilité et peut être initialisé. Le nom de l’attribut doit être
unique dans la classe.
• Les attributs représentent les données encapsulées dans les
objets de cette classe.
• La syntaxe d'un attribut est la suivante :
• Visibilité nomAttribut [multiplicité] : typeAttribut = Initialisatio
n;
9
Exemple
10
5
23/12/2023
Méthode
• Une méthode ou opération est un service qu’une instance d’une classe
peut exécuter. Elle doit être unique. La notion de visibilité est la même
que celle des attributs.
Opération : effectuée par l’objet
Méthode : effectuée par la classe
• Sa syntaxe est la suivante :
Visibilité nomFonction(directionParamètreN nomParamètreN : type
ParamètreN) : typeRetour
11
Classe abstraite
• une classe abstraite est une classe dont l'implémentation n'est pas
complète et qui n'est pas instanciable. Elle sert de base à d'autres
classes dérivées (héritées). Pour indiquer qu’une classe est abstraite, on
ajoute le mot-clé abstract derrière son nom.
• Le mécanisme des classes abstraites permet de définir des
comportements (méthodes) dont l'implémentation (le code dans la
méthode) se fait dans les classes héritées.
12
6
23/12/2023
Classe abstraite
• Exemple :
• vous avez une classe Humain, à partir de laquelle dérivent la
classe Homme et la classe Femme.
• En toute logique, Homme et Femme sont instanciables (les
objets créés ont une existence en soi),
• Par contre la classe Humain sera déclarée abstraite car un
objet Humain n'existe pas en tant que tel, puisqu'il manque
l'information sur le sexe.
• Ici, la classe Humain servira à implémenter des méthodes qui
seront utilisées à la fois pour Homme et pour Femme.
13
Relations entre les classes
14
7
23/12/2023
Héritage
(Généralisation/Spécialisation)
• Les propriétés principales de l’héritage sont :
• Tous les attributs qui se trouvent dans la Super-Classe sont vrais
dans toutes les sous-classes.
• La classe enfant possède toutes les propriétés de ses classes parents,
mais elle ne peut accéder aux propriétés privées de celle-ci.
• Toutes les associations de la classe parent s’appliquent aux classes
dérivées.
15
Classe plus
SUPER CLASSE
spécialisation
généralisation
générale
SOUS Classe plus
CLASSE détaillée
16
8
23/12/2023
Association
• Une association est une relation entre deux classes
(association binaire) ou plus (association n-aire), qui décrit
les connexions structurelle entre leurs instances ("est
produit par", "est affilié à","se trouve à", "est conduit
par"…).
17
Classe - Association
• Une classe-association possède à la fois les propriétés des
associations et des classes : elle se connecte à deux ou plusieurs
classes et possède également des attributs et des opérations.
• Une classe-association est reliée par un trait discontinu à
l’association qu’elle représente.
18
9
23/12/2023
Agrégation et composition
• Une agrégation est une forme spéciale d’association exprimant une
relation d’inclusion structurelle ou comportementale d’éléments
(agrégés) dans un ensemble (agrégat).
• Graphiquement, on ajoute un losange vide du côté de l’agrégat.
• La composition, également appelée agrégation composite, décrit une
contenance structurelle (contenance physique) entre instances.
Ainsi, la destruction de l’objet composite implique ladestruction de
ses composants.
• Graphiquement, on ajoute un losange plein du côté de l’agrégat.
19
Multiplicités :
1 un et un seul M..N de M à N (entiers naturels)
* plusieurs 1..* de 1 à plusieurs
0..1 zéro ou un 0..* de zéro à plusieurs
Emploie >
Université 0..1 * Personne
Employeur Employé
Contrairement aux cardinalités de Merise, les multiplicités
UML sont placées du côté de la destination. Une
Université emploie plusieurs Personnes : le symbole * est
placé du côté Personne. à une Personne est associée
zéro ou une Université (avec le rôle Employeur) : le
symbole 0..1 est placé du côté Université.
20
10
23/12/2023
MULTIPLICITES (cardinalités):
SERVICE 1 Un et un seul
0..1 Zéro ou Un
0 .. 1 0 .. 1 0 .. 1
M.. De M à N (entiers naturels)
rattacher à
N
diriger
prêter
0..* De Zéro à plusieurs
1 *
1 .. *
*
PERSONNE
1..* De Un à plusieurs
N Exactement N (entier naturel)
21
Définition d’une base de donnée
• Une base de données (son abréviation est BD, en anglais DB,
data base) est une entité dans laquelle il est possible de
stocker des données de façon structurée et avec le moins de
redondance possible afin d’être utilisées par des programmes
et par des utilisateurs différents.
• Ainsi, la notion de base de données est généralement couplée
à celle de réseau, afin de pouvoir mettre en commun ces
informations, d'où le nom de base.
• On parle généralement de système d'information pour
désigner toute la structure regroupant les moyens mis en
place pour pouvoir partager des données.
22
11
23/12/2023
Définition d’une base de donnée
• La gestion de la base de données se fait grâce à un système
appelé SGBD (système de gestion de bases de données) ou en
anglais DBMS (Data base management system).
• Le SGBD est un ensemble de services (applications logicielles)
permettant de gérer les bases de données, c'est-à-dire :
• permettre l'accès aux données de façon simple
• autoriser un accès aux informations à de multiples
utilisateurs
• manipuler les données présentes dans la base de données
(insertion, suppression, modification).
23
Définition d’une base de donnée
• Une base de données relationnelle est une base de données
structurée suivant les principes de l’algèbre relationnelle.
24
12
23/12/2023
25
Passage de UML vers un schéma
relationnel
• But du passage :
• Comme le modèle relationnel est très populaire,
l’investissement des entreprises dans les bases de données
relationnelles est tellement important, qu’il est délicat de le
remettre en cause pour bénéficier des avantages liés aux
technologies objet.
26
13
23/12/2023
Passage de UML vers un schéma
relationnel
• Une classe définit une structure de données à laquelle
souscrivent des instances ;
• Elle correspond donc à une table du modèle relationnel :
chaque attribut donne lieu à une colonne,
• chaque instance stocke ses données dans une ligne (T-uplet)
et son OID sert de clé primaire.
• OID est un identifiant unique pour les objets (Object
IDentifier).
27
Passage de UML vers un schéma
relationnel
• Certains attributs de type complexe ne correspondent à
aucun des types SQL ;
• on rencontre fréquemment ce cas pour les attributs
représentant une structure de données.
• Un type complexe peut être conçu :
• soit avec plusieurs colonnes, chacune correspondant à un
champ de la structure.
• soit avec une table spécifique dotée d’une clé étrangère
pour relier les instances aux valeurs de leur attribut
complexe.
28
14
23/12/2023
Règles de passage
29
Passage de UML vers un schéma
relationnel
Modèle objet Modèle relationnel
Classe Table
Attribut de type simple Colonne
Attribut de type composé Colonne ou clé étrangère
Instance T-uplet
Identifiant Clé primaire
Association Clé étrangère
Héritage Clé primaire identique sur
plusieurs tables 30
15
23/12/2023
Max A=1 Max A>1
Max B=1 Regarder les Min sinon si Mettre clé B dans A
MinA=MinB Alors faire un comme clé étrangère
choix
Max B>1 Mettre clé A dans B Créer une relation
comme clé étrangère association comme clé
A et clé B
31
16