2.5.8 Relation de Généralisation
La généralisation [Pierre 1997] décrit
une relation entre une classe générale (classe de base ou classe
parent) et une classe spécialisée (sous-classe). La classe
spécialisée est intégralement cohérente avec la
classe de base, mais comporte des informations supplémentaires
(attributs, opérations, associations). Un objet de la classe
spécialisée peut être utilisé partout où un
objet de la classe de base est autorisé.
Dans le langage UML, ainsi que dans la plupart des langages
objet, cette relation de généralisation se traduit par le concept
d'héritage. On parle également de relation d'héritage.
Ainsi, l'héritage permet la classification des objets. Le symbole
utilisé pour la relation d'héritage ou de
généralisation est une flèche avec un trait plein dont la
pointe est un triangle fermé désignant le cas le plus
général.
Les propriétés principales de l'héritage
sont :
- La classe enfant possède toutes les
caractéristiques de ses classes parents, mais elle ne peut
accéder aux caractéristiques privées de cette
dernière.
- Une classe enfant peut redéfinir (même signature)
une ou plusieurs méthodes de la classe parent.
- Toutes les associations de la classe parent s'appliquent aux
classes dérivées.
- Une instance d'une classe peut être utilisée
partout où une instance de sa classe parent est attendue.
- Une classe peut avoir plusieurs parents, on parle alors
d'héritage multiple
Figure 2.14- Partie du règne animal
décrit avec l'héritage multiple.
2.5.9 Relation de Dépendance
Une dépendance est une relation unidirectionnelle
exprimant une dépendance sémantique entre des
éléments du modèle. Elle est représentée par
un trait discontinu orienté. Elle indique que la modification de la
cible peut impliquer une modification de la source. La dépendance est
souvent stéréotypée pour mieux expliciter le lien
sémantique entre les éléments du modèle.
On utilise souvent une dépendance quand une classe en
utilise une autre comme argument dans la signature d'une opération.
Figure 2.15- Relation de dépendance.
Le diagramme de la figure 2.16 montre que la classe
Confrontation utilise la classe Stratégie car la classe Confrontation
possède une méthode confrontée dont deux paramètres
sont du type Stratégie. Si la classe Stratégie, notamment son
interface, change, alors des modifications devront également être
apportées à la classe Confrontation.
|