7 votes

Bons outils de visualisation / refactoring du code pour C++ ?

J'ai récemment rencontré au travail un grand nombre de bases de code complexes et relativement volumineuses que l'on m'a demandé de réviser ou de remanier, ou les deux. Cela peut prendre énormément de temps lorsque le code est hautement concurrent, fait un usage intensif de templates (en particulier le polymorphisme statique) et possède une logique qui dépend de callbacks/signaux/variables de condition/etc.

Existe-t-il de bons outils de visualisation pour la période C++, et parmi ceux-ci, y en a-t-il qui fonctionnent bien avec les fonctionnalités "avancées" de C++ ? N'importe quel outil serait probablement meilleur que mon approche actuelle, qui consiste essentiellement à utiliser un stylo et du papier ou à passer par le débogueur. La méthode du débogueur peut être bonne pour suivre un chemin de code particulier, mais elle n'est pas idéale pour avoir une vue d'ensemble de ce dont on a vraiment besoin lorsqu'on fait un remaniement sérieux.

EDIT : Je dois mentionner que les plugins Visual Studio ne vont pas m'être d'une grande aide, puisque notre travail est principalement sous Linux.

4voto

Max Points 2287

Vous pourriez utiliser Doxygen pour commencer ; une fois que la partie facile est faite (disposition des classes, hiérarchies, ...) vous devez écrire sur le reste du logiciel qui ne peut pas être facilement traité par des outils comme doxygen.

bonne chance.

M.

2voto

Pete Kirkham Points 32484

Visualisation :

Je ne suis pas au courant de ce qui se passe en dehors du monde UML, mais ce qui est disponible à l'intérieur de celui-ci ne permet pas du tout de faire de la rétro-ingénierie sur le C++ moderne, basé sur des modèles. Au mieux, vous obtiendrez de simples diagrammes de classe.

Refactoring :

Mozilla a créé le dehydra / Porc pour analyser et remanier leurs sources C++ afin de remplacer leur ancien style de XPCOM et de gestion de la mémoire par de meilleurs idiomes. Il n'est pas lié à un outil de visualisation, mais utilise plutôt le pattern matching et JavaScript. Je ne l'ai pas essayé moi-même, ayant la chance de ne pas avoir été dans une position où cela était nécessaire.

1voto

Crazy Eddie Points 23778

Non. Non. et Non. Vous devrez documenter et schématiser la base de code à la main, ce qui devrait déjà avoir été fait au moins partiellement.

Il existe un outil de refactoring, ou du moins le prétend, pour xemacs. Il y en a un pour VS mais il ne fonctionne pas très bien et ne connaît que 5-10 refactors. Celui pour xemacs coûte environ 250 $. Je n'en connais pas pour Eclipse. Vous aurez très probablement besoin de faire vos refactors à la main.

1voto

Frank Meerkötter Points 799

Je n'ai pas connaissance d'un outil de refactoring pour le C++ qui soit à la hauteur, par exemple, des outils de refactoring que l'on peut trouver pour Java. Eclipse/CTD propose quelques petits refactorings (extraire des méthodes, rendre public/privé/getter+setter) mais c'est à peu près tout.

Eclipse/CDT reste un bon outil pour avoir une vue d'ensemble d'une énorme base de code. Les fonctions de navigation dans le code (montrer les références, montrer la définition, montrer la déclaration, la hiérarchie des classes, etc...) sont les meilleures que j'ai vues dans un éditeur C/C++.

1voto

Nicolás Points 4959

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X