El proyecto OovAide en http://sourceforge.net/projects/oovaide/ o en github tiene algunas características que pueden ayudar. Utiliza el compilador CLang para recuperar información precisa del código fuente. Escanea los directorios buscando el código fuente y recopila la información en , un conjunto de datos más pequeño que contiene la información necesaria para el análisis.
Un concepto se llama Diagramas de zona.Muestra las relaciones entre las clases en un nivel muy alto ya que cada clase se muestra como un punto en el diagrama, y las líneas de relación se muestran conectándolas. Esto permite que los diagramas muestren cientos o miles de clases. La visualización del diagrama de zonas del programa OovAide tiene una opción llamada "Mostrar zonas secundarias", , que agrupa las clases que se encuentran dentro de directorios más cercanos entre sí. También hay filtros de directorio, que permiten reducir el número de clases que se muestran en un diagrama para proyectos muy grandes. se muestra un ejemplo de diagramas de zona y cómo funcionan aquí: http://oovaide.sourceforge.net/articles/ZoneDiagrams.html
Si los directorios se asignan tipos de componentes en la configuración de generación, a continuación, el diagrama de componentes se muestran las dependencias entre los componentes. Este incluso muestra qué componentes dependen de componentes externos como GTK u otras bibliotecas externas.
El siguiente nivel hacia abajo muestra algo así como diagramas de clase UML, pero muestra todas las relaciones en lugar de simplemente la agregación y la herencia. Puede mostrar las clases que se usan en los métodos, o las clases que se pasan como parámetros a los métodos. Cualquier clase puede ser elegido como punto de partida, a continuación, antes de se añade una clase el diagrama, se muestra una lista que permite la visualización qué clases se mostrarán por un tipo de relación.
El nivel más bajo muestra diagramas de secuencia. Esto permite navegar hacia arriba o hacia abajo el árbol de llamadas mientras se muestran las clases que contienen los métodos.
Si tiene el código fuente, lo que es exactamente lo que significa, en primer lugar por "ingeniería inversa" ing? – SingleNegationElimination
¿Espera que un difusor o descompilador detecte paquetes, extraiga elementos de la interfaz de usuario de un código que no sea de la interfaz de usuario, o algo parecido a eso? – Falmarri