Classe d'association

Objectifs

  • Savoir ajouter des propriétés à une association ;

  • Connaître les cas d'utilisation des classes d'association.

Mise en situation

Imaginez que vous développiez une application de vente en ligne, où les clients peuvent passer des commandes. Vous avez identifié plusieurs classes UML, comme par exemple les articles et les clients. Vous avez également identifié une association entre client et article, qui symbolise l'action de commande un article.

Mais dans votre modélisation, si un client veut commander plusieurs articles, où va aller cette information ? Elle n'est pas directement un attribut du client, ni de l'article ?

C'est plutôt un attribut de l'association, lié à l'acte de commande. Dans ce module, vous allez apprendre à ajouter des attributs aux associations, grâce aux classes d'association.

DéfinitionClasse d'association

On utilise la notation des classes d'association lorsque l'on souhaite ajouter des propriétés à une association.

SyntaxeNotation d'une classe d'association en UML

@startumlskinparam defaultFontName Inconsolataskinparam classFontStyle boldhide circleclass A as "Classe 1"class B as "Classe 2"A "*"--left--"*" Bclass C as "Classe d'association" {attribut1 de l'association : typeattribut2 de l'association : type}(A, B) .. C@enduml

Méthode

On réserve en général les classes d'association aux associations N:M.

En effet, il est toujours possible de réduire une classe d'association sur une association 1:N en migrant ses attributs sur la classe côté N, et c'est en général plus lisible ainsi.

ExempleExemple de classe d'association

@startumlskinparam defaultFontName Inconsolataskinparam classFontStyle boldhide circleclass A as "Société"class B as "Personne"A "*"--left--"*" Bclass C as "Emploi" {poste: varcharsalaire: integerquotité: real}(A, B) .. C@enduml

Conseil

Selon le standard UML une classe d'association est une classe et à ce titre elle peut être mobilisée dans d'autres associations ou dans des héritages. Nous déconseillons néanmoins ces notations qui ont tendance à complexifier l’interprétation du diagramme.

Nous conseillons donc de ne pas associer une classe d'association.