Diagramme de classe

Le langage de modélisation unifié, de l’anglais Unified Modeling Language (UML), est un langage de modélisation graphique à base de pictogrammes conçu pour fournir une méthode normalisée pour visualiser la conception d’un système. Il est couramment utilisé en développement logiciel et en conception orientée objet. UML 2.3 propose 14 types de diagrammes (9 en UML 1.3). UML n’étant pas une méthode, leur utilisation est laissée à l’appréciation de chacun, même si le diagramme de classes est généralement considéré comme l’élément central d’UML, nous parlerons de ce dernier.

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. 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é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.

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.

Schéma d’une classe

Une classe est représentée par un rectangle séparée en trois parties :

  1. le nom de la classe : il est écrit en police « romain », les classes abstraites sont écrites en italique ou entre <<__>>. Les classes template ont un rectangle dont la bordure est en pointillé dans leur angle supérieur droit (voir image en dessous).
  2. les attributs de la classe
  3. les méthodes de la classe

220px-modeleclassetemplate-svg

Les attributs

La syntaxe d’un attribut est la suivante : Visibilité nomAttribut [multiplicité] : typeAttribut = Initialisation ;

La notion de visibilité indique qui peut avoir accès à l’attribut, elle peut prendre quatre valeurs :

  • + : toutes les autres classes ont accès à cet attribut (accès public).
  • # : seules la classe et son héritage ont accès à cet attribut (accès protégé).
  • ~ : classe visible uniquement dans le package.
  • – : seule la classe elle-même a accès à cet attribut (principe d’encapsulation avec getter et setter).

Le nom de l’attribut ne doit ni comporter d’espaces, ni de signes de ponctuations ou accents. La multiplicité représente le nombre de fois que la variable peut exister pour un objet de la classe.

Les associations

Une association est une relation entre deux classes. On la décrit à l’aide :

  • de rôles d’un objet d’une classe dans un objet de l’autre (omis si évidents) ;
  • de cardinalités, c’est-à-dire de nombres d’objets d’une classe dans un objet de l’autre classe ; on utilise pour cela les notations :
    • 1 habituellement omis si 1 pour 1
    • n inconnu au moment de la compilation, mais borné
    • 0..n entre 0 et n
    • 1..* 1 ou plus
    • * 0 ou plus
  • un type de relation orientée ;
  • optionnellement des contraintes sur l’association.

Les types de relations fréquemment rencontrées sont :

  • L’héritage

220px-vererbung_t-svg

  • La classe interne

interne

  • La dépendance

dependance

  • L’aggrégation

aggregation

  • La composition

composition

Exemple

uml_class_diagram

Publicités