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 :

comment representer "ou" avec UML


Sujet :

Diagrammes de Classes

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut comment representer "ou" avec UML
    salut.

    Je commence par vous donner mon schéma uml :

    http://www.imagup.com/imgs/1243377313.html

    Mon problème est que la classe Vertex contient un attribut node (le 5eme attribut) et qui est de type Cercle, Square ou Rectangle(selon des conditions) et j'arrive pas représenter cela avec uml.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 145
    Par défaut
    bin ton attribut node de type node a un lien avec la casse node (qui n'est pas représentée ici...) qui est spécialisée comme ta classe behaviour en cercle square rectangle (soit tu utilises de l'anglais soit du français... ça me fait bizarre )
    Est-ce que ça répond à ta question?

    par contre moi j'en aurais une c'est quoi la différence entre behaviour et node?

  3. #3
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Bonjour,

    Dans un diagramme de classes la contrainte d'exclusion peut se représenter comme ça.

    Mais le nom de la classe (behavior) me fait croire que tu avais peut-être une autre idée que l'héritage en tête ?

    Citation Envoyé par lelutin
    la classe node (qui n'est pas représentée ici...)
    S'il s'agit de ce que je pense, un graphe, il s'agit de la classe Vertex. Dans ce cas je pense que Node et Vertex ont un lien et devraient être en relation.
    [edit] désolé je voulais dire Edge et Vertex devraient être relié [/edit]

    Et pourquoi ces attributs collection dans ta classe Graph ?

  4. #4
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut
    salut.

    oui j'ai peut être oublié de dire que c'est pour une interface qui permet de créer des graphes et je code en javaFX.
    Au début de la conception j'ai pas mis l'attribut node dans ma classe Vertex.
    donc tous mes noeuds (vertex) étaient sous forme de cercle et j'avais pas de classe Behaviour etc....
    Mais après on a exigé de moi que l'utilisateur peut choisir la forme des noeuds.
    J'ai donc ajouté l'attribut node qui est de type Node(une classe javaFX qui est la classe mère de tous les formes qu'on peut dessiner en javaFX) et que je lui affecte comme valeur soit un cercle un rectangle etc....
    Comme le comportement des noeuds ne change pas (quand je dis comportement c'est la réaction avec les événements de la souris) j'ai crée la classe Behaviour et j'ai mis dedans toutes les fonctions nécessaires (onMouseClicked, onMousePressed....)

    voila

  5. #5
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Et pourquoi ces attributs collection dans ta classe Graph ?
    Parce que mon graphe est constitué de noeuds(Vertex) et d'arc (Edge).

  6. #6
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Citation Envoyé par guitariste
    Parce que mon graphe est constitué de noeuds(Vertex) et d'arc (Edge).
    J'avais bien compris.
    Ce que je voulais dire c'est qu'il s'agit de relations, et donc qu'il n'y a pas lieu de faire apparaitre explicitement les attributs collection dans la classe comme tu l'a fait.

    Citation Envoyé par guitariste
    je lui affecte comme valeur soit un cercle un rectangle etc....
    Si tu vois un sommet comme un Cercle ou un Rectangle ou autre ... (est un), spécialises Vertex en Circle, Square etc ... avec la contrainte d'exclusion.
    Si tu considères qu'il sagit plutôt d'un comportement différent et pas d'une spécialisation (d'ou ma question à propos du nom de ta classe) fais de Vertex une interface et créés des classes concrètes Circle, Square, Rectangle.

    Je ne connais pas JavaFX et je ne sais pas comment est implantée Node, si c'est plus compliqué tu peux regarder les Design Pattern. La délégation et Adapter en particulier devraient te donner des bonnes pistes.

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

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