Software para ayudar a comprender el código fuente

Estoy buscando un software de código abierto que me ayude a comprender el código fuente más rápido. Conozco herramientas como Understand , Source Insight , etc., pero son comerciales con tarifas elevadas por una licencia.

El software debe ser fácil de usar, debe proporcionar una representación gráfica de las funciones, las estructuras de datos, etc. y debe permitirme cambiar los nombres de las variables y agregar comentarios dentro del propio software.

  • Plataforma: Windows o Linux. Los complementos para IDE también están bien.
  • Idiomas compatibles: C ++ y Java, cualquier cosa además de esto es una ventaja.

El software debería funcionar bien con códigos fuente grandes como los de Linux.

SonarQube también podría ser algo para ti. No lo usé mucho, así que no tengo suficiente conocimiento para recomendarlo.
¿Has probado OpenGrok? Configurarlo es relativamente fácil. vineelkumarreddy.com/2015/04/29/…
Solo para otros: CodeScene es otro producto comercial. Su objetivo es comprender también al equipo y las vías de comunicación detrás del código mediante el análisis del historial de confirmaciones.
parece que Sourcetrail es una buena alternativa: github.com/CoatiSoftware/Sourcetrail y sourcetrail.com

Respuestas (1)

Actualización 2019-08-27: esta herramienta ha llegado al final de su vida útil y parece que ya no se mantiene.


Considerándolo todo, diría que su lista de deseos para una herramienta gratuita como esa es bastante larga. En la última empresa en la que trabajé era responsable del mantenimiento de proyectos y me familiaricé con métricas y análisis de calidad de código. A continuación se proporciona información sobre mi conocimiento de ~ 2 años atrás. La única herramienta gratuita que encontré que coincide aproximadamente con sus requisitos es

ConQAT , la Herramienta de Análisis Continuo de la Calidad.

Eso

  • analiza Java, C++, C#, ABAP, ADA
  • es gratis ( Apache 2 )
  • se integra en Eclipse, por lo que puede cambiar el nombre de las variables, etc. como de costumbre
  • permite el análisis de restricciones arquitectónicas y clones de código
  • funciona al menos en Windows, no estoy seguro acerca de Linux. Está basado en Java, por lo que también podría funcionar allí si no necesita compatibilidad con C#.

Con respecto a

  • fácil de usar : bueno, depende de lo que signifique "fácil" para ti. Las métricas se construyen con una GUI, así que básicamente, sí. Sin embargo, debe tener conocimiento de las métricas.
  • representación gráfica de las funciones : no algo como IDA Pro, sino, por ejemplo, con diagramas de árbol. También puede visualizar la arquitectura al menos hasta el nivel de clase.
  • Códigos fuente grandes : no tengo idea de qué tan grande es el código fuente de Linux. Funcionó bien en un proyecto C# con 130k LOC

Otras notas (basadas en información de hace 2 años):

  • La herramienta se actualiza en intervalos irregulares, aunque el sistema de numeración de versiones sugiere que hay 2 lanzamientos por año.
  • Es difícil obtener apoyo, a menos que esté dispuesto a pagar por él. No encontré una "comunidad" que respondiera preguntas.
  • Puede implementar proveedores de información propios en Java.
Una gran respuesta y una gran herramienta. Por desgracia, después de publicar esto, el enlace ahora apunta a una publicación de blog que anuncia que está al final de su vida útil :-(
@Mawg: gracias por el aviso. Por supuesto, el sucesor, TeamScale, ya no es gratis. El código fuente de ConQAT debería permanecer disponible bajo la licencia de Apache2, pero dudo que haya una comunidad que desarrolle esto como un proyecto de Github, por ejemplo. :-(