Existe-t-il des outils pour visualiser les méthodes de modèle/classe et leur utilisation ?

StackOverflow https://stackoverflow.com/questions/35745

  •  09-06-2019
  •  | 
  •  

Question

J'ai repris une grande base de code et j'aimerais avoir un aperçu de comment et où certaines classes et leurs méthodes sont utilisées.

Existe-t-il un bon outil capable de visualiser les dépendances et de dessiner une belle arborescence d'appels ou quelque chose de similaire ?

Le code est en C++ dans Visual Studio si cela permet d'affiner la sélection.

Était-ce utile?

La solution

Voici quelques options:

Le dernier, doxygen, est plutôt un outil de documentation automatique, mais il est capable de générer des graphiques de dépendances et des diagrammes d'héritage.Il est également sous licence GPL, contrairement aux deux premiers qui ne sont pas gratuits.

Autres conseils

Lorsque j'ai utilisé Doxygen, il a produit une liste complète des appelants et des appelés.Je pense que tu dois l'allumer.

David, merci pour les suggestions.J'ai passé le week-end à tester les programmes.

Doxygen semble être le plus complet des 3, mais il laisse encore quelques choses à désirer en ce qui concerne les appelants de méthodes.

Tous les trois semblent avoir des problèmes avec les modèles C++ à des degrés divers.CC-Rider s'est simplement écrasé au milieu de l'analyse et CodeDrawer ne montre pas la plupart des relations.Doxygen a plutôt bien fonctionné, mais lui non plus n'a pas trouvé ni affiché toutes les relations et m'a plutôt submergé de nombreuses références de macro jusqu'à ce que je les filtre.

Alors, je devrais peut-être clarifier un peu "grande base de code" pour d'éventuelles autres suggestions :> 100 000 lignes de code au total réparties sur plus de 100 fichiers modèles ainsi que plusieurs fichiers de classe réels rassemblant le tout.

Existe-t-il d'autres outils qui pourraient être à la hauteur de la tâche et pourraient faire mieux (de manière plus approfondie) ?Ah et plus précisément :quelque chose qui comprend les interfaces IDL et COM ?

Lorsque j'ai utilisé Doxygen, il a produit une liste complète des appelants et des appelés.Je pense que tu dois l'allumer.

Je l'ai fait bien sûr, mais comme je l'ai mentionné, doxygen ne prend pas en compte les interfaces entre les objets telles qu'elles sont définies dans l'IDL.Il affiche "uniquement" les appels C++ directs.

Ne vous méprenez pas, ce que cela fait est déjà incroyable, mais ce n'est toujours pas complet de mon point de vue de haut niveau, en essayant de bien comprendre comment tout s'emboîte.

En Java, je commencerais par JDepend.En .NET, avec NDepend.Je ne connais pas le C++.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top