9

I am looking for an open-source software that would help me understand source code faster. I am aware of tools like Understand, Source Insight, etc., but they are commercial with hefty fees for a license.

The software should be easy to use, should provide a graphical depiction of the functions, data structures etc. and should allow me to change variable names and add comments within the software itself.

  • Platform: Windows or Linux. Plugins to IDEs are also fine.
  • Languages supported: C++ and Java, anything in addition to this is a plus.

The software should work well with large source codes like those of Linux.

  • 3
    SonarQube might also be something for you. I didn't use it much, so I haven't got enough knowledge to recommend it. – Thomas Weller Apr 27 '16 at 20:52
  • Have you tried OpenGrok? Setting it up is relatively easy. vineelkumarreddy.com/2015/04/29/… – Vineel Kovvuri Dec 26 '17 at 20:22
  • Just for others: CodeScene is another commercial product. It aim is to also understand the team and the communication paths behind the code by analyzing the commit history. – Thomas Weller Jun 26 '18 at 14:32
7

All in all, I'd say your wish list for a gratis tool like that is quite long. In the last company I worked for, I was responsible for the maintenance of projects and I made myself familiar with metrics and code quality analysis. Below information is given on my knowledge of ~2 years ago. The only free tool I found that roughly matches your requirements is

ConQAT, the Continuous Quality Analysis Tool.

It

  • analyzes Java, C++, C#, ABAP, ADA
  • is gratis (Apache 2)
  • integrates in Eclipse, so you can rename variables etc. as usual
  • allows for analysis of architectural constraints and code clones
  • works at least on Windows, not sure about Linux. It's Java-based, so it might work there as well if you don't need C# support.

Regarding

  • easy to use: well, it depends on what "easy" means for you. The metrics are built with a GUI, so basically, yes. You should have knowledge of metrics, though.
  • graphical depiction of the functions: not something like IDA Pro, but e.g. with treemaps. It can also visualize the architecture at least down to class level.
  • large source codes: I have no clue how large the source code of Linux is. It worked fine on a C# project with 130k LOC

Other notes (based on information 2 years ago):

  • The tool is updated in irregular intervals, although the version numbering system suggests that there are 2 releases per year.
  • It's hard to get support, unless you're willing to pay for it. I did not find a "community" that would answer questions.
  • You can implement own information providers in Java.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.