Vous êtes sur la page 1sur 54

Diagramme de Classe

1
Content
§ Objets

§ Classes

§ Attributs

§ Opérations

§ Relations
§ Association Binaire
§ Association N-aire
§ Classe Association
§ Agrégation
§ Généralisation

§ Création de diagramme de classe

2
Objet
§ Individus d'un système

Nom de l‘Objet
Classe
§ Notations alternatives :

Objets anonymes
Attribut Valeur actuelle = pas de nom d‘objet

3
Diagramme d’Objets
§ Objets d'un système et leurs relations (links)

§ Snapshot d'objets à un moment précis dans le temps

Link

4
De l’Objet à la Classe
§ Les individus d'un système ont souvent des attributs et des
comportements identiques

§ Une classe est un plan de construction pour un ensemble Classe


d'objets similaires d'un système

§ Les objets sont des instances de classes

§ Attributs : caractéristiques structurelles d'une classe


§ Valeur différente pour chaque instance (= objet)
Objet de cette
§ Opérations : comportement d’une classe classe

§ Identiques pour tous les objets d'une classe


à non représentés dans le diagramme d'objets

5
Classe

Nom de Classe

Attributs

Opérations

6
Syntaxe des Attributs

7
Syntaxe des Attributs - Visibilité

§ Qui est autorisé à accéder à l'attribut


§ + ... public : tout le monde
§ - ... private : uniquement l'objet lui-même
§ # ... protected : classe elle-même et sous-classes
§ ~ ... package : classes qui sont dans le même
package

8
Syntaxe des Attributs – Attribut Dérivé

§ La valeur de l'attribut est dérivée d'autres


attributs
§ âge : calculé à partir de la date de naissance

9
Syntaxe des Attributs - Name

§ Nom de l’attribut

10
Syntaxe des Attributs - Type

§ Type
§ Classes définies par l'utilisateur
§ Data type
§ Primitive data type
§ Pré-défini : Boolean, Integer,
UnlimitedNatural, String
§ Défini par l'utilisateur : keyword «primitive»
§ Composite data type : «datatype»
§ Enumérations: «enumeration»

11
Syntaxe des Attributs - Multiplicity

§ Nombre de valeurs qu'un attribut peut


contenir

§ Valeur par Défaut : 1

§ Notation : [min..max]
§ pas de limite supérieure : [*] ou [0..*]

12
Syntaxe des Attributs – Default Value

§ Valeur par Défaut


§ Utilisé si la valeur de l'attribut n'est pas définie
explicitement par l'utilisateur

13
Syntaxe des Attributs– Propriétés

§ Propriétes Pré-définies
§ {readOnly} … la valeur ne peut pas être
modifiée
§ {unique} … pas de doublons autorisés
§ {non-unique} … doublons autorisés
§ {ordered} … ordre fixe des valeurs
§ {unordered} … pas d'ordre fixe des valeurs
§ Spécification des attributs
§ Set : {unordered, unique}
§ Multi-set : {unordered, non-unique}
§ Ordered set : {ordered, unique}
§ List : {ordered, non-unique}

14
Syntaxe des Opérations - Paramètres

§ Notation similaire aux attributs


§ Direction du paramètre
§ in … input parameter
§ Lorsque l'opération est appelée, une
valeur est attendue de ce paramètre
§ out … output parameter
§ Après l'exécution de l'opération, le
paramètre a adopté une nouvelle
valeur
§ inout : input/output parameter
combiné

15
Syntaxe des Opérations - Type

§ Type de la valeur de retour

16
Variable de Classe et Opération de Classe

§ Variable d'instance (= attribut d'instance) : attributs définis au niveau de l'instance

§ Variable de classe (= attribut de classe, attribut statique) Défini une seule fois par
classe,
§ c'est-à-dire partagé par toutes les instances de la classe
§ Par exemple. compteurs pour le nombre d'instances d'une classe, constantes, etc.

§ Opération de classe (= opération statique)


§ Peut être utilisé si aucune instance de la classe correspondante n'a été créée
§ Par exemple. constructeurs, opérations de comptage, fonctions mathématiques. f(sin(x)),
etc.

