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 :

[DC] association, agrégation et composition


Sujet :

Diagrammes de Classes

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut [DC] association, agrégation et composition
    Salut,

    Je suis en train de faire un digramme de classe et je me pose quelques questions.

    J'ai 2 classes A et B.
    Certaines méthodes de A prennent en paramètres des variables de type B. Dois-je faire une association entre A et B dans le diagramme de classe?

    Une autre question: C'est quoi la différence entre agrégation et composition? sur le Net j'ai trouvé des définitions tellement différentes que je n'ai rien compris

    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut
    Salut,

    Je me suis peut etre mal exprimé sur ma première question...
    "Certaines méthodes de A prennent en paramètres des variables de type B" je voulais dire que dasn les méthodes de A on fait appels à des méthodes de B bien évidement sur les variables de type B passées en paramètres aux méthodes de A. Peut-on dire qu'il y a une association entre A et B? Si oui cette association est elle unidirectionnelle?

    Merci

  3. #3
    Membre actif Avatar de ze_corsaire
    Inscrit en
    Décembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Décembre 2007
    Messages : 240
    Points : 273
    Points
    273
    Par défaut
    Ce n'est pas parce que tu utilises en paramètre une classe que celle-ci doit être agrégée ou associée à la classe courante, bien au contraire.
    Prenons un exemple, une classe Vecteur pour laquelle je définis une méthode additioner. Cette méthode additionner prend un paramètre, le deuxième Vecteur que je veux additioner à l'instance courante. Mon Vecteur n'est pas associé à lui-même ni agrégé à lui-même ...

    ______________

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut
    Alors quand est ce qu'on a une relation d'association??
    C'est quand une classe possède inclut une instance d'une autre classe en tant qu' attribut? ce serait une agrégation dans ce cas, non?
    Je comprends pas quand est ce qu'on peut dire qu'il y a une association entre deux classe

    Merci pour votre aide

  5. #5
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Il y a une différence entre association et agrégation...

    Par exemple, la relation entre un Hotel et ses Chambres est une Composition : dès que l'Hotel 'meurt', les Chambres aussi

    La relation entre une Personne est son adresse peut être vue comme une agragation : la classe Personne possède un attribut de type adresse, mais l'Adresse ne meurt pas forcément quand la Personne déménage, ou "décède".

    Une simple association serait entre une classe A et B si A était en mesure de fournir des B via une méthode par exemple.

    A noter que tout composition est une agrégation , que toute agrégation est une association.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  6. #6
    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
    on créé des associations dès lors qu'il existe des liens structurels entre les choses. Rien à voir avec la "dynamique" de l'application.
    Ex : une personne possède 2 bras et 2 jambes. Un élève participe à une session de formation qui est animé par un formateur dans une salle donnée.
    Tu as des relations d'association entre les noms mentionnés dans les phrases précédentes.

    La relation entre une Personne est son adresse peut être vue comme une agragation : la classe Personne possède un attribut de type adresse, mais l'Adresse ne meurt pas forcément quand la Personne déménage, ou "décède".
    Bien que cela dépend du contexte, on peut quand même se demander si l'agrégation a du sens ici. Une agrégation est utilisée pour dire "est une partie de", "est constitué de". Je ne pense pas qu'une personne soit constituée d'une adresse. Une simple association est suffisante ici.

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par hed62 Voir le message
    ... Une simple association serait entre une classe A et B si A était en mesure de fournir des B via une méthode par exemple...
    Donc si j'ai bien compris si on a la configuration suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class A {
    ...
    ...
      B methodeDeA (...){
         ...
         B valRetour;
         ...
        return valRetour
       }
    ...
    }
    
    public class B{
    ...
    ...
    }
    Dans ce cas il existe une association entre A et B?


    Merci

  8. #8
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Je dirais que oui... Encore que entre une relation d'association et une relation de dépendance... Mon coeur balance !
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  9. #9
    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
    NON NON NON
    Lire ce que j'ai mis précédemment

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par ego Voir le message
    ...on créé des associations dès lors qu'il existe des liens structurels entre les choses. Rien à voir avec la "dynamique" de l'application...
    Est ce que tu peux m'expliquer stp, en terme de code (en donnant un exemple) ce que tu veux dire par liens structurel? ça ne me parle pas trop.

    Merci

  11. #11
    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
    rien à faire du code dans cette affaire.

    J'ai fait qq phrases dans mon post précédent qui mentionnent des cas où il y a des relations structurelles.

    Autre exemple :

    Une Famille est constitutée de Personne(s) --> association entre la classe Famille et la classe Personne
    Une voiture possède un moteur, 4 roues et un volant --> association entre Voiture et Roue (multitplicité 4), et association entre Voiture et Volant (multiplicité 1)

    J'ai ici défini la structure des choses en définissant des liens structurels entre ces choses

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Points : 34
    Points
    34
    Par défaut
    Salut,
    voila une petite définition


    Une association est une relation structurelle qui précise que les objets d'un élément sont reliés aux objets d'un autre élément. En reliant deux classes, elle autorise la navigation d'un objet de l'une d'elles à un objet de l'autre, et vice versa. Il n'est pas interdit que les deux extrémités de ce genre de relation forment une boucle et se rattachent à la même classe. Cela signifie qu'un objet qui appartient a cette classe peut être connecté à d?autres objets de cette même classe. On appelle "association binaire" une association qui relie seulement deux classes entre elles. Une association qui relie plus de deux classes, ce qui est moins fréquent, est appelée "association n-aire". Une association est représentée par une ligne pleine qui relie une classe à d?autres classes ou à elle-même. On utilise les associations pour montrer les relations structurelles.

    Une association simple entre deux classes représente une relation structurelle entre pairs, ce qui signifie qu'elles sont de même niveau conceptuel : aucune des deux n'est plus importante que l'autre. Il est parfois souhaitable de modéliser une relation "tout/partie", dans laquelle une classe représente un élément plus grand (le "tout" ) qui consiste en des éléments plus petits (les "parties" ). Cette relation s'appelle alors une agrégation et elle représente une relation "possède", ce qui signifie qu'un objet du tout possède des objets de la partie. L'agrégation n'est qu'un genre spécial d'association et est représentée par l'ajout d'un losange du côté du tout.

    (extraits de Le guide de l'Utilisateur UML, de Booch, Rumbaugh et Jacobson, qui devrait etre dans la bibli de tout UMListe)


Discussions similaires

  1. UML diagramme de Classe : une agrégation ou composition cyclique ?
    Par Marlon Brando dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 11/02/2012, 10h28
  2. Réponses: 18
    Dernier message: 21/08/2011, 16h09
  3. Agrégation et composition
    Par yo_haha dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 27/12/2009, 16h01
  4. Image - ImageIcon : composition ou agrégation?
    Par ®om dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 01/07/2006, 19h56

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