2009-04-29 8 views
6

Je cherche un outil pour m'aider à saisir plus rapidement le code de quelqu'un d'autre. Habituellement, je travaille avec 10-15 blocs d'appels de méthodes répartis sur 3-5 modules (DLL ou assemblys .NET). Ce que je suis après est un outil qui pourrait être utilisé pour dessiner un diagramme d'appel annoté en 10-30 minutes. Je pense qu'il devrait ressembler à une sorte de combinaison d'un flux de travail et de diagrammes UML combinés sans la monstruosité des éditeurs UML. Il suffit de déposer une douzaine de rectangles sur l'écran, ajouter un nom de méthode à chacun (et éventuellement: nom du module, paramètres, etc). Ajoutez une note rapide sur ce que fait cette méthode, ce qui entre, ce qui sort, etc. Puis reliez ces figures (rectangles) avec des flèches différentes pour indiquer le type d'appel de cette méthode: appel simple, appel qui ne renvoie rien, télécommande appel, etc.Je cherche un outil pour m'aider à analyser et comprendre le code des autres

La chose importante - l'outil devrait être facile à utiliser. Sinon, je pourrais juste lancer MS Word et l'y dessiner. Mais ce ne sera pas une tâche facile.

Merci.

+2

Il existe un outil qui fait * exactement * ce qu'on appelle Code Canvas (http://blogs.msdn.com/kaelr/archive/2009/03/26/code-canvas.aspx). Les mauvaises nouvelles sont que c'est un projet de recherche de MS et n'est pas réellement disponible publiquement encore :( – Promit

+1

@Promit vous devriez l'avoir ajouté comme réponse pour un +1 :) – RobS

Répondre

1

Il semble que ce que vous recherchez soit un outil de dessin léger de type UML.

Il y en a beaucoup qui sont en cours de développement dans le milieu universitaire, qui utilisent la reconnaissance de l'écriture manuscrite et telle que vous pouvez dessiner mais un modèle entièrement fonctionnel est formé. Si vous cherchez simplement un outil de dessin rapide, Word n'est pas très pratique, j'utiliserais Visio sur PC ou OmniGraffle si vous avez la chance d'utiliser un mac. Ce sont des programmes de dessin, mais plus faciles à utiliser que les modélisateurs UML.

Il ya un étudiant au doctorat à Carnegie Mellon dont la recherche vise à aider les gens à comprendre le flux de contrôle dans les applications et il construit un outil, mais autant que je sache, il n'est pas encore publié.

0

Visio est assez facile à utiliser si vous utilisez Windows, mais cela vous coûtera cher.

J'ai entendu dire que ArgoUML est bon, mais il pourrait être plus complexe que vous espérez.

+0

J'ai essayé Visio et à mon avis ce n'est pas facile de utilisation. – AlexKelos

0

Vous ne mentionnez pas la langue avec laquelle vous traitez, donc je vais aller avec une réponse générique, et une pour C#.

WithClass ressemble il fait ce que vous cherchez, peu importe la langue:

[...] permet de dessiner des diagrammes UML, générer du code, et reverse engineering langues OO populaires .

Reverse engineering C++. Java, Delphi, VB, IDL, Perl, PHP, C# et VB.net.

Pour refactoriser C#, IMO ne bat rien ReSharper.

1

Red Gate's .NET Reflector est un outil populaire gratuit pour le débogage, l'ingénierie inverse et tel.

Pour compléter, il y a plusieurs add-ins à portée de main (également gratuit) qui vous aidera à visualiser avec des diagrammes:

  1. Graph
  2. SequenceViz (Notez que ce type de fastidieux à installer et à configurer vous. devra d'abord installer le Win32 port of GNU PlotUtils, et ce n'est pas très clair dans les instructions.)
0

L'outil le plus utile que j'ai jamais trouvé pour effectuer ceci et beaucoup d'autres parents ds d'analyse de code est NDepend. Il a beaucoup de bonnes analyses hors de la boîte et vous pouvez même écrire des requêtes dans un langage SQL comme CQL (Code Query Language) pour obtenir des informations spécifiques.

Le créateur, Patrick Smacchia également blogs et fournit des informations supplémentaires sur la façon d'utiliser l'outil.

Questions connexes