Diagramme de classe

Le diagramme de classes est considéré comme le plus important de la modélisation orientée objet. Alors que le diagramme de cas d’utilisation
montre un système du point de vue des acteurs, le diagramme de classes en montre la structure interne. Il contient principalement des classes. Une
classe contient des attributs et des méthodes .

Les diagrammes de classes permettent de spécifier la structure et les liens entre les objets dont le système est composé.

Concepts et instances

L’instanciation est l’action de création d’un objet à partir d’une classe. Le résultat de cette création est une instance de la classe. Les instances d’une classe sont les occurrences d’objets correspondant à cette classe (ex. : la voiture de mon voisin).
Dans la pratique, les termes d’objet et d’instance sont souvent équivalents.

Classes et objets :

Propriétés : attributs et opérations :

Encapsulation :

L’encapsulation est un principe de conception consistant à protéger le coeur d’un système des accès intempestifs venant de l’extérieur.
En UML, les modificateurs d’accès permettent de définir la visibilité des propriétés :

Opérations d’une classe :

Syntaxe (entre accolades, les mentions optionnelles) :
{−, #, +, ∼} nomOpération (LISTE_PARAMS) :valeurRetour
avec pour LISTE_PARAMS, les paramètres séparés par des virgules.
Chaque paramètre s’écrit :
nomParamètre : TypeParamètre Exemples :

Notation abrégée d’une classe :

Si une classe est déjà définie, il est possible de la représenter simplement,sans ses propriétés.

Relations entre classes

Association :

Une association est une relation structurelle entre objets.

La flèche indique ici que la relation est uni-directionnelle : les objets de classe Article connaissent ceux de la la classe Commentaire auxquels il sont liés, mais pas l’inverse.

Association bi-directionnelle :

Certaines associations sont bi-directionnelles mais comme une telle association est plus complexe à implémenter, on prefère l’aviter autant que possible.

L’absence de flèche indique ici que l’on peut accéder aux catégories à partir des articles qui leur sont liés, et inversement.

Multiplicités :

Les multiplicités permettent de contraindre le nombre d’objets intervenant dans les instanciations des associations. On en place de chaque côté des associations.

Ici, le 1..5 s’interprète comme à un objet donné de la classe Article, on doit associer au minimum 1 objet de la classe Categorie et on peut en associer au maximum 5.

Ecriture des multiplicités :

Certaines écritures possibles :

Rôles :

On peut donner à une classe un rôle dans une association. C’est surtout utile quand plusieurs associations concernent les mêmes classes en qu’en conséquence, de mêmes objets peuvent être liés par des modalités différentes.

Ici, des adresses peuvent être liées aux clients :

Classe-association :

Pour faire porter des informations par une association, on emploie une classe-association.
Graphiquement, on la relie à l’association avec des pointillés.

Expression des compositions avec des relations :

Il est possible de représenter plus explicitement les relations de composition entre classes.

De manière équivalente à la définition d’attributs, on peut utiliser des compositions unidirectionnelles et il ne faut pas représenter à la fois des attributs et des compositions pour la même relation.

Compositions et associations classiques :

Il faut remplir deux critères pour décider d’une composition au lieu d’une association classique :

Modificateurs d’accès :

UML Java
+ public
- private
# protected
∼ package

L’agrégation :

la composition :