2009-04-29 12 views
6

Estoy buscando una herramienta que me ayude a captar más rápidamente el código de otra persona. Usualmente estoy trabajando con 10-15 trozos de llamadas de método distribuidos en 3-5 módulos (DLL o ensamblados .NET). Lo que busco es una herramienta que podría usarse para dibujar un diagrama de llamadas anotado en 10-30 minutos.Buscando una herramienta que me ayude a analizar y comprender el código de los demás

Creo que debería verse como una especie de combinación de un flujo de trabajo y diagramas UML combinados sin la monstruosidad de los editores UML. Simplemente coloque una docena de rectángulos en la pantalla, agregue un nombre de método a cada uno (y opcionalmente: nombre del módulo, parámetros, etc.). Agregue una nota rápida de lo que hace este método, qué entra, qué sale, etc. Luego, conecte estas figuras (rectángulos) con diferentes flechas para indicar a qué tipo llama este método: llamada simple, una llamada que no devuelve nada, remota llamada, etc.

Lo importante: la herramienta debe ser fácil de usar. De lo contrario, podría simplemente arrancar MS Word y dibujarlo allí. Pero esa no será una tarea fácil.

Gracias.

+2

Existe una herramienta que hace * exactamente * esto llamado Code Canvas (http://blogs.msdn.com/kaelr/archive/2009/03/26/code-canvas.aspx). La mala noticia es que es un proyecto de MS Research y aún no está públicamente disponible :( – Promit

+1

@Promit deberías haberlo agregado como respuesta para un +1 :) – RobS

Respuesta

1

Parece que lo que estás buscando es una herramienta de dibujo ligera similar a UML.

Hay muchos que se están desarrollando en la academia, que utilizan el reconocimiento de escritura a mano y para que pueda bocear, pero se forma un modelo totalmente funcional.

Si solo está buscando una herramienta de dibujo rápida, Word no es muy conveniente, consideraría usar Visio en PC u OmniGraffle si tiene la suerte de usar un mac. Estos son programas de dibujo, pero más fáciles de usar que los modeladores UML.

Hay un estudiante de doctorado en Carnegie Mellon cuya investigación se centra en ayudar a las personas a entender el flujo de control en las aplicaciones y está construyendo una herramienta, pero hasta donde yo sé, todavía no se ha lanzado.

0

Visio es bastante fácil de usar si está en Windows, pero le costará.

He oído que ArgoUML es bueno, pero podría ser más complejo de lo que esperaba.

+0

He intentado Visio y, en mi opinión, no es fácil utilizar. – AlexKelos

0

No menciona el idioma con el que está tratando, así que iré con una respuesta genérica y una para C#.

WithClass parece que hace lo que usted está buscando, sin importar el idioma:

[...] le permite dibujar diagramas UML, generar código, y la ingeniería inversa lenguajes orientados a objetos populares .

Reverse engineer C++. Java, Delphi, VB, IDL, Perl, PHP, C# y VB.net.

Para refactorizar C#, IMO nada supera a ReSharper.

1

Red Gate's .NET Reflector es una popular herramienta gratuita para la depuración, la ingeniería inversa y tal.

Para complementar ella, hay varios útil add-ins (también gratuito), que le ayudará a visualizar con diagramas:

  1. Graph
  2. SequenceViz (Tenga en cuenta que esto es un poco tedioso para instalar y configurar usted. tendrá que instalar primero el Win32 port of GNU PlotUtils, y no está muy claro en las instrucciones.)
0

La herramienta más útil que he encontrado para realizar esto y muchos otros parientes ds de análisis de código es NDepend. Tiene muchos análisis geniales listos para usar e incluso puede escribir consultas en un dialecto dialecto SQL (CQL Query Language) para obtener información específica.

El creador, Patrick Smacchia también blogs y proporciona información adicional sobre cómo usar la herramienta.

Cuestiones relacionadas