Académique Documents
Professionnel Documents
Culture Documents
Ces relations ne sont pas exclusives au diagramme de classes, elles peuvent également s'appliquer à
l'ensemble des diagrammes statiques.
Héritage
T' hérite de T.
L'héritage est un principe de division par généralisation et spécialisation, représenté par un trait reliant
les deux classes et dont l'extrêmité du côté de la classe mère comporte un triangle.
La classe fille hérite de tous les attributs et méthodes, qu'ils soient publics, protégés ou privés.
Cependant, elle ne peut pas utiliser directement les attributs et méthodes privés (que ce soit en
lecture ou en écriture), sauf par l'intermédiaire d'une méthode héritée (publique ou protégée).
Association
L'association est une connexion sémantique entre deux classes (relation logique). Une association
peut être nommée. L'invocation d'une méthode est une association. Elle peut être binaire, dans ce cas
elle est représentée par un simple trait, ou n-aire, les classes sont reliées à un losange par des traits
simples. Ces relations peuvent être nommées. L'association n'est utilisée que dans les diagrammes
de classe.
Agrégation
L'agrégation est une association avec relation de subordination, représentée par un trait reliant les
deux classes et dont l'origine se distingue de l'autre extrémité (la classe subordonnée) par un losange
vide. Une des classes regroupe d'autres classes. L'objet T utilise une instance de la classe T'.
Composition
La composition est une agrégation avec cycle de vie dépendant : la classe composée est détruite
lorsque la classe mère disparait. L'origine de cette association est représentée par un losange plein.
Dépendance
Implique qu'une ou plusieurs méthodes reçoivent un objet d'un type d'une autre classe. Il n'y a pas de
liaison en ce qui concerne la destruction d'objets mais une dépendance est quand même là. Elle est
symbolisée par une flèche en pointillés, dont son extrémité possède trois traits qui se coupent en un
même point.
Multiplicité
exactement un : 1 ou 1..1 ;
plusieurs : * ou 0..* ;
au moins un : 1..* ;
de un à six : 1..6.
Généralisation
La généralisation 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é.
Interfaces
les classes permettent de définir en même temps un objet et son interface. Le classeur, que nous
décrivons dans cette section, ne permet de définir que des éléments d'interface. Il peut s'agir de
l'interface complète d'un objet, ou simplement d'une partie d'interface qui sera commune à
plusieurs objets.
Le rôle de ce classeur, stéréotypé << interface >>, est de regrouper un ensemble de propriétés et
d'opérations assurant un service cohérent. L'objectif est de diminuer le couplage entre deux
classeurs. La notion d'interface en UML est très proche de la notion d'interface en Java.
Une classe définit un jeu d'objets dotés de caractéristiques communes. Les caractéristiques d'un
objet permettent de spécifier son état et son comportement.
Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets.
Une classe est un ensemble de fonctions et de données (attributs) qui sont liées ensemble par un
champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles
permettent de modéliser un programme et ainsi de découper une tâche complexe en plusieurs
petits travaux simples.
Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les classes et
les interfaces des systèmes ainsi que les différentes relations entre celles-ci. Ce diagramme fait
partie de la partie statique d'UML car il fait abstraction des aspects temporels et dynamiques.
La modélisation objet consiste à créer une représentation abstraite, sous forme d'objets, d'entités
ayant une existence matérielle (arbre, personne, téléphone, ...) ou bien virtuelle (sécurité sociale,
compte bancaire, ...). Un objet est caractérisé par plusieurs notions:
Les attributs (on parle parfois de propriétés): Il s'agit des données caractérisant l'objet. Ce sont
des variables stockant des informations d'état de l'objet
Les méthodes (appelées parfois fonctions membres): Les méthodes d'un objet caractérisent son
comportement, c'est-à-dire l'ensemble des actions (appelées opérations) que l'objet est à même
de réaliser. Ces opérations permettent de faire réagir l'objet aux sollicitations extérieures (ou
d'agir sur les autres objets). De plus, les opérations sont étroitement liées aux attributs, car leurs
actions peuvent dépendre des valeurs des attributs, ou bien les modifier
L'identité: L'objet possède une identité, qui permet de le distinguer des autres objets,
indépendamment de son état. On construit généralement cette identité grâce à un identifiant
découlant naturellement du problème (par exemple un produit pourra être repéré par un code,
une voiture par un numéro de série, ...)
Une méthode est dite abstraite lorsqu'on connaît son entête, mais pas la manière dont elle
peut être réalisée. Pour indiquer qu'une classe est abstraite, il faut ajouter le mot-clef abstract
derrière son nom.
La visibilité des attributs
Public (+) : représente des éléments visibles à partir de toutes les classes du code
Private (-) : représente des éléments visibles uniquement au niveau de la classe dans
laquelle ils sont définis.
Protected (#) : représente des éléments visibles au niveau de la classe dans laquelle ils
sont définis ainsi que ses classes filles
package (~) : représente des éléments visibles à partir des classes se trouvant dans le
même package