Association

Association

L’association représente des relations structurelles entre classes d’objets. Elle est représentée par une ligne entre deux classes et cette ligne peut intégrer facultativement une forme verbale, active ou passive à son milieu pour donner un sens précis à la relation.

Agrégation

Une agrégation représente une association non symétrique dans laquelle une des extrémités joue un rôle prédominant par rapport à l’autre extrémité. Il s’agit d’une relation AVOIR qui est de multiplicité 1,1 ou 1,N qui est de nature théorique ou conceptuelle. Il ne peut y avoir de 0 dans les multiplicités de l’agrégat (parent) (celui-ci possède toujours au moins un enfant).

Composition

Une composition représente une association dans laquelle une extrémité compose l’autre extrémité. Il s’agit de la relation composer qui est de nature physique ou matérielle. La valeur de la multiplicité de l’agrégat (parent) ne peut prendre que les valeurs 0 ou 1. C’est à dire que le composite ne sert à composer 0, ou 1 élément composé.

  • Nom d’association. Le sens de lecture des noms de l’association est indiqué par un triangle dirigé vers la classe désignée par la forme verbale. Perceptory met automatiquement les triangles lors de la création de la relation. Il peut y avoir deux ou plusieurs associations de nature différente entre les deux même classes. (ex.: HABITER et POSSÉDER entre personne et bâtiment).

    L’association peut être récursive, i.e. affecter une seule classe. (ex.: BÂTIMENT situé près de BÂTIMENT)

    L’association peut être dérivée à partir de d’autres associations. Le nom de l’association est alors précédé d’une barre oblique  » / « . (ex.: VOISINER entre personne est dérivée des relations SITUER entre bâtiment et HABITER entre personne.)

  • Agrégation. Représenté schématiquement par un lien possédant un petit losange blanc du côté de l’agrégat.
  • Composition. Représenté par un lien possédant un petit losange noir du côté du composite.
  • Multiplicités. Indiquent les nombres minimum et maximum d’occurrences d’objets de l’autre classe qui peuvent être liés à une occurrence d’objet d’une classe; On indique alors la cardinalité à la suite du nom de l’association. (ex.: BÂTIMENT est habité par 0,N PERSONNE).
  • Classe-association. On ajoute une classe-association à une association lorsque cette association a des attributs ou des opérations (ex.: numéro contrat pour POSSÉDER, il peut y avoir plusieurs contrats différents entre les mêmes personnes et les mêmes bâtiments);
    Une classe de ce type est traitée comme une classe comme les autres et peut donc participer à d’autres relations dans le modèle.
  • Contrainte (pour une ou des associations). Une contrainte est une relation sémantique quelconque entre éléments de modélisation. Il s’agit d’une expression qui précise le rôle ou la portée d’un ou plusieurs éléments de modélisation dans un modèle de classes d’objets.

    La contrainte peut affecter une seule relation ou un groupe de relations

    Si besoin est, un triangle noir indique le sens de la contrainte

    Voici des exemples de valeurs que peut prendre une contrainte applicable à une association:

    {sous-ensemble}: indique qu’une association est incluse dans une autre association (ex.: les occurrences de la relation HABITER représentent un sous-ensemble des occurrences de la relation POSSÉDER, ce qui implique que les propriétaires doivent habiter une de leurs maisons.);

    {ou-exclusif}: précise que pour un objet donné, une seule association parmi un groupe d’association est possible. ex.: un TERRAIN est occupé par un PARC ou une MAISON ou rien, mais jamais les deux à la fois)

    {ordonnée} que l’objet représenté par l’association suit un ordre précis. (ex.: PERSONNE posséder MAISON, i.e. le propriétaire acquiert les maisons dans un ordre précis et la création des occurrences de l’association suivent l’ordre d’acquisition)

  • Rôle. C’est l’extrémité d’une association qui décrit comment une classe en voit une autre à travers une association. Il est placé à l’extrémité d’une association. (ex.: l’association entre personne (locateur) et personne (locataire))

    NB. Souvent l’utilisation de rôle peut changer les multiplicités des associations impliquées. (ex.: Une personne peut ne pas avoir de locateur 0,N (car elle est propriétaire elle-même). Cependant, le « locataire » a toujours au moins un « propriétaire » (sinon, il ne serait pas locataire). La multiplicité indiquée est alors celle qui s’applique au rôle, comme 1,N dans notre cas.)

  • Classe-association. On ajoute une classe-association à une association lorsque l’on désire gérer les aspects spatiaux ou temporels de l’association. Les pictogrammes du langage PictograF sont alors utilisés dans Perceptory.
  • Rôle. En pratique, nous utilisons le rôle ou le nom de relation pour éviter les ambiguïtés qui pourraient survenir à l’application des multiplicités.
  • Agrégation/composition. Quoique les agrégations et compositions soient supportés par Perceptory, nous ne faisons en pratique pas de distinction entre celles-ci. La littérature scientifique et notre expérience ont démontré l’ambiguïté de la distinction entre ces deux types d’associations. Nous utilisons généralement l’agrégation pour représenter la relation car très souvent une relation évidente d’agrégat-composant est apparente.

Pour ajouter une association au modèle

  • Sélectionner l’élément Association du gabarit de modélisation et le glisser vers le modèle.
  • Connecter les deux extrémités de l’association à deux classes.
  • Sélectionner l’association et appuyer sur le bouton droit de la souris. Choisir une option du menu: Association, Composition ou Agrégation. L’extrémité de l’association prendra alors la bonne forme.
  • Sélectionner l’item et appuyer sur le bouton droit de la souris pour accéder au dictionnaire à l’aide de l’item Open Dictionary. Remplir le dictionnaire avec les informations demandées.

Consulter la section Formulaires du dictionnaire pour connaître l’ensemble des éléments du dictionnaire pouvant être complétés pour une association.