Ajouter une association qualifiée entre 2 classes | Blog des Technologies de l'Information

Ajouter une association qualifiée entre 2 classes

Comment représenter une association qualifiée entre deux classes ?

Une association entre deux classes A et B, dont le nombre d'objets de classe B est restreint par rapport à un objet de classe A sur la base d'un ou plusieurs attributs, peut être représentée en UML par la définition d'attributs qualifiants (nommé qualifier en anglais).

association qualifiee - enterprise architect

Par exemple, dans la relation pouvant exister entre une banque et ses clients, le numéro de compte constitue un attribut qualifiant qui identifie de manière unique, un client particulier de la banque où le compte bancaire a été ouvert.

En effet, un client est identifié dans sa banque par l'intermédiaire de son numéro de compte. Au plus, il n'existe qu'un seul client pour une banque et un numéro de compte donnés.

La déclaration d'un attribut qualifiant est à effectuer au niveau de l'association qui relie les deux classes et non pas au niveau de la classe du côté de laquelle sont affichés les attributs qualifiants (voir le rectangle accolé à la classe Banque et contenant l'attribut qualifiant numCompte).

association properties - enterprise architect

Dans EA, pour ajouter un attribut qualifiant à une association, depuis le diagramme de classes concerné, afficher les propriétés de l'association à qualifier en la double-cliquant.
L'autre cheminement possible consiste à sélectionner l'association, à afficher le menu contextuel par un clic droit, puis à sélectionner Association Properties... dans le menu.

Sélectionner ensuite l'onglet Source Role ou Target Role selon le côté de l'association devant porter les attributs qualifiants.

Dans le champ Qualifier(s), indiquer le nom de l'attribut qualifiant. Le type de l'attribut peut être ajouté à sa droite (séparé par deux points : ).
Si plusieurs attributs qualifiants doivent être ajoutés, les séparer par un point-virgule ( ; ) pour qu'ils soient affichés les uns en dessous des autres.
Par exemple ligne:int;colonne:int pour afficher les deux attributs qualifiants ligne et colonne, tous les deux étant de type int.

Thème: