Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Discovering Interface Dependencies

I have taken over maintenance of a very large (>2M SLOC) software project, all written in C#. There is very little documentation. I am now wanting to make a change to a module that has public interfaces (about 400), but I don't know what all other modules (there are about 50 total) in the solution may be using this public interface.

How would you create an interface dependency usage tree for a situation such as this? The codebase is too big to simply navigate the Project Explorer and read source code. What tools or methods have you used to create this type of dependency analysis tree?

I do not want to purchase any tools. The Visual Studio tools such as Class View don't seem to handle a project of this size very well. I have thought about writing my own sed/awk/perl-ish script that simply walks the source code and uses pattern matching to build my own dependency/interface useage database, but I don't want to do something the hard way if there is an easy way.

Thanks!

like image 400
Todd Avatar asked Mar 02 '23 01:03

Todd


1 Answers

You probably ought to buy something like NDepend.

If there was another FREE tool that would provide similar value, I'd recommend it. However, I truly believe NDepend is your best bet. With a code base of that size, it won't take long for a $400 tool to pay for itself.

like image 136
Larsenal Avatar answered Mar 12 '23 15:03

Larsenal