9.4 Finding Your Code’s Dependency Complexities with NDepend
Few components stand completely alone (where do you get your data and what do you do with it?), but overly complex dependency relationships increase a project’s brittleness by making it more difficult to maintain or update the software. It’s harder to change one component in a system if many other components rely on its functionality. Likewise, it’s harder to change that component if it relies on functionality provided by many other components.
NDepend, by Patrick Smacchia, gives developers a wealth of information on dependencies between assemblies and types in their systems. Overall stability and usefulness is detailed in a graphic, and another graphic lays out exact dependencies between your target assemblies.
NDepend’s reports help you focus on assemblies that need attention to reduce coupling. They also give you a great view of your application’s topology at the assembly, type, and member level.
NDepend at a Glance
Power Tools page
Provides several vital benchmarks and a potentially bewildering wealth of statistics. Dependencies and abstractness versus instability charts give immediate visual feedback on the dependency state of your assemblies. Visual explorer lets you browse metrics via a unique UI.