Herramienta para obtener un gráfico pictórico de código.

Actualmente estoy trabajando en la ingeniería inversa de otro programa desde la fuente. La fuente contiene 159 archivos fuente de C++ y 2269 incluye. Como se puede ver, pasar por esto solo no es práctico.

Estoy buscando generar gráficos de llamadas de funciones y diagramas USES. Desde la publicación en Stack Overflow puedo generar llamadas a funciones. Mucha gente dice que Doxygen es muy bueno haciendo esto. Actualmente estoy buscando utilizar algunas de las herramientas en la publicación del foro anterior y Doxygen.

Sin embargo, me preguntaba si hay herramientas que puedan generar tanto el mapa de llamadas como el diagrama de USOS en Windows. Se prefiere Windows, pero puedo trabajar con una versión de Linux.

¿Alguien sabe de alguna buena herramienta (s) para generar el diagrama USES desde la fuente?

Además, como palabra final, el diagrama USES no es un diagrama USE-CASE. Estos dos son diferentes.

EDITAR 1:

Ok, entonces hablé con un amigo que describió qué es un diagrama USOS. El diagrama muestra los módulos y cómo cada módulo se conecta entre sí. Las flechas muestran la transferencia de datos entre los módulos. Se puede describir que M1 usa M12 usa M2.

Busqué en Internet para obtener más detalles sobre cómo construir uno. Sin embargo, no pude encontrar mucho de nada. No estaba muy seguro de si había otro nombre. Entonces, publiqué una pregunta en RE.SE

Una respuesta a mi pregunta es que se parece mucho a un diagrama de dependencia. Mirando este diagrama, se parece mucho a lo que es un diagrama USES y, por ahora, consideraré que esto es cierto.

Además, olvidé agregar esto en mi publicación original, pero el software debería ser gratuito ya que no tengo activos financieros para hacer esto. Sin embargo, tengo acceso a una universidad, así que si crees que el software podría ser algo que tiene una universidad, entonces puedo verificarlo (para aquellos que se preguntan, voy a la Universidad de Toledo en Toledo, Ohio)

¿A qué te refieres exactamente con "USOS"?
Ese es el nombre del gráfico. Intenté describirlo. Estoy buscando herramientas que puedan crear este tipo de diagrama. No estoy seguro de por qué fue rechazado 1. Pensé que esta era una explicación bastante precisa, creo que hay otro nombre en lugar de USOS. Tal vez sea un término antiguo para el diagrama.
No veo ningún intento de explicar qué es un gráfico USES (lo que podría explicar el voto negativo, no fui yo), excepto que no es un diagrama USE-CASE. No podemos ayudarte, si tú no puedes ayudarnos.
Ira Baxter, lamento el malentendido. Creo que confundí este post con otro post. Estaré editando en mi publicación qué es un diagrama de USOS. ¡Gracias por señalar esto!
Estaba usando CppDepend , pero es comercial.

Respuestas (2)

Doxygen , cuando se usa con Graphviz , puede generar gráficos de llamadas y llamados por gráficos, así como gráficos de inclusión/incluido por y de colaboración; solo asegúrese de marcar la opción para incluir entradas no documentadas .

Características:

  • Gratis
  • Multiplataforma incluyendo Windows
  • Puede documentar C++, C, Objective-C, C#, PHP, Java, Python, IDL (versiones Corba, Microsoft y UNO/OpenOffice), Fortran, VHDL, Tcl y algo de D.
  • Con algunos comentarios de formato especial, puede documentar su código completamente
  • Múltiples formatos de diagrama
  • Múltiples formatos de salida para la documentación.

En DoxyWizard: ingrese la descripción de la imagen aquíUso experto:ingrese la descripción de la imagen aquí

Hmm ok, en realidad estoy experimentando con doxygen mientras hablamos. He oído muchas cosas buenas sobre esto. ¿Sabrías cómo puedo ver el gráfico de llamadas para todo el programa? Estaba desplazándome por los archivos generados y abrí uno de los archivos html. Desde allí, puedo navegar a través de los gráficos; sin embargo, me gustaría ver un gráfico de llamadas completo de todo el programa en lugar de fragmentos
@ user3904858s - asegúrese de tener EXTRACT_ALL configurado y puede ser una buena idea aumentar DOT_GRAPH_MAX_NODES - comience en index.html - haga clic en clases - haga clic en jerarquía de clases - busque su clase principal.
maravilloso, gracias Steve, intentaré esto!

Consulte SourceInsight o Understand .

Actualmente disfruto de las funciones proporcionadas por Microsoft Visual Studio 2015 para generar mapas de llamadas y gráficos de código y realizar análisis ciclométricos; funciona bien para el código C++ y C# que he utilizado hasta ahora.

Sí, me encantaría utilizar VS. Descubrí recientemente que puede crear diagramas de arquitectura. Sin embargo, debe tener la versión paga de VS para poder aprovechar las herramientas. Por favor corrígeme si me equivoco. Comprender parece una buena herramienta, pero se paga. Lo mismo para SourceInsight.
Claro, la generación de mapas de códigos y gráficos de dependencia solo está disponible en la edición Enterprise. No especificaste que estabas buscando herramientas gratuitas .
Mis disculpas, debería haberlo dicho en la publicación. Sin embargo, mi escuela tiene una copia de VS. No estoy muy seguro de si es la versión que incluye esta característica. Pero, definitivamente es algo que investigaré.