§ Notation : souligner le nom de la variable de classe / opération de classe

class Person {

Variable public String firstName;


de Classe public String lastName;
private Date dob;
protected String[] address;
private static int pNumber;
Opération
public static int getPNumber() {…}
de Classe public Date getDob() {…}
}
17
Spécification des classes : différents
niveaux de détail

coarse-grained fine-grained

18
Association
§ Modéliser les relations possibles entre les instances de classes

19
Association Binaire
§ Connecte les instances de deux classes entre elles

Navigability Association name Reading direction

Multiplicity

Non-navigability

Visibility Role

20
Association Binaire - Navigability
§ Navigabilité : un objet connaît ses objets partenaires et peut donc
accéder à leurs attributs et opérations visibles
§ Indiqué par la tête de flèche ouverte

§ Non-navigabilité
§ Indiqué par une croix

§ Exemple :
§ A peut accéder aux attributs et opérations visibles de B
§ B ne peut accéder à aucun des attributs et opérations de A

§ Navigabilité non définie


§ La navigabilité bidirectionnelle est supposée

21
Navigability – UML Standard vs. Best
Practice

UML standard Best practice

22
Association Binaire comme Attribut

Préférable

class Professor {…}

class Student{
§ Java-like notation: public Professor[] lecturer;

}

23
Association Binaire – Multiplicity et Role

§ Multiplicity : nombre d'objets pouvant être associés à


exactement un objet du côté opposé

§ Role : décrit la manière dont un objet est impliqué dans une


relation d'association

24
Association Binaire – contrainte xor
§ Contrainte “exclusive or”

§ Un objet de classe A est à associer à un objet de classe B ou à


un objet de classe C mais pas aux deux.

25
Association Unaire - Exemple

26
Association n-aire (1/2)

§ Plus de deux objets partenaires sont impliqués dans la relation.

§ Aucune direction de navigation

Association
ternaire

27
Association n-aire (2/2)
§ Exemple
§ (Student, Exam) à (Lecturer)
§ Un student passe un exam avec un ou aucun lecturer
§ (Exam, Lecturer) à (Student)
§ Un exam avec un lecturer peut être passé par n’importe quel
nombre de students
§ (Student, Lecturer) à (Exam)
§ Un student peut être noté par un Lecturer pour n'importe quel
nombre d'exams

28
Classe d’Association

§ Attribuer des attributs à la relation entre les classes plutôt qu'à


une classe elle-même

29
Classe d’Association
§ Nécessaire lors de la modélisation d'associations n:m

Association class

§ Avec 1:1 ou 1:n possible mais pas nécessaire

30
Association Class vs. Regular Class

Un Student peut s‘inscrire (enroll) Un Student peut avoir mutiple


une seule fois pour un StudyProgram inscription(Enrollments)
particulier pour un seul et même
StudyProgram

31
Classe d’Association – unique/non-
unique
§ Par Défaut : pas duplications § non-unique : duplications
autorisées

Un student ne peut se voir Un student peut avoir plus d’un exam


accorder un exam meeting meeting pour un spécifique exam.
pour un spécifique exam
qu’une seule fois.

32
Agrégation
§ Forme spéciale d’association

§ Utilisé pour exprimer qu'une classe fait partie d'une autre classe

§ Propriétés de l'association d'agrégation :


§ Transitif : si B fait partie de A et C fait partie de B, C fait aussi partie
de A
§ Asymétrique : il n'est pas possible pour A de faire partie de B et B de
faire partie de A simultanément.

§ Deux types:
§ Agrégation partagée
§ Composition

33
Agrégation partagée
§ Exprime une faible appartenance des parties à un tout
§ = Les parties existent aussi indépendamment du tout

§ La multiplicité à la fin de l'agrégation peut être > 1


§ = Un élément peut faire partie de plusieurs autres éléments
simultanément

§ Couvre un graphe acyclique orienté

§ Syntaxe :
§ Diamant creux à la fin de l'agrégation

§ Exemple:
§ Student fait partie de LabClass
§ Course fait partie de StudyProgram

34
Composition
§ Dépendance d'existence entre l'objet composite et ses parties
Une partie ne peut être contenue que dans au plus un objet
composite à un moment précis

