Cours Spé Dev - UML

Vidéo

Diagrammes de classes

Unified Modeling Language (UML)

Le langage de modélisation unifié (UML) permet de modéliser des systèmes (informatique ou non). Un des types les plus populaires en langage UML sont les diagrammes de classes.

Il est très utilisé par les ingénieurs logiciel pour documenter l’architecture des programmes car ils décrivent ce qui doit être présent et comment les différents éléments interagissent entre eux.

Voyez ça comme le plan d’un bâtiment conçu par un architecte.

Avantages des diagrammes de classes

Les avantages sont nombreux:

  • Permet d’illustrer simplement des applications, quel que soit le degré de complexité.
  • Schématisation détaillée qui met l’accent sur le code spécifique qui doit être implémenté et comment il interagit avec les autres parties du code.
  • Fournit une description des composants d’une application sans avoir besoin de chercher les interactions.

Représentation de base d’un diagramme de classes

Un diagramme de classes représente comme son nom l’indique, les classes d’un programme.

Une classe est représentée par un diagramme composée en 3 sections:

  • Section supérieure : contient le nom de classe.
  • Section intermédiaire : contient les attributs de la classe.
  • Section inférieure : contient les méthodes de la classe.

Classe vide
Classe vide

Attributs et méthodes

Vous devez spécifier les informations suivantes pour les attributs :

visibilité nom_de_l_attribut : type

Vous devez spécifier les informations suivantes pour les méthodes :

visibilité nom_de_la_methode(type_param1, type_param_2, …) : type_retour

Le symbole de la visibilité peut être :

  • + public
  • - privé
  • # protégé

Classe voiture
Classe voiture

L’héritage

Une première interaction et sans doute celle que vous allez le plus utiliser. On symbolise une classe par une ligne de connexion avec une pointe de flèche blanche, orientée vers la classe mère.

Diagramme de classes
Diagramme de classes

Les associations bidirectionnelles ou unidirectionnelles

Associations bidirectionnelles : Un simple trait reliant deux classes ayant une relation entre elles. Par exemple : Un propriétaire et une voiture. Un propriétaire possède une (ou plusieurs) voiture, et dans l’autre sens, une voiture possède un propriétaire.

Associations unidirectionnelles: Cette fois, il s’agit d’un trait partant d’une classe vers une autre avec une flèche simple au bout. Cela indique que la classe d’origine a connaissance de la classe d’arrivée, mais pas l’inverse. Prenons l’exemple d’un Radar. Il va flasher votre voiture, mais la voiture n’a pas “conscience” d’avoir été flashée.


Diagramme de classes
Diagramme de classes

Agrégation et Composition

Ce sont des associations comme précédemment, mais qui modélisent une situation où l’une des classes va avoir un rôle à jouer en particulier.

Attention: L’agrégation et la composition sont des vues subjectives. Ce que vous jugez correct pour vous, ne le sera pas nécessairement pour un autre. C’est un jugement propre au concepteur de l’application.

L’agrégation

Une agrégation montre une appartenance faible. Cela signifie qu’un objet (ayant le rôle d’agrégat) est lié à un autre objet, mais que l’existence de dernier n’est pas obligatoire pour le bon fonctionnement de l’agrégat. Exemple avec un objet PageWeb et un objet Image. Une image est un élément d’une page web, et une page web est une agrégation d’image (il peut en avoir plusieurs). La page web n’a cependant pas besoin d’une image pour exister.

L’agrégation est modélisée par un losange blanc du côté de l’agrégat.

Agregation
Agregation

La composition

À l’inverse d’une agrégation, la composition montre une appartenance forte. C’est-à-dire cette fois, qu’un objet ne peut exister sans la présence d’une autre. Exemple avec un objet Livre et un objet Page. Un livre est composé de pages. Un livre ne peut pas exister sans page.

La composition est modélisée par un losange noir du côté du composé.

Composition
Composition