Relations de généralisation

En modélisation UML, une relation de généralisation est une relation dans laquelle un élément de modèle (l'enfant) repose sur un autre élément de modèle (le parent). Les relations de généralisation sont utilisées dans les diagrammes de classe, de composant, de déploiement et de cas d'utilisation.

Pour se conformer à la sémantique UML, les éléments de modèle d'une relation de généralisation doivent être de même type. Par exemple, une relation de généralisation peut être utilisée entre des acteurs ou entre des cas d'utilisation. Toutefois, elle ne peut pas être utilisée entre un acteur et un cas d'utilisation.

Vous pouvez ajouter des relations de généralisation pour enregistrer des attributs, des opérations et des relations dans un élément de modèle parent, puis les réutiliser dans un ou plusieurs éléments de modèle enfants. Etant donné que les éléments de modèle enfants des généralisations héritent des attributs, des opérations et des relations du parent, vous devez uniquement définir ceux qu'ils n'ont pas en commun.

L'élément de modèle parent peut posséder un ou plusieurs enfants, et un élément de modèle enfant peut posséder un ou plusieurs parents. Le schéma le plus courant consiste à avoir un seul élément de modèle parent et plusieurs éléments de modèle enfants.

Les relations de généralisation ne portent pas de nom.

Comme l'illustrent les figures ci-dessous, une relation de généralisation s'affiche dans l'éditeur de diagrammes sous la forme d'un trait plein avec une pointe de flèche en pointillé partant de l'élément de modèle enfant et pointant vers l'élément de modèle parent.

Parent unique avec enfant unique

Parent unique avec plusieurs enfants

Deux formes de classe contenant respectivement le nom Parent et le nom Enfant. Un trait plein avec une pointe de flèche en pointillé part de la classe enfant et pointe vers la classe parent. Deux formes de classe portant les noms Child1 et Child2 sont reliées à la forme de classe portant le nom Parent. Chaque connecteur est un trait plein avec une pointe de flèche en pointillé qui part de la classe enfant et pointe vers la classe parent.

Exemple

La figure ci-dessous illustre une application de commerce électronique d'un site Web qui propose plusieurs produits. L'application détient la classe InventoryItem qui est une classe parent (également appelée superclasse). Cette classe contient des attributs (Price, par exemple) et des opérations (setPrice, par exemple) que chaque produit utilise.

Une fois la classe parent définie, une classe enfant (également appelée sous-classe) est créée pour chaque type de produit (livres et DVD, par exemple). La classe des livres utilise les attributs et opérations de la classe d'inventaire puis ajoute des attributs (l'auteur, par exemple) et des opérations (setAuthor, par exemple). La classe des DVD utilise également les attributs et opérations de la classe d'inventaire mais ajoute des attributs tels que le fabricant et des opérations telles que setManufacturer, qui sont différents de ceux de la classe des livres.

Illustration de l'exemple présenté dans le paragraphe précédent.
Tâches associées
Ajout de relations dans des diagrammes
Conditions d'utilisation | Retours d'informations
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.