views:

43

answers:

2

I'm currently writing up a text document for a .NET solution that contains multiple projects and assemblies and I'm needing to communicate the relationship between the classes/interfaces/etc. so that others can understand how data needs to be "wired up" inside the application.

For example, I might need to say something like:

The MySolution.WebService is going to consume an IMessageProcessor, which is defined in MySolution.WebService.Business. You can extend MySolution.WebService with more implementations of IMessageProcessor. A custom implementation of IMessageProcessor called MessageProcessorOurVendor is defined in OurVendor.Processor and is currently being used in MySolution.WebService. ...etc.

Writing all of this out might be helpful, but I think I would benefit a lot from supplementing my explanation with a graphical representation of what I'm trying to explain.

What is a good tool for visualizing these kinds of object-oriented relationships?

NOTE: I know that Visual Studio has class diagrams, but I'm not sure if it's able to do more than simply visualize classes within a single assembly. Also, I've heard that VS can work with UML, but since I've never worked with UML, I'm not sure if this will help me.


See Also: What's the best UML diagramming tool?

+1  A: 

You can use Enterprise Architect, and import the source code. Which will automatically generate class diagrams, which you could then customize to show what you need. They also have IDE integration for Visual Studio.

Or after the import is complete you can create your own diagrams using the objects(classess and packages) that were just imported.

The only catch is you have to pay to use the product. They do have a free trial version that you can use for 30 days.

UML is the easiest and most standard way to visually show people how a system/product works.

Just in case you are wondering how to import:

Import By DLL
Import by Code

Nix
So the idea is that UML is the language that defines the relationships-to-be-visualized and 3rd party software tools help to create/consume UML, correct?
Ben McCormack
Correct the goal is to use UML to convey what your system is doing visually, and 3rd parties tools are your means. There are some free ones out there but generally they are lacking.
Nix