IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Diagrammes de Classes Discussion :

Classe d'association ? comment est ce implémenté ??


Sujet :

Diagrammes de Classes

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Classe d'association ? comment est ce implémenté ??
    Bonjour,
    voila ce que j'ai dans mon modèle :

    Commune --- 0..* ----- Appartenance ----- 0..1 --- Région

    avec Appartenance une classe d'association entre Commune et Région, contenant des dates.

    Comment est ce implémenté dans un langage comme java ?
    1°) Ai je un pointeur direct de ma commune vers ma région (et vice versa de ma région vers ma commune) ?

    en gros :
    Commune
    { pointeurVersRégion
    pointeurVersAssociationAppartenance
    }

    Région
    { pointeurVersCommune[]
    pointeurVersAssociationAppartenance[]
    }

    OU pour retrouver ma région à partir de ma commune, suis je obligé de pointer vers ma classe d'association Appartenance qui elle même pointe vers ma région ?

    en gros :
    Commune
    {
    pointeurVersAssociationAppartenance
    }

    Région
    {
    pointeurVersAssociationAppartenance[]
    }

    Appartenance
    {
    pointeurVersRégion
    pointeurVersCommune
    }

    2°) La classe d'association possède-t-elle effectivement des pointeurs vers ma Commune et ma Région ? ou la région et la commune sont-elles les seules à pointer vers Appartenance.
    en gros, a-t-on effectivement :

    Appartenance
    {
    pointeurVersRégion
    pointeurVersCommune
    }


    MERCI D'avance !!!! (c'est très important ....)

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    L'endroit où tu trouves des références aux autres objets dépend de la navigabilité de l'association et aussi de tes choix d'implémentation de la modélisation.
    Au final, toutes tes solutions sont valables car UML ne dit rien sur le passage au langage.
    Quand on a une classe d'assocation, résultat d'une étape d'analyse, on modifie souvent le modèle en conception comme suit :

    Commune 0..1---------0..1 Association 0..*---------0..1 Region

    Au niveau de la classe d'Association, tu as des références vers les objets Region et Commun, en général. Ensuite, le fait de retrouver des références dans les classes Commune et Region dépend de tes besoins. Ces besoins seront exprimés au niveau du diagramme UML en donnant une direction à tes associations.
    Tes besoins sont des besoins de navigation entre les différents objets et aussi des besoins liés à la performance = faut-il avoir l'information d'un côté ou de l'autre ? des 2 côtés quitte à gérer les doubles références ? Bref tout dépend de l'usage que tu vas faire de tes objets.

    Si cela peut t'aider !?

  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 113
    Points : 127
    Points
    127
    Par défaut
    en règle générale :
    Les classes d'association sont très utilisées en analyse (lisibilité)
    Elles peuvent être remplacées par des classes simples en design (proche de l'implémentation).

    Quelle que soit la cardinalité, une classe d'association correspond à 1 seul lien et pas à plusieurs. Je m'explique :
    soit C1 associé à C2, avec la classe d'association CA.

    avec la navigabilité dans un seul sens, et la cardinalité n :
    C1 -- CA --n-> C2
    peut être traduit en design :
    C1 ---n-> CA
    CA ---1-> C2

    avec la navigabilité dans les deux sens, et les cardinalité n et p :
    C1 <-p-- CA --n-> C2
    peut être traduit en design :
    C1 <-1-- CA
    CA --1-> C2
    Il peut alors être intéressant de gérer des groupes de CA par objet C1 et/ou C2
    (ce sont des index - ex : hash_table(key = C1, value = liste(CA)).

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    merci à tous les deux, ca m'a donné un apercu de la solution.
    En fait, c'est une phase d'analyse, donc les problèmes de performances n'entrent pas vraiment en ligne de compte sauf problème extrême (l'important est le métier).

    Finalement, après concertation, il est possible (dans cette phase d'analyse du moins) d'accéder directement à une commune à partir de sa région, et vice versa, sans recherche de l'instance d'association.
    De même, d'une instance de classe d'association, j'ai la possibilité de remonter aux couple Commune / Région participant à l'association.

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment traduire une classe d'association en SQL ?
    Par NeedToHelp dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 14/10/2009, 10h04
  2. Comment réaliser une classe d'association?
    Par loic20h28 dans le forum PowerAMC
    Réponses: 2
    Dernier message: 09/03/2009, 18h19
  3. Comment est géré l'événement OnTime du Composant TTimer?
    Par Arnaud-h dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/06/2004, 17h10
  4. Comment est financé developpez.com ?
    Par BuG dans le forum Evolutions du club
    Réponses: 9
    Dernier message: 19/06/2003, 11h03
  5. Réponses: 5
    Dernier message: 25/03/2003, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo