mika-el
4/8/2018 - 4:57 PM

Diagramme de classe

L'héritage

l'héritage est symbolisé par une simple flèche, comme indiqué à la figure suivante.

Interface

Si une classe doit implémenter une interface, alors on utilisera la flèche en pointillés, comme à la figure suivante.

Association

  • On dit que deux classes sont associées lorsqu'une instance des deux classes est amenée à interagir avec l'autre instance.
  • Le mot écrit au centre, au-dessus de la ligne est la définition de la relation. Il est suivi d'un petit symbole indiquant le sens de l'association.
  • Les chiffres à gauche et à droite sont les cardinalités. Elles présentent le nombre d'instances qui participent à l'interaction.
  • Les cardinalités peuvent être écrites sous différentes formes :
    • x (nombre entier) : tout simplement la valeur exacte de x.
    • x..y : de x à y (exemple : 1..5).
      • : une infinité.
    • x..* : x ou plus (exemple : 5..*).

L'association entre deux classes est modélisée comme à la figure suivante.

L'agrégation

On parlera d'agrégation entre deux classes lorsque l'une d'entre elles contiendra au moins une instance de l'autre classe. Il n'y a pas de cardinalité du côté du losange. En effet, le côté ayant le losange signifie qu'il y a obligatoirement une et une seule instance de la classe par relation (ici la classe est NewsCollection).

La composition

La composition est une agrégation particulière. Imaginons que nous ayons une classe A qui contient une ou plusieurs instance(s) de B. On parlera de composition si, lorsque l'instance de A sera supprimée, toutes les instances de B contenues dans l'instance de A sont elles aussi supprimées (ce qui n'était pas le cas avec l'agrégation).

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.

Première partie Le nom de la classe :

  • Si le nom de la classe est en romain, cela signifie qu'elle est classique.
  • Si le nom de la classe est en italique, cela signifie qu'elle est abstraite.
  • Si le nom de la classe est précédé de <<interface>> cela signifie que c'est un interface.

Seconde partie Les attributs :

  • Le signe + : l'élément suivi de ce signe est public.
  • Le signe # : l'élément suivi de ce signe est protégé.
  • Le signe - : l'élément suivi de ce signe est privé.
  • Le signe ~ : l'élément suivi de ce signe est visble uniquement dans le package.
  • Si l'attribut est souligné, cela signifie qu'il est statique.
  • Si l'attribut est en majuscule, cela signifie que c'est une constante.

Troisième partie Les méthodes :

La notion de visibilité est la même que celle des attributs.

  • Si la méthode est en italique, cela signifie qu'elle est abstraite.
  • Si le nom de la méthode est précédé de <<leaf>> cela signifie qu'elle est final.
  • Si la méthode est souligné, cela signifie qu'elle est statique.