Coincidentally enough a colleague of had a meeting with some MS guys regarding Visual Studio 2010 team foundation server. They told him that it has the ability to reverse engineer your assemblies and produce UML diagrams. A quick look on MSDN (link text) seems to partially confirm this. It doesn’t say UML but it confirms architectural diagrams can be derived and your code which can be validated against at compile time. But it’s obviously not available yet and I’m sure it will carry a hefty price tag.