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

Design Patterns Discussion :

Design pattern : Elaborez le diagramme d'objet ?


Sujet :

Design Patterns

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Design pattern : Elaborez le diagramme d'objet ?
    Bonjour,

    Voila dans mes cours on me presente un arbre avec 4 niveaux de profondeur et 12 noeuds (les noeud sont noté: noeud1, noeud 1.2....)

    Ensuite on me pose cette question:
    -Elaborez le diagramme d'objet correspondant à l'exemple de l'arbre en indiquant pour chaque nœud la classe que vous lui destinez.

    En regardant sur le net j'arrive a me faire une idée sur les diagramme objet en revanche je ne saisie pas la question qui m'est posé car mon diagramme doit etre fait avec l'arbre et non un exemple de mon choix (aéroport....).

    Si quelqu'un peut m'aider a m'orienter dans ceci, je débute,j'en serais tres grés...
    merci

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    On te demande probablement de représenter la notion d'arbre en conception Objet.

    D'abord, un arbre c'est quoi ?
    - ce sont des noeuds reliés entre eux.
    - Les noeuds peuvent être internes ou externes (les feuilles).
    - La racine est un noeud interne un peu particulier car il n'a pas de père
    - Une relation entre 2 noeuds possède un sens (du père on peut aller vers un fils mais l'inverse n'est pas possible)

    Avec ca tu as tout ce qu'il faut pour créer un beau diagramme de classe et le comprendre !

    Ensuite, on te demande un diagramme d'objet, c'est à dire une instance parmis d'autres du diagramme de classe. On te demande donc quelle classes vont être instanciées pour chaque objet.

    Sur ton exemple :
    L'objet Noeud1 est instancié à partir de la classe <Racine>
    L'objet Noeud1.2 est instancié à partir de la classe <NoeudInterne>
    ...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    tien pour etre plus complet j'ai mis mon exo a cette adresse:
    http://flancereau.free.fr

    j'ai vu un peu comment on cré un diagramme de classe, mais a partir d'un exemple (tour de controle, autoradio, distributeur...)

    La comment je peux en faire un sans sujet? Comment attribuer des relations heritage, agregation...


    j'avoue que je vois pas trop, en plus ya aucun support de cours; je regarde sur le net mais dur dur...

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Il semble que l'on puisse identifier trois types de nœuds. Nommez ces trois types de nœuds et donnez des exemples (issus de l'exemple ci-dessus)
    3 types de noeuds apparait clairement : <Racine>, <Interne>, <Feuille>

    Doit-on garder les trois types de nœuds pour modéliser un arbre.
    La racine est en fait également un noeud interne. Donc avec seulement les types <Interne> et <Feuille> tu peux modéliser des arbres.


    Elaborez le diagramme d'objet correspondant à l'exemple de l'arbre en indiquant pour chaque nœud la classe que vous lui destinez.
    Fais un diagramme d'objet où pour chaque objet tu indique la classe. Exemple :
    Noeud1-2:Interne
    ...

    Où mettriez-vous l'objet arbre?
    L'objet arbre est l'objet racine, dans l'exemple il s'agit de noeud1. C'est le seul objet qui permet de manipuler l'arbre dans sa totalité. Cela est due au fait les associations sont orientées.

    A partir de là, élaborez le diagramme de classe, abstraction de la notion d'arbre dont vous avez ci-dessus une instance possible.

    C'est la même chose, aux noms près. Il s'agit du pattern "Composite" qui constitue l'axe central de ton exercice.


    Un autre exemple assez proche ou l'on voit un diagramme de classe et un diagramme d'objet correspondant.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Suite
    Je te remercie pour tes explications...ca m'aide dans ma compréhension de UML...

    sur l'exo 1 j'ai collé le diagramme objet (fait avec POSEIDON), peut tu me dire si il semble correct?
    http://flancereau.free.fr

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    C'est pas mal mais il y a des erreurs.

    1) Les classes <interne> et <feuilles> suffisent à modéliser les arbres. C'est la question n°2. Alors que fait la classe Racine dans ton modèle objet ? Pour les reste, tu as l'air d'avoir compris.

    Je reviens néanmoins sur des définitions simples :
    "Un noeud interne a au moins un fils"
    "Un noeud externe (c-a-d une feuille) n'a aucun fils"

    C'est ce qui explique pourquoi la racine est un noeud interne. (la définition correspond bien)

    2) Nommes les associations entre tes objets, du genre "a pour fils".
    En lisant ton diagramme objet, je vois que l'objet <Noeud 1-2-2> a pour fils (entre autre) l'objet <Noeud 1-2-1> ce qui est faux. Ce n'est pas ce que dis l'arbre dessiné au début de ton exercice. Reprend les associations une par une en gardant bien à l'esprit qu'elles signifient "a pour fils..."
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut SUITE
    Oui effectivement j'ai un peu mal reproduit mon arbre!

    une petite question: en cherchant sur le web j'ai vu quelques diagramme objet et aucun ne se ressemble!! (je me demande si le mien est assez complet), j'ai vu sur un site que l'on pouvait utiliser les relations suivantes sur ce type de diagramme: trace(dependance), aggregation(est composé de), generalise(herite de) & associate. Dois-je mettre en evidence tous ces liens sur mon diagramme?

    D'un autre coté j'ai lu qu'il fallait faire des diagramme pas trop chargé et avec ce commentaire le diagramme exemple n'avait aucun des lien que je cite plus haut!

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut Re: SUITE
    Citation Envoyé par ivanoe25
    les relations suivantes sur ce type de diagramme: trace(dependance), aggregation(est composé de), generalise(herite de) & associate. Dois-je mettre en evidence tous ces liens sur mon diagramme?
    Ces notations sont utilisés sur un diagramme de classe. Elles n'existent plus au niveau du diagramme d'objets où il n'y a que des objets et des liens entre eux. Soit en dit en passant, tu as copié/coller le diagramme de classe du pattern "composite". Il faut le modifier pour l'adaptater à ton exercice. Pour preuve, en lisant ce diagramme de classe, nul part il n'est fait mention des notions de noeud interne, de feuilles, le fait qu'une feuille n'a pas de fils, etc...
    Le diagramme de classe d'une structure arborescente est très proche du diagramme de classe du pattern "composite" mais ils ne sont pas identiques ! Allez, au boulot ...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  9. #9
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Je viens de jeter un oeil à ton diagramme de classe. Il n'est pas correct.

    Un arbre, ce sont des noeuds reliés entre eux. Ensuite dans ces noeuds, on distingues les noeuds internes et les noeuds externes. Et c'est tout.
    Le diagramme de classe contient au max 3 ou 4 classes et 1 ou 2 relations.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut suite
    Bonjour,

    J'été déja passé a mon deuxieme exo...car je tourné un peu en rond sur le 1...en tout cas je te remercie de suivre mon initiation et d'y contribuer c'est sympa

    Oui betement j'avais effectué le diagramme de classe comme mon diagramme objet (ah c'est pas evident au debut). Je viens de le corriger en rapport au pattern composite. Je pense qu'il ne doit pas etre encore correct mais j'essaye de faire aussi en fonction de ce que j'arrive a comprendre. J'ai mis un aggrega sur la classe noeud 1-1 (feuille) et un heritage sur le noeud 1-2(interne)...t'en pense quoi?

  11. #11
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Cette fois tu es trop éloigné du pattern composite et ton diagramme ne correspond pas à un arbre !
    Pourquoi ne voit-on toujours pas apparaître les classes Noeud, Noeud interne, Noeud externe ? C'est le minimum pour pouvoir décrire ce qu'est une arborescence.

    Là c'est un peu comme si tu voulais modéliser le fonctionnement d'une entreprise (par exemple) et que tu utilises les classes "choux-fleur", "poisson", "sentiment", "chaise"... et tout ca relié n'importe comment !

    L'idée de la modélisation c'est quand même de véhiculer une information simplement et graphiquement (c'est pour cela qu'UML est un langage). Tu crois qu'avec ton diagramme actuel on peut savoir que tu parles d'un arbre ? hein, franchement ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  12. #12
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Au fait, c'est dans le cadre de quoi tes exos ? une formation ou un truc perso ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut suite
    exo perso mais dans l'optique de passer un exam de genie logiciel

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/02/2014, 21h00
  2. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  3. Dépendance entre objets : quel design pattern?
    Par zigxag dans le forum Design Patterns
    Réponses: 3
    Dernier message: 13/12/2007, 10h14
  4. Plugin Diagramme de package + design pattern
    Par ionix dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 13/10/2007, 22h24
  5. [Memento] Design Pattern Memento ou clonage d'objets ?
    Par SPQR dans le forum Design Patterns
    Réponses: 1
    Dernier message: 23/07/2007, 09h08

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