Diagramme de classes
| Image manquante Symbole-ordinateur.png | Cet article est une ébauche concernant l'informatique, vous pouvez partager vos connaissances en le modifiant. |
Le diagramme de classes permet de présenter les classes et les Interfaces d'un système 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.
Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets. Les éléments de cet ensemble sont les instances de la classe.
Une classe est un ensemble de fonctions et de données (attributs) qui sont liés ensembles par un champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles permettent de modulariser un programme et ainsi de découper une tâche complexe en plusieurs petits travaux simples.
Les classes peuvent être liées entre elles grâce au mécanisme d'héritage qui permet de mettre en évidence des relations de parenté. D'autres relations sont possibles entre des classes, chacune de ces relations est représentée par un arc spécifique dans le diagramme de classes.
Elles sont finalement instanciées pour créer des objets (une classe est un moule à objet : elle décrit les caractéristiques des objets, les objets contiennent leurs valeurs propres pour chacune de ces caractéristiques lorsqu'ils sont instanciés).
| Sommaire |
Relations possibles entre classes
Ces relations ne sont pas exclusives au diagramme de classe, elles peuvent également s'appliquer à l'ensemble des diagrammes statiques.
- héritage : principe de division par généralisation et spécialisation, représenté par un trait reliant les deux classes et dont l'origine (classe mère) se distingue de l'autre l'extrémité (classe fille) par un triangle
- association : connexion sémantique entre deux classes ( relation logique ), représentée par un simple trait
- agrégation : association avec relation de subordination, représentée par un trait reliant les deux classes et dont l'origine se distingue de l'autre l'extrémité (la classe subordonnée) par un losange
- composition : agrégation avec cycle de vie dépendant
- multiplicité : ...
- navigabilité : ...
Schéma d'une classe
Une classe est représentée par un rectangle séparée en trois parties :
- la première partie contient le nom de la classe
- la seconde contient les attributs de la classe
- la dernière contient les méthodes de la classe
Exemple :
Image manquante
Uml.png
Image:Uml.png
Seconde partie : les attributs
Pour définir un attribut, il faut préciser son nom suivi du caractère « : » et du type de l'attribut.
Le modificateur d'accès de l'attribut doit précéder son nom et peut prendre les valeurs suivantes :
| Caractère | Rôle | Description |
|---|---|---|
| + | accès public | tous les objets ont accès à cet attribut |
| # | accès protected | seuls les objets issus de classes filles (héritée) ont accès à cet attribut |
| - | accès private | seul l'objet lui-même a accès à cet attribut |
Troisième partie : les méthodes
Les modificateurs sont identiques à ceux des attributs :
| Caractère | Rôle |
|---|---|
| + | accès public |
| # | accès protected |
| - | accès private |
Les paramètres de la méthodes peuvent être précisés en les indiquant entre les parathèses sous la forme nom : type.
Si la méthode renvoie une valeur son type doit être précisé après un signe « : ».
Exemple de code
Le code source Java suivant correspond au schéma UML de MaClasse :
public class MaClasse {
public int champPublic = 0;
protected double champProtected = 0;
private boolean champPrive = false;
public void methode1(int valeur){
}
protected String methode2(){
}
private void methode3(){
}
}
Schéma de relation d'héritage
Image manquante
Schema_classe_UML_heritage.png
Image:Schema_classe_UML_heritage.png
Exemple de code Java correspondant à cette exemple :
public class MaClasseFille extends MaClasse {
}
