10

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.

8

Update 2019-08-27: this tool has reached end of life and seems no longer maintained.


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.
  • A great answer, and a great tool. Alas, after you posted this, the link now points to a blog post announcing that it is end of life :-( – Mawg Aug 27 at 11:50
  • 1
    @Mawg: thanks for the notice. Of course the successor, TeamScale, is no longer gratis. The source code of ConQAT should remain available under Apache2 license, but I doubt that there will be a community developing this as a Github project for example. :-( – Thomas Weller Aug 27 at 14:44

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.