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

Visual C++ Discussion :

[VC++ 2005] Générer le diagramme de classes à partir du code.


Sujet :

Visual C++

  1. #1
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut [VC++ 2005] Générer le diagramme de classes à partir du code.
    Bonsoir à tous.

    Mon programme commence à avoir pas mal de classes (un peu plus de 29), et j'aimerai générer le diagramme de classes comme cela est possible sous VB ou VC#. Or, apparemment, il n'existe rien pour le reverse engineering concernant VC++. (J'ai Visual Studio Team Edition for software developpers.)
    Et j'aimerai éviter autant que possible d'avoir à payer une licence pour Visio, qui parait-il, permet de générer les classes, mais sans pour autant faire de rangement. (Il faut soi même cliquer glisser chaque classe sur la feuille pour les afficher, et ensuite les relier manuellement... quitte à commettre des erreurs)

    Quelqu'un a t-il une solution, ou ai-je loupé un chapitre du manuel VS 2005 ?
    Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Jamais vu ça dans VC++ ni dans aucun ide C++ d'ailleurs (et oui, le C++ c'est des headers tout pourris, pas du beau bytecode à la disposition d'un explorateur de classes). La seule chose qui s'en rapproche c'est des générateurs de doc comme doxygen.

  3. #3
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Je vais donc être obligé de me tourner vers quelque chose de payant ? Je trouve ça quand même étonnant, C++ étant un langage où l'utilisation UML est très utile, voir indispensable.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Puisque je te dis que même payant je n'en ai jamais entendu parler. A moins que tu ne croies que doxygen est payant.
    A la rigueur peut-être rationnal rose, mais je doute au plus haut point.
    PS: non, il faut résister à la tentation, ne pas se lancer dans un débat sur l'oo en C++, il faut être fort.

  5. #5
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Rationnal Rose le ferait, et Together. J'ai quand même le droit d'avoir d'autres avis ? Doxygen sert plutôt pour la génération de doc, le diagramme y est trop succinct.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Si tu le dis, pour ma part je considère une bonne doc générée plus utile pour un programmeur qu'un diagramme uml après-coup qui ne sert généralement qu'à faire plaisir au patron.
    Il y a aussi quelque bons logiciels gratuits ou pas trop cher pour générer des diagrammes sans le reverse engineering, poseidon uml par exemple.
    Sinon, on dirait que tu as raison, apparement rational gère bien le reverse engineering sur du C++. Je me demande ce qu'il en est pour le refactoring...

  7. #7
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    StarUML le fait (freeware), y'a un tuto dessus sur DVP.com (Miles)

    Le générer après coup, ça sert si c'est pas ton code, ou bien lorsque tu veux distribuer tes sources...
    Ca peut aider à comprendre !

  8. #8
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Ce n'est donc pas pour le patron, vu que c'est moi le "patron", c'est pour une équipe amateur. Je ne vais plus être seul à bosser sur le logiciel, alors si ça peut aider l'équipe à comprendre plus vite...

    Merci, je vais voir de ce côté, ça m'arrange si c'est gratuit (Vu la prix qu'a couté VS...)

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Citation Envoyé par poukill Voir le message
    Le générer après coup, ça sert si c'est pas ton code, ou bien lorsque tu veux distribuer tes sources...
    Ca peut aider à comprendre !
    Mouish, comme je disais je trouve plus utile et exhaustif dans ce cas une doc doxygen avec ses petits diagrammes sommaires pour chaque classe.
    Pour moi un modèle uml complet n'a d'utilité que pour comprendre de grands concepts employés dans le programme ou pendant la phase de conception. Il sera donc plutot fait à la main et un peu abstrait que généré et précis jusqu'au prototype de chaque méthode.

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Sinon bouml le fait vaguement aussi, mais faut bouger les classes à la main et même je crois tracer les liens soit-même (pas sûr cela dit l'interface m'a tjs rebuté et j'ai jamais passé plus de 10 mn les 12 fois où je l'ai essayé...).

    MAT.

  11. #11
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    pour avoir essayé les deux, starUML est vraiment mieux...

    Après rational Rose doit être vraiment vraiment mieux, mais c'est très loin d'être gratuit !

  12. #12
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    J'ai énormément de mal avec l'ergonomie de l'éditeur de diagrammes de rose. Avec une version de 2002 (je ne connais pas les versions plus récentes), l'édition des diagrammes de séquences est d'un pénible rarement vu.
    (comment ça, cela ne répond pas à la question?)

  13. #13
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Rose permet la mise à jour du diagramme depuis le code, non?
    Ce que ne permettent pas les logiciels gratuits!

  14. #14
    Membre confirmé Avatar de LapinGarou
    Homme Profil pro
    R&D Developer
    Inscrit en
    Octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D Developer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 341
    Points : 479
    Points
    479
    Par défaut
    Bon, de retour.
    StarUML a l'air de faire déjà un peu plus que Visio, qui se contentait de créer des classes en dragndrop, qu'il fallait glisser soi même sur la feuille : ici, il les place lui même sur la feuille, et trace les héritages, ce qui n'est déjà pas si mal, pour du gratuit. Bon, après il faut les déplacer pour que ça reste lisible, puisque tout est placé sur une ligne.
    Mais j'ai quand même une question qui n'a pas eu de réponse : Pouquoi est-il possible de le faire en c# ou vb, et pas en c++ ? Ca me donne l'impression qu'il manque des choses dans VS. MS privilégie ces 2 langages ? Il considère que "ça ne sert à rien" pour le c++ comme le dit zais_ethael? (Pourtant, c'est bien pratique quand on est étudiant en alternance, et qu'on n'a pas le temps de tout faire)

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par LapinGarou Voir le message
    Pouquoi est-il possible de le faire en c# ou vb, et pas en c++ ?
    Parce que du code C++ est nettement plus difficile à analyser correctement...

    MAT.

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Je ne dis surtout pas que ça ne sert à rien.
    - C'est un peu moins utile parceque le C++ ne privilégie pas le tout objet.
    - La beauté conceptuelle d'un diagramme laissera souvent la place à la cruelle réalité des détails techniques. Du genre, savoir à l'avance si on passera un objet par valeur, réfèrence, pointeur, smart pointer (et de quel type),...
    - Pour le reverse engineering, effectivement le C++ est un langage monstrueusement difficile à analyser. Mais il n'y a pas que ça, en C# ou en java il sera inutile de refaire un compilateur, le code intermédiaire est normalisé et les capacités de réflexion de ces langages rendent la tache fichtrement plus simple.

  17. #17
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    dans la norme UML, on peut représenter beaucoup de chose quand même : les cardinalités, faire des différences entre agrégation et composition...
    Il est vrai qu'en C++ certaines spécificités ne serviront à rien, mais UML est une norme pour tous les langages, pas qu'un représentation d'un programme C++ !

    Maintenant, ton discours rejoint le topic des RAD, on ne peut pas dissocier programmation et modélisation. Une belle modélisation, si le code est pourri derrière, ne sert à rien!

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Ca dépend. En C++ c'est certain mais en Java la plus grande pureté du langage et la simplicité apportée par le byte code et la reflexion rendent tout à fait possible le refactoring basé sur un modèle uml. On crée un modèle uml, on génère le code, on implémente les fonctions sans toucher à l'interface et dés qu'une modification est nécessaire on peut aussi bien changer le code que le modèle puisqu'il y a synchronisation dans les deux sens, et le tout en gardant un modèle suffisament conceptuel pour être clair et utilisable => je rappelais juste qu'un truc aussi poussé n'est pas possible en C++, pas seulement parceque ce serait techniquement hard mais parceque le C++ n'est pas vraiment adapté, cela pourrait même nuir à la qualité du code.

Discussions similaires

  1. un diagramme de classe à partir des code source java
    Par hibahiba dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 22/04/2015, 16h36
  2. générer le diagramme de classe à partir de diagramme de séquence
    Par hamzawhy dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 12/04/2015, 03h03
  3. Diagramme de classe à partir du code source
    Par mehdiyou dans le forum Général Java
    Réponses: 5
    Dernier message: 20/02/2010, 01h15
  4. Diagramme de classe à partir du code c++
    Par lity7 dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2009, 17h01
  5. [UML] Générer un diagramme de classe à partir des sources
    Par ekard dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 18/01/2006, 16h13

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