§ Multiplicité à la fin de l'agrégation max. 1

-> Les objets composites forment un arbre

§ Si l'objet composite est supprimé, ses parties sont également


supprimées.

§ Syntaxe : Diamant solide à la fin de l'agrégation

§ Exemple : Beamer fait partie de LectureHall fait partie de Building

si Building est supprimé, Beamer peut exister sans le


LectureHall sera aussi supprimé LectureHall, mais si il est contenu dans le
LectureHall pendant qu’il est supprimé, Beamer
est supprimé aussi
35
Agrégation partagée et Composition

§ Quel modèle s'applique ?

36
Généralisation
§ Les caractéristiques (attributs et opérations), les
associations et les agrégations qui sont
spécifiées pour une classe générale Superclasse
(superclasse) sont transmises à ses sous-classes.

§ Chaque instance d'une sous-classe est


simultanément une instance indirecte de la
superclasse.
Sous-classes
§ La sous-classe hérite de toutes les …héritent character
caractéristiques, associations et agrégations associations, et
de la superclasse, à l'exception des
caractéristiques privées.
agrégations

§ La sous-classe peut avoir d'autres Secretary est une Employee


caractéristiques, associations et agrégations. et une Person

§ Les généralisations sont transitives.

37
Généralisation – Abstract Class

§ Utilisé pour mettre en évidence les caractéristiques communes


de sous-classes.

§ Utilisé pour s'assurer qu'il n'y a pas d'instances directes de la


superclasse.

§ Seules ses sous-classes non abstraites peuvent être instanciées.

§ Utile dans le contexte des relations de généralisation.

§ Notation : mot clé {abstract} ou nom de classe en italique.

Pas d‘object Person possible

Deux types de Person : Man et Woman

38
Généralisation – Héritage Multiple
§ UML permet l'héritage multiple.

§ Une classe peut avoir plusieurs superclasses.

§ Example :

Tutor est à la fois Employee et Student

39
Avec ou sans Généralisation

40
Création d’un diagramme de Classse

§ Impossible d'extraire complètement les classes, les attributs et les


associations automatiquement d'un texte en langage naturel.

§ Des lignes directrices


§ Les noms indiquent souvent des classes
§ Les adjectifs indiquent des valeurs d'attribut
§ Les verbes indiquent les opérations

§ Exemple : Le système de gestion de bibliothèque stocke les


utilisateurs avec leur identifiant unique, leur nom et leur adresse
ainsi que les livres avec leur titre, leur auteur et leur numéro ISBN.

41
Exemple – University Information System
§ Une université se compose de plusieurs facultés composées de divers
instituts. Chaque faculté et chaque institut a un nom. Une adresse est
connue pour chaque institut.

§ Chaque faculté est dirigée par un doyen (dean), qui est un employé de
l'université.

§ Le nombre total d'employés est connu. Les employés ont un numéro de


sécurité sociale, un nom et une adresse e-mail. Il y a une distinction entre le
personnel de recherche et le personnel administratif.

§ Les associés de recherche (Research associates) sont affectés à au moins


un institut. Le domaine d'études de chaque chercheur associé est connu.
De plus, les associés de recherche peuvent être impliqués dans des projets
pendant un certain nombre d'heures, et le nom, la date de début et la date
de fin des projets sont connus. Certains associés de recherche donnent des
cours. On les appelle alors conférenciers (Lecturers).

§ Les cours ont un numéro unique (ID), un nom et une durée hebdomadaire
en heures.

42
Exemple – Step 1: Identifier les Classes
§ Une université se compose de plusieurs facultés Modélisation du système ‘‘University“
composées de divers instituts. Chaque faculté
et chaque institut a un nom. Une adresse est
connue pour chaque institut.

§ Chaque faculté est dirigée par un doyen


(dean), qui est un employé de l'université.

§ Le nombre total d'employés est connu. Les


employés ont un numéro de sécurité sociale, un
nom et une adresse e-mail. Il y a une distinction
entre le personnel de recherche et le personnel
administratif.

