views:

44

answers:

1

As the years go by we get more and more applications. Figuring out if one application is using a feature from another application can be hard. If we change something in application A, will something in application B break?

We have been using MediaWiki for documentation, but it's hard to keep the data up-to-date.

I think what we need is some kind of visual map of everything. And the possibility to create some sort of reference integrity? Any ideas?

+3  A: 

I'm in the same boat and still trying to sell my peers on Enterprise Architect, a CASE tool. It's a round trip tool - code to diagrams to code is possible. It's a UML centric too - although it also supports other methods of notation that I'm unfamiliar with...

Here are some things to consider when selecting a tool for documenting designs (be they inter-system communication, or just designing the internals of a single app):

  1. Usability of the tool. That is, how easy is it to not only create, but also maintain the data you're interested in.

  2. Familiarity with the notation.

    A. The notation, such as UML, must be one your staff understands. If you try using a UML tool with a few people understanding how to use it properly you will get a big ball of confusion as some people document things incorrectly, and someone who understands what the UML says to implement either spots the error, or goes ahead and implements the erroneously documented item. Conversely more sophisticated notations used by the adept will confound the uninitiated.

    B. Documentation isn't/shouldn't be created only for the documenters exclusive use. So those who will be reading the documentation must understand what they're reading. So getting a tool with flexible output options is always a good choice.

  3. Cost. There are far more advanced tools than Enterprise Architect. My reasoning for using this one tool is that due to lack of UML familiarity and high pressure schedules, leaves little room to educate myself or my peers beyond using basic structure diagrams. This tool easily facilitates such a use and is more stable than say StarUML. (I tried both, StarUML died on the reverse engineering of masses of code -- millions of lines) For small projects I found StarUML adequate for home use, up until I got vista installed. Being opensource, it's also free.

With all that said, you will always have to document what uses what, that means maintaining the documentation! That task is one few companies see the value in despite its obvious value to those who get to do it. . .

Jason D
+1: great tip! But i'm not sure this program is what i'm looking for. Maybe because it looks like a very verbose application
Tommy
CASE tools are verbose, but you need not use all facets. Maintaining documentation is an often overlooked practice in many companies. In the end it's a balancing act for the effort involved versus the payout. A question to ask yourself: If **Feature X** didn't have "complete" design documentation, would anyone new understand it well enough not to break it in three years? If the answer is yes, it's "relatively safe" to skimp on it, not omit it. *Meaning **you're right** and you can spare the extra ramp-up when maintenance is needed.*
Jason D
I was hoping for some more alternatives but this was the only one
Tommy
If someone like to try a free uml tool one can use ArgoUml http://argouml.tigris.org/
schoetbi
Thanks for the accept. I understand your frustration with wishing it were easier.
Jason D