I'm looking for software that will accept a collection of source code as input and will output a visual representation of that source code's entities and their relationships through a visual representation (such as a directed graph, nested rectangles, or similar as appropriate for the task) in a GUI. I would like to be able to use this program to do tasks such as:
- When viewing a data type, see the other data types that are included as members of that type (and the members of those types, recursively)
- When viewing a class, see the other classes that call the given class's functions as well as the other classes whose functions the given class calls
- When viewing a function, see the other functions that call that function as well as the other functions called by the given function
- When viewing a source file, see the other files that are included by that file as well as the other files that the given file includes
Static code analysis seems to be a superset of what I'm looking for; however, most static code analysis programs that I've found have tended to focus on things such as recognizing coding style deviations, security vulnerabilities, and code repetition rather than visual representations of code.
Preferably, such software would support a variety of common languages; however, software that only supported specific languages would also be of interest (for me personally, support for C/C++, C#, and/or Python would be beneficial). Similarly, cross platform software would be desirable, but software that ran at least on either Windows or Linux would serve my needs. Software that is FOSS is a plus, and software that is available to download and use without cost is a strong plus.
Moose Suite appears to meet the above criteron; however, it seems to be considerably more advanced of a tool than I'm looking for, and it would require a large learning curve to be able to use it proficiently.
pfff (particularly the codemap and codegraph utilities) also looks like it might be suitable; however, as of this writing, both the outdated Facebook Github repo and the currently maintained repo hosted by aryx contain bugs that prevent the use of the tool.
DDD (a GUI frontend to GDB) does part of what I'm looking for; the software is able to represent variables and pointers as boxes within the GUI, and each of these boxes contains the contained data or member variables (for data types) or points to the referenced data's box (for pointer types). However, DDD functions only on a running instance of a program; to my awareness, it would not be a useful tool for representing the source code's data based on just the source code itself.
What programs are best suited for visually representing code through a GUI?