What's the best way to create a large, complex, flexible UML diagram?
July 26, 2007 10:54 AM   Subscribe

I need to spec out a huge, complex application in UML. I'm looking for good tools/techniques to do this in a fluid situation, where there are a ton of classes and new ones will be added all the time.

My team is going to write a gargantuan program. We need to spec it, and I'm expecting we'll spend two or three weeks on the spec, before writing a line of code. It's vital that the finished spec be clear, rational, utilitarian and scalable. I've gotten to that point before, on other projects, but never on one this large. And my way of getting there is to make many drafts of the spec.

During draft stages, I continually refine the spec by adding new classes, removing redundant ones, etc. So the entire UML chart needs to be revised maybe 50 times before it's done.

The only UML tools I've used are graphical-UI ones, where you have to draw little boxes and drag connectors between them. But the thought of doing that on this project makes me queasy. It would mean continually dragging tons of boxes around to make space for new ones.

Here's what I'd like:

-- a way to create the graph via XML or something similar. The XML could be fed into an application that would spit out a diagram.

-- the XML/outline/whatever is easy to modify, in terms of adding new classes, relationships, etc.

-- when done, we could PRINT the whole diagram as a giant chart which we could hang on the wall. I guess it would have to be on many sheets of paper that we'd tape together. But we'd really like to be able to view the entire model at once.

Does such an app exist? If not, I'm very open to analog approaches. Is there a good method of doing something like this with tons of index cards (one for each class) tacked to the wall or something?

I'm sure other teams have faced this problem. How have the solved it?

We're Mac and Linux based, but if the best solution is PC-only, we could go that way via parallels.

If it matters (and I'm not sure why it would), this will be a web app coded in Actionscript 3.0.
posted by grumblebee to Computers & Internet (11 answers total) 3 users marked this as a favorite
Best answer: The mighty Graphviz?
posted by zemblamatic at 11:03 AM on July 26, 2007

Note: the OSX port of graphviz is sweet although maybe you could describe the structure in the DOT language.
posted by zemblamatic at 11:06 AM on July 26, 2007

More. I will leave this thread alone now...
posted by zemblamatic at 11:08 AM on July 26, 2007

MagicDraw lets you build the model independently of the diagram. You can have many different views of the model, but the model itself is represented in a tree on the left hand side of the interface. You can build your model completely without diagrams if you want.
posted by cmicali at 11:11 AM on July 26, 2007

Oh, and there is a free Community Edition you can use to try it out.
posted by cmicali at 11:11 AM on July 26, 2007

Response by poster: Cool, zemblamatic! The dot language looks very much like JSON.
posted by grumblebee at 11:11 AM on July 26, 2007

I use Enterprise Architect for this, and while it doesn't precisely meet your needs, I think you should take a look at it anyway. It's an excellent tool for designing large applications. It is primarily a Windows app but has a Linux port that I am unfamiliar with.

It is a graphical UML tool, but it has an import/export XML schema.
posted by feloniousmonk at 11:36 AM on July 26, 2007

Response by poster: Thanks, feloniousmonk. I will definitely look at all apps suggested here.
posted by grumblebee at 11:40 AM on July 26, 2007

It doesn't exactly meet your requirements either, but I'll toss umlet into the mix.
posted by AmaAyeRrsOonN at 11:49 AM on July 26, 2007

Laugh if you will, but if I wanted to generate a UML diagram strictly from text, I'd probably create a bunch of C++ headers defining the classes and their relationships, and then run them through one of those C++ to UML tools. It might beat learning a new XML spec (if you already know C++, that is).
posted by DarkForest at 2:36 PM on July 26, 2007

As for the ton of index cards idea, you probably already know about CRC Cards.
posted by DarkForest at 3:05 PM on July 26, 2007

« Older Rectangular peg in larger rectangular hole   |   Hi, can I work here please? Newer »
This thread is closed to new comments.