Chapitre 2
DIAGRAMME DE CLASSE
1
2
• diagramme de classe
• diagramme d’objet
• diagramme de déploiement
•…
Statique (ce que le système EST)
• diagramme de séquence
•…
Fonctionnel
(ce que le système FAIT)
Dynamique
(comment le système EVOLUE)
• diagramme de cas d’utilisation
•…
Axes de modélisation d ’un système
Définition
Un diagramme de classes est un graphe d’éléments connectés par des relations, expriment la structure statique du système en terme de classes et de relations entre ces classes
Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des objets ayant ces propriétés
Ne pas représenter les attributs ou les méthodes d'une classe sur un diagramme, n'indique pas que cette classe n'en contient pas.
Il s'agit juste d'un filtre visuel, destiné à donner un certain niveau d'abstraction à son modèle
De même, ne pas spécifier les niveaux d’accès des membres d'une classe ne veut pas dire qu'on ne représente que les membres publics
3
4
Company
Company
Person
Employee members
0..1 *
Exemple
Convention graphique d’une classe
Une classe représente la structure commune d’un ensemble d’objets.
Une classe est représentée par un rectangle qui contient une chaîne de caractères correspondant au nom de la classe (Classe non documentée)
Ce rectangle peut être séparé en trois parties : nom, attributs, opérations (Classe documentée).
o Le nom de la classe doit commencer par un caractère alphabétique.
5
Nom_de_classe
Attributs
Méthodes Nom_de_classe
Syntaxe
Attribut :
nom : type = val_initiale
Méthode :
nom (arg : type = val_defaut, …) : type_retour
Niveaux d’accès :
Public + :
o élément visible à tous les clients de la classe
Protected # :
o l'accès aux données est réservé aux fonctions des classes héritières
Private - :
o l'accès aux données est limité aux méthodes de la classe elle-même 6
Exemples / niveaux d’abstraction
7
voiture
voiture
immatriculation couleur
marque puissance poids date
propriétaire demarrer arreter conduire vendre
attributs
méthodes Classe non documentée
Classe documentée
voiture
+ immatriculation : string + couleur : string
+ marque : string
# puissance : int
# poids : int - date : Date
- propriétaire : string + demarrer()
- contact() : bool
+ conduire(a : string = « marseille », b : string) + vendre(prix : float)
Classe détaillée
Types de relation entre classes
Héritage:
o
permet de créer une nouvelle classe à partir d'une classe existante
Association
o
Connexion sémantique entre deux classes
Contenance
o
Cas particulier d’association exprimant une relation de contenance
8Types de relation : Héritage
permet de créer une nouvelle classe à partir d'une classe existante.
Principe : classe dérivée contient les attributs et les méthodes de la classe mère 9
Spécialisation Généralisation
étendre les propriétés d'une classe, sous forme de sous-classes
factoriser les propriétés groupe de classes sous forme de la classe mère
Chaque personne de l’université est identifiée par son nom, prénom Les étudiants ont plus un noEtudiant
Les enseignants ont un numéro de téléphone interne
Types de relation : Association
Une association exprime une connexion sémantique entre deux classes
L'association est instanciable dans un diagramme d'objets ou de collaboration, sous forme de liens entre objets issus de classes associées 10
véhicule constructeur
fabricant
produit
Personne Entreprise
travaille
entreprise personne
Dirige>
directeur société
Possède>
actionnaire société
<Emploie
employé employeur
Association classique
Rôle
Association avec le sens de lecture
Types de relation : Association (Navigabilité)
Par défaut, une association est navigable dans les deux sens
o Chaque instance de voiture a un lien vers le propriétaire
o Chaque instance de Personne a un ensemble de lien vers les voitures
La réduction de la portée de l'association peut être exprimée dans un modèle pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre
o Le « Electeur » connait le « Candidat » à choisir.
o Le « Candidat » ne sait pas les « Electeur » qui l’ont choisi.
11
Electeur Candidat
vote 0..1
*
Types de relation : Association (Relation n-aire)
Type particulier d’association qui relie plus de deux classes
Attention : difficile à déchiffrer
12
Professeur
Etudiant Salle
Symbole d’association
Types de relation : Association (Cardinalités )
1
: la classe est en relation avec un et un seul objet de l’autre classe
1..* : la classe est en relation avec au moins un objet de l’autre classe
* : la classe est en relation avec 0 ou n objets de l’autre classe
0..1 : la classe est en relation avec au plus un objet de l’autre classe
x..y
: de "x" à "y" (entiers naturels ou variables avec y > x)
13Une voiture est achetée par
une et une seule personne Une personne peut acheter 0 ou plusieurs voitures
Types de relation : Association (Cardinalités )
14
mariéA
Homme Femme
0..1 0..1
Maison Personne
* 1
0..* 2
parent enfant
Types de relation : Contenance
Cas particulier d’association exprimant une relation de contenance
Exemples:
o
Une voiture
a4 roues
o
Un dessin
contientun ensemble de figures géométriques
oUne présentation PowerPoint
est composéde transparents
o
Une équipe de recherche
est composéed’un ensemble de personnes
Deux types de relations de contenance en UML
o
Agrégation
o
Composition (Agrégation forte)
15Types de relation : Agrégation
Type de relations
o A « contient » des instances de B,
Propriétés de l’agrégation
o La suppression de A n’implique pas la suppression de B o L'élément agrégé peut être partagé
Exemples :
16 A B
Agrégat
composé composant
0 .. 1
4..4 1..1 1..1 1..1
VOITURE
Roue Chassis Moteur Carrosserie
Types de relation : Agrégation
Exemples :
o L’enseignant est un composant d’une (ou plusieurs) équipe de recherche d’un seul département
o La disparition d’une équipe de recherche n’entraine pas la disparition d’un enseignant
17
Types de relation : Composition
La suppression de A entraine la suppression de B
Exemple:
o
« Une présentation PowerPoint est composée de transparents »
La suppression de la présentation entraine la disparition des transparents qui la compose
18
Types de relation : Composition
Un Email est (obligatoirement) composé de Destinataires
19
Classe d’association
Une classe-association possède les caractéristiques des
associations et des classes : elle se connecte à deux ou plusieurs classes et possède également des attributs et des opérations.
Exemple :
20
L'association Emploie entre une société et une personne possède comme propriétés le salaire et la date d'embauche
Société Emploie Personne
+date_embauche: Date +Salaire : float
* 1 1 *
Contraintes sur les associations
Les contraintes sont des expressions qui précisent le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique)
Sur une association, elles peuvent restreindre le nombre d'instances visées ("expressions de navigation")
Les contraintes peuvent s'exprimer en langage naturel.
Graphiquement, il s'agit d'un texte encadré d'accolades
21
Principales contraintes
Contrainte {ordonnée} : une relation d’ordre décrit les objets
Contrainte {sous-ensemble} : une collection est incluse dans une autre collection
Contrainte {ou-exclusif} : pour un objet donné, une seule association est valide
22
peint
Peintre Tableau
1 1..n
{ordonnée}
Armée Personne
{sous-ensemble}
général militaire
Ecole Personne
étudiant
enseignant {ou-exclusif}
Exemple de diagramme de classes
Interpréter le diagramme de classes suivant afin de donner une spécification en langage naturel.
23
Exercice
Concevoir le diagramme de classe d’une application de gestion d’hôtel. Voici ce que vous devez modéliser :
Un hôtel est constitué d'un certain nombre de chambres. Un responsable de l'hôtel gère la location des chambres. Chaque chambre se loue à un prix donné.
L'accès aux salles de bain est compris dans le prix de la location d'une chambre. Certaines chambres comportent une salle de bain, mais pas toutes.
Les hôtes de chambres sans salle de bain peuvent utiliser une salle de bain sur le palier. Ces dernières peuvent être utilisées par plusieurs hôtes.
Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain (hall d'accueil, cuisine...) ne font pas partie de l'étude (hors sujet).
Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin d'y résider. En d'autre termes : l'hôtel héberge un certain nombre de personnes, ses hôtes (il s'agit des personnes qui louent au moins une chambre de l'hôtel...).
24
Correction
25