I have gotten the opportunity to work with Lattix in the past. I believe the paradigm it represents (a hierarchical dependency matrix) is the future of large-scale system a
I have not seen anything as powerful as Lattix to represent your code in a DSM. While NDepend will generate the DMS it is a static snapshot. Lattix is dynamic allowing the user to change the architecture of the code in the DSM model.