I have a requirement to document the assembly dependencies in a vb6/dotnet application.
What techniques / tools are good for performing this sort of document.
I was planning on using Visio for drawing.
I have a requirement to document the assembly dependencies in a vb6/dotnet application.
What techniques / tools are good for performing this sort of document.
I was planning on using Visio for drawing.
As a start, try Dependency Visualizer. I've also used GraphViz's Dot and some custom code for simple dependency generation. The custom code invoked SysInternal's depends.exe recursively and parsed the output. .NET Reflector with the Graph plugin looks pretty promising, too, though I haven't tried that (yet).
What I've always run into was the fact that my graph, unless generated automatically, has to be recreated every time I add to the project and sometimes when I simply change something. So, for me, a manual solution that I became married to for the updates was no solution at all.
I just found the Dependency Structure Matrix Plug-in for .NET Reflector.
Dependency visualizer is good for small projects. For projects or solutions with many inter dependencies it becomes too clumsy to even trace the dependency graph.
Well for .NET you could also try VS2010 Beta 1 and the Architecture Explorer (Arch Explorer screen shots).
As for VB6, I'd like to have a tool for that also. This tool from Microsoft Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Tool creates a call graph in HTML for a single VBP, not sure how useful it would for you. Other than that I have not found may tools for VB6.
You can create dependency graphs of .NET assemblies and application projects in VS 2010 Ultimate. You can generate assembly dependency graphs as one of the standard graphs, or you can use Architecture Explorer to browse your solution, select projects and the relationships that you want to visualize, and then create a dependency graph from your selection.
For more info, see the following topics:
How to: Generate Graph Documents from Code: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
How to: Find Code Using Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
RC download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.
Visual Studio 2010 Architectural Discovery & Modeling Tools forum: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads
To complete the Eric answer, NDepend comes indeed with a dependency graph coupled with a dependency matrix. Hopefully, NDepend can scale up to analyze the largest millions lines of code application and obviously, it is also relevant for smaller applications.
You can try NDepend straight on your code thanks to a Free Trial Edition. See screenshoots extracted from this blog post: Interactive Code Dependencies Graph