§ Les associés de recherche (Research


associates) sont affectés à au moins un institut.
Le domaine d'études de chaque chercheur
associé est connu. De plus, les associés de
recherche peuvent être impliqués dans des
projets pendant un certain nombre d'heures, et
le nom, la date de début et la date de fin des
projets sont connus. Certains associés de
recherche donnent des cours. On les appelle
alors conférenciers (Lecturers).

§ Les cours ont un numéro unique (ID), un nom et


une durée hebdomadaire en heures.
Dean n'a pas d'autres attributs que
n'importe quel autre employé

43
Exemple – Step 2 : Identifier les Attributs
§ Une université se compose de plusieurs facultés
composées de divers instituts. Chaque faculté
et chaque institut a un nom. Une adresse est
connue pour chaque institut.

§ Chaque faculté est dirigée par un doyen


(dean), qui est un employé de l'université.

§ Le nombre total d'employés est connu. Les


employés ont un numéro de sécurité sociale, un
nom et une adresse e-mail. Il y a une distinction
entre le personnel de recherche et le personnel
administratif.

§ Les associés de recherche (Research


associates) sont affectés à au moins un institut.
Le domaine d'études de chaque chercheur
associé est connu. De plus, les associés de
recherche peuvent être impliqués dans des
projets pendant un certain nombre d'heures, et
le nom, la date de début et la date de fin des
projets sont connus. Certains associés de
recherche donnent des cours. On les appelle
alors conférenciers (Lecturers).

§ Les cours ont un numéro unique (ID), un nom et


une durée hebdomadaire en heures.

44
Exemple – Step 3 : Identifier les Relations
(1/6)
§ Trois types de relations:
§ Association
Abstract, i.e., pas d'autres
§ Généralisation
types d'employés
§ Agrégation

§ Indication d'une généralisation

§ « Il y a une distinction entre le personnel de


recherche et le personnel administratif.

§ « Certains attachés de recherche donnent


des cours. Ils sont appelés Lecturer.

45
Exemple – Step 3 : Identifier les Relations
(2/6)

§ “Une université se compose de plusieurs facultés composées de


divers instituts.”

Composition pour montrer l‘existence


de dépendance

46
Exemple – Step 3 : Identifier les Relations
(3/6)

§ “Chaque faculté est dirigée par un doyen (dean), qui est un


employé de l'université”

Dans la relation leads,


Employee prend le role du dean.

47
Exemple – Step 3 : Identifier les Relations
(4/6)

§ “Les associés de recherche (Research associates) sont affectés


à au moins un institut.”

Agrégation partagée pour montrer que ResearchAssociates


fait partie de Institute,
mais pas d‘existence de dépendance.

48
Exemple – Step 3 : Identifier les Relations
(5/6)

§ “De plus, les associés de recherche peuvent être impliqués dans


des projets pendant un certain nombre d'heures.”

La classe d'association permet


de stocker le nombre d'heures
pour chaque Projet de chaque
ResearchAssociate

49
Exemple – Step 3 : Identifier les Relations
(6/6)

§ “Certains associés de recherche donnent des cours. On les


appelle alors conférenciers (Lecturers).”

Lecturer hérite les caracteristiques,


associations, et agrégations de
ResearchAssociate.
En plus, un Lecturer a une association
teaches au Course.

50
Exemple – Class Diagram Complet

51
Eléments de Notation(1/3)
Name Notation Description

Description de la structure et du
Class comportement d'un ensemble
d'objets

oder

Classe qui ne peut pas être


Abstract class
instanciée

Relation entre les classes :


navigabilité non précisée, navigable
Association
dans les deux sens, non navigable
dans une direction

52
Eléments de Notation(2/3)
Name Notation Description

n-aire
Relation entre n (ici 3) classes
association

Description plus détaillée d'une


Association class
association

Un objet de C est en relation avec


xor relation un objet de A ou avec un objet de B
mais pas avec les deux

53
Eléments de Notation(3/3)
Name Notation Description

Shared Relation parties-tout (A fait partie


aggregation de B)

Strong
Existance-dependance parties-
aggregation =
tout relation (A fait partie de B)
composition

Généralization Relation d'héritage (A hérite de B)

Object Instance d’une classe

Link Relation entre objets

54

Vous aimerez peut-être aussi