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

BOUML Discussion :

Association: instance de template.


Sujet :

BOUML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut Association: instance de template.
    Bonjour,
    J'ai une classe A, j'ai une classe B et une classe template C<T>. Je créé une composition de A->B. Je voudrais associer à cette composition une instance de la classe template C<B>. Je n'y arrive pas. Dans Rose, je créait une classe au nom vide instanciant C<B> et j'associait ma relation à cette classe. Dans BOUML, je ne sais comment faire.
    L'idée c'est d'avoir au final (en C++):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class A
    {
    C<B> m_MesB;
    }:
    Je voudrais que ceci apparaisse dans mon diagramme de classe.

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    Bonjour,

    pour que l'association A-->B génère C<B> il suffit d'éditer la relation et
    • dans l'onglet C++ de remplacer ${type} par C<${type}>,
    • ou mieux de positionner l'association dans l'onglet UML à C et dans l'onglet C++ de remplacer ${type} par ${association}<${type}>


    l'autre solution est bien-sur de définir une nouvelle classe qui est un typedef sur C<B> et d'utiliser celle-ci pour la relation à la place de B (voir par exemple Pb <<typedef>> class parametrée)
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    En fait, pour générer le code, j'avais déjà fait comme ça ( la seconde solution car l'onglet C++ ne contient pas de nom de classe explicite). Ce qui me gène c'est qu'on ne voit pas dans le modèle la relation entre A->B/C<B>. C'est quelque chose que je retrouvais graphiquement dans Rose, alors je me posais la question pour BOUML...
    P.S.: en tout état de cause, félicitations pour ce bel outil que vous partagez avec l'ensemble des développeurs.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    En fait, en creusant un peu dans ce forum, j'ai vu que ma question était plus liée à ma méconnaissance d'UML qu'autre chose. En fait, ma classe C, c'était une liste. Donc, la solution la plus 'propre' pour résoudre mon problème est association A->B: stéréotype:list! (Et, de mémoire, quand je bossais sur le projet avec Rose, c'était souvent des listes ou des maps avec lesquelles je faisait ce genre de chose). Le code généré est bien alors (en configurant BOUML):
    class A
    {
    std::list<B> m_MonB;
    };
    J'ai au moins appris quelque chose aujourd'hui

  5. #5
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    la solution la plus 'propre' pour résoudre mon problème est association A->B: stéréotype:list!
    oui, je n'en avais pas parlé en suposant que cette solution (qui est celle par défaut en cas de multipmlicite != 1) ne convenais pas
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

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

Discussions similaires

  1. Associer un template texbox a une listview
    Par Am34000 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 27/09/2010, 15h50
  2. Créer un header pour une instance template particulière.
    Par méphistopheles dans le forum C++
    Réponses: 4
    Dernier message: 16/07/2010, 06h14
  3. Réponses: 0
    Dernier message: 14/07/2010, 09h36
  4. Réponses: 46
    Dernier message: 14/04/2009, 11h54
  5. Templates - instance passée en paramètre
    Par Alp dans le forum C++
    Réponses: 9
    Dernier message: 25/04/2006, 19h21

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