has anyone tried making cross-reference graphs for large software products

Has anyone successfully drawn some big software products' cross-reference charts? YOu know the diagrams that show connections between each of the functions (subroutines) in large software products like Apache, Eclipse, or even smaller products, comparing for example C language to Java, and other languages to see what differences in structure the language causes to happen. For example many FORTRAN programs uses various library functions, but tend to be very hierarchical in structure. I would imagine C is also fairly hierarchical. but maybe when a C program gets huge like Apache it starts to fuzz out.

anyone done work in this area?


try doxygen

Have a look at Doxygen - it will at the very least give you a good picture of what is going on for very little effort - even without any changes to existing code, just need install it and graphviz.

It's been done, but the

It's been done, but the results can be hard to read if there are a lot of cross-links.

This is a situation where a reorderable matrix may be your friend.  See particularly Jean-Daniel Fekete's interpretation of this idea, found at https://github.com/jdfekete/reorder.js/wiki/Introduction

Also depending on the task, a reasonable approach may be to extract or derive a smaller graph from the larger one, and visualize that to clarify rather than confuse. There's been some interesting work on this, including Wattenberg's pivot graphs and it seemed to be an important topic at Eurovis 2015, e.g. "Refinery" by Kairam et al https://idl.cs.washington.edu/papers/refinery/  and Detangler by Renoust et al http://www.renoust.com/pub/detangler.pdf 

Stephen North




Recent comments