Académique Documents
Professionnel Documents
Culture Documents
Statique (ce que le système EST) y Les diagrammes de cas d'utilisation modélisent à QUOI sert le
Diagrammes de classes système.
Diagrammes d'objets
Diagrammes de composants
Diagrammes de déploiements y Le système est composé d'objets qui interagissent entre eux et avec
Dynamique les acteurs pour réaliser ces cas d'utilisation.
(comment le système
EVOLUE)
y Les diagrammes de classes permettent de spécifier la structure
Diagrammes d'activités, statique et les liens entre les objets dont le système est composé.
Diagrammes de séquences, Fonctionnel
Diagrammes d'états-transitions (ce que le système FAIT)
Diagrammes de collaborations
3 4
Définition Classe
5 6
Classe Classe
Nom
• Graphiquement, une classe décrite en UML peut être plus ou
moins précise y Le nom d’une classe peut être simple ou complet (nom de la classe
précédé par le nom du paquetage dans lequel la classe réside).
y Le nom de la classe est une chaîne de caractères (excepté :) et
Voiture
commence par une majuscule.
Nom Couleur
Cylindrée
Nom Ou Exemple: Vitesse max
Attributs Démarrer ()
Accélérer ()
Freiner ()
Opérations
7 8
Classe Classe
Attribut
Attribut
y Un attribut représente une propriété, une caractéristique
y La forme la plus complète d’un attribut est la suivante :
contenue dans une classe. Visibilité nom [[multiplicité] : type [=valeur initiale] [{Mutabilité}]]
{ Exemples : Attributs de la classe Voiture: vitesse courante, { Visibilité : Type d’accessibilité, détermine si d'autres éléments peuvent
cylindrée, numéro d’immatriculation, etc. utiliser ces attributs.
{ Multiplicité : nombre d’instances qu’un attribut peut avoir, intervalle
y Une classe peut avoir zéro, un ou plusieurs attributs. ou nombre.
y Les attributs prennent des valeurs lorsque la classe est Ù exemple adresse [1..3] (1, 2 ou 3 adresses : domicile fixe, bureau, vacances).
{ Le type des propriétés peut être :
instanciée : ils sont en quelque sorte des variables attachées
Ù Un type primitif: entier, Chaîne …
aux objets. Ù Une classe (type utilisateur):
| Etudiant, Rectangle..
y La forme la plus courte d’un
attribut est : nom de l’attribut.
9 10
Classe Classe
Attribut Attribut
y Attributs dérivés :
y La forme la plus complète d’un attribut est la suivante :
{ Les attributs dérivés peuvent être calculés en appliquant des formules
Visibilité nom [[multiplicité] : type [=valeur initiale] [{Mutabilité}]] sur d'autres attributs.
{ Mutabilité :
{ Conduit en implémentation à une opération.
Ù Gelé:attribut non modifiable,
{ Les attributs dérivés sont symbolisés par l'ajout d'un / devant leur
| exemple : # Numsecurité : Integer {Gelé} nom (/Attribut).
ÙVariable: propriété par défaut; l’attribut est modifiable { Exemple 1 :
Ù Ajout uniquement: uniquement l’ajout est possible (multiplicité >1) Ù une classe Personne contient un attributdateNaissance et un attribut
| # MotsClés [*] : String {Ajout Uniquement} age.
Ù Ce dernier étant redondant, puisqu’il peut être calculéà partir de
dateNaissance. On écrira /age.
11 12
Classe Classe
Attribut Attribut
13 14
Classe Classe
Opérations Opérations
y Une opération représente un élément de comportement (un service) offert
par la classe; c’est un traitement que les objets correspondants peuvent y [visibilité] nom [[(Arguments)] [:type retourné ]
[{propriété}]]
effectuer.
{ Arguments:= [in|out|inOut] nom [:type] [=valeur par défaut ]
y Une opération est la spécification d'une méthode (sa signature) Ù In: entrée seule: non modifié par l’exécution de cette opération
Ù Out: sortieseule. L’appelant peut récupérer les résultats.
indépendamment de son implantation. Ù InOut: entrée-sortie passé à l’opération et modifiable.
y Les opérations explicitent les choix d’attribution des responsabilités { {propriété} : décrit des contraintes ou
informations complémentaires :
aux objets.
Ù exceptions, préconditions, postconditions, indication qu’une
méthode est abstraite (mot-clef abstract), etc.
y Une opération est définie par son nom ainsi que par les types de ses
y Opérations de classe ou opération étendue : y L'encapsulation est un principe de conception consistant à protéger le cœur d'un
{ Semblables aux attributs de classe système des accès inconvenants.
{ Une opération de classe est une propriété de la classe, et y En UML, l’encapsulation est exprimée par l’utilisation de modificateurs d'accès
non de ses instances. (appelés aussi niveaux ou règles de visibilité) sur les propriétés d’une classe
(attributs et opérations)
{ Elle n'a pas accès aux attributs des objets de la classe.
y Visibilité : Type d’accessibilité, détermine donc si d'autres éléments peuvent
{ Accède uniquement à des attributs étendus. utiliser ces éléments.
17 18
Classe Classe
Visibilité Relations entre classes
19 20
Classe Classe
L’association L’association
y Association simple:
{ Binaire
y Relation d'association: { représentée par un trait entre les classes.
{ Précise que les objets d'un élément sont reliés aux objets { généralement navigable de manière bidirectionnelle.
y Une association exprime une connexion sémantique { peut être dotée de rôles.
21 22
Classe Classe
L’association L’association
23 24
Classe Classe
L’association L’association
25 26
Classe Classe
L’association L’association
y Rôle :
y Association réflexive :
{ quant une classe participe à une association, elle y joue un rôle spécifique,
spécifié par le rôle (mis à l’extrémité d’une association) { L'association la plus utilisée est l'association binaire.
{ indispensable pour les associations réflexives { Parfois, les deux extrémités de l'association pointent vers la même classe.
Dans ce cas, l'association est dite réflexive.
Rôle1 Nom_ass Rôle2 Æ Elle s’applique à des objets d’une même classe.
ClasseA ClasseB
Employeur
Société Personne
Employé
Pilote
Avion Personne
Passager
27 28
Classe Classe
Exercice 1: lecture d’un diagramme declasses: Exercice 2: Description d’un système de fichiers
Compte Banque
1..4 0..* 1..* 1..*
Client numéro ➢ Un utilisateur possède au moins un répertoire
titulaires numéro
solde
nom
... 0..* ➢ Un répertoire appartient à un et un seul utilisateur
1 signataire
1 ➢ Un répertoire peut contenir d ’autres répertoires
Consortium
CarteBleue ➢ Un utilisateur peut accéder à au moins un répertoire
0..* * 1
➢ Un répertoire peut être accédé par au moins un utilisateur
Code
retraitMax EstAcceptéPar 0..*
> Distributeur
1..*
29 30
Classe Classe
Correction exercice 2: L’association
y Associations n-aires :
Contenus
<Contient { lie plus que deux classes (dite d’arité n).
0..* { Notation avec un losange central pouvant éventuellement accueillir
Est propriétaire de> 1..* une classe-association.
1..1
Contenant { La multiplicité de chaque classe s'applique à une instance du losange.
Répertoire 0..1
Utilisateur
31 32
Classe Classe
L’association L’association
y Classe-association: Classesassociatives
{ Une association peut être raffinée et avoir ses propres attributs, ou
Les classes associatives sont des associations mais aussi des classes.
opérations qui ne sont disponibles dans aucune des classes qu'elle lie. Æ Elles ont donc les mêmes propriétés et peuvent par exemple être liées par des
{ Comme dans le modèle objet seules les classes peuvent avoir des attributs, associations.
cette association devient alors une classe appelée classe-association.
employé société
Personne Société
0..2
*
Emploi
* salaire
FicheDePaye
augmenter()
33 34
Classe Classe
L’association L’association
"Pour un répertoire, à un nomdonné on associe qu'un fichier (ou 0 s'il existe aucun fichier de ce nom
dans ce répertoire). "
Repertoire Fichier
*
35 36
Classe Classe
L’association L’association
{ Donc, un des avantages : réduire la multiplicité. { Permettent de restreindre le nombre d’instances visées
{ Ou-exclusif
cibles
37 38
Classe Classe
L’association L’association
y Contrainte {ordonnée}
y Contrainte {sous-ensemble}
{ Peut être placée sur le rôle pour spécifier qu’une relation
{ Indique qu’une collection est incluse dans une autre collection
d’ordre décrit les objets placés dans la collection
y Exemple
y Exemple Parents d’élèves
Personne Diplôme *
1 Classe {Sous-ensemble} Personne
0..* *
Délégués
{Ordonnée}
41 42
Classe Classe
L’association L’association
La composition Composition
y C’est une contenance structurelle entre instances. La cardinalité ne peut être que de 1 maximum coté composant!
y Agrégation forte
y La destruction ainsi que la copie de l'objet composite (l'ensemble)
impliquent respectivement la destruction ou la copie de ses
composants (les parties).
y Coïncidence des cycles de vie : Une instance de composant ne peut être liée Exemples:
qu'à un seul agrégat
y Comme notation, on utilise un losange plein.
1
Pneu
4
Voiture Roue
1
Jante
43 44
Classe Classe
Héritage (2)
Héritage (1)
y Les classes enfants possèdent toutes les propriétés (attributs et
opérations) des classes parents Sauf les propriétés privées.
y L'héritage est une relation de spécialisation/ généralisation.
y Toutes les associations de la classe parent s'appliquent, par
défaut, aux classes dérivées (classes enfants).
Classe Classe
Héritage (3)
Héritage (4)
y Héritage multiple:
y Une classe peut avoir plusieurs classes parents. On parle
alors d'héritage multiple. y On peut ajouter des contraintes sur les liens de
généralisation/spécialisation
y Par défaut, les liens sont {exclusif} ou {disjoint}
y Il peuvent aussi être :
{ {Chevauchement} ou {inclusif}
{ {Complet}
{ {Incomplet}
47 48
Classe Classe
Héritage (5) Héritage (6)
y Par défaut, les liens sont {exclusif} ou {disjoint} : y Liens {Complet}
{ deux sous classes ne peuvent pas avoir des instances communes. { Indique que la généralisation est terminée
{ deux sous classes peuvent avoir des instances communes. y Liens {Incomplet}
{ Désigne une généralisation extensible
Personne Personne
Personne Etre Vivant
{disjoint} {Inclusif}
{disjoint}
{Incomplet}
{Complet}
homme femme Enseignant Chercheur
homme femme Poissons Oiseaux
49 50
Classe Classe
Héritage et classe-association Dépendance
y Classe-association: y Une dépendance est une relation unidirectionnelle exprimant
{ Une classe d’association peut participer au modèle (on peut une dépendance sémantique entre les éléments du modèle.
par exemple la spécialiser). y Un élément A dépend d'un élément B, lorsque A utilise des
services de B (flèche ouverte pointillée)
y Une modification de l'élément dont on dépend, peut nécessiter
une mise à jour de l'élément dépendant.