Relations (model)

De Wiki1000

Sommaire

Introduction

Les classes métiers interagissent entre elles à travers des relations. Une relation est implémentée dans chaque classe métier qui y participe par un attribut particulier appelé rôle.

Les Relations correspondent aux Associations de la norme UML. En Ligne 1000 on préfère appeler Association une relation de multiplicité *-*.

Cardinalités

La cardinalité précise le nombre d'objets qui participent à une relation.

On classe les relations en trois types :

Relation de type référence

Une relation de type référence est une relation entre deux classes A et B, navigable de A vers B, où pour un objet de type A peuvent correspondre 0 ou 1 objet de type B. Exemple

image1.png

Dans cet exemple on associe un pays à une banque. La relation se traduit par un attribut oidPays et un attribut Pays dans la classe TBanque.

La cardinalité 0..1 signifie qu'un objet de type TBanque peut être associé à un objet de type TPays sans que cela soit obligatoire. Relation de type liste

Relation de type liste

Une relation de type liste est une relation entre deux classes A et B où pour un objet de type A peuvent correspondre "n" objets de type B et pour un objet de type B peuvent correspondre 0 ou 1 objets de type A. Ce type de relation est de cardinalité 0..1-m.

L'implémentation d'un rôle liste dans une classe A génère l'implémentation d'un rôle référence dans la classe B.

Exemple

image2.png

Dans cet exemple on associe des agences bancaires à une banque. La relation se traduit par un attribut oidBanque et un attribut Banque dans la classe TAgenceBancaire et par un rôle liste AgenceBancaireList dans la classe TBanque.

Relation de type Association

Une relation de type association est une relation entre deux classes A et B où pour un objet de type A peuvent correspondre "n" objets de type B et pour un objet de type B peuvent correspondre "m" objets de type A. Ce type de relation est de cardinalité m-n ou *-*.

L'implémentation de cette relation se fait à travers une classe intermédiaire appelée classe d'association C. La classe A contient un rôle liste vers la classe B, roleBList. La classe B contient un rôle liste vers la classe A, roleAList. La classe C contient des références vers la classe A et la classe B.

Le Framework Ligne 1000 ne supporte pas nativement d’association autre que binaire, il est toutefois possible d’implémenter explicitement ces associations en utilisant des classes d’associations.

Exemple

image3.png

Un tiers peut être associé à plusieurs périmètres groupe. Un périmètre groupe peut être associé à plusieurs tiers. La classe d'association est TPerimetreGroupeTiers. La relation se traduit par un rôle liste PerimetreGroupeList dans la classe TTiers, un rôle liste TiersList dans la classe TPerimetreGroupe, un rôle référence Tiers et un rôle référence PerimetreGroupe dans la classe TPerimetreGroupeTiers.

Propriétés

Agrégat

L’agrégation est une association non symétrique qui exprime un couplage fort et une relation de subordination. Elle représente une relation de type « ensemble / élément ». Une agrégation peut notamment (mais pas nécessairement) exprimer :

  • qu’une classe (un « élément ») fait partie d’une autre (« l’agrégat »),
  • qu’un changement d’état d’une classe, entraîne un changement d’état d’une autre,
  • qu’une action sur une classe, entraîne une action sur une autre.

A un même moment, une instance d’élément agrégé peut être liée à plusieurs instances d’autres classes (l’élément agrégé peut être partagé).

Une instance d’élément agrégé peut exister sans agrégat (et inversement) : les cycles de vies de l’agrégat et de ses éléments agrégés peuvent être indépendants.

image4.png

Exemple de rôle agrégation

image5.png

Composition

La composition est une agrégation forte. Les cycles de vies des éléments, les « composants », et de l’agrégat, le « composé », coïncident : si le composés est détruit, ou copié, ses composants le sont aussi. A un même moment, une instance de composant ne peut être liée qu’à un seul composé. Les « objets composites » sont des instances de classes composées.

image6.png

Exemple de rôle composition

image7.png





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Outils personnels