Michael Bonar wrote:
> MSVC6 has a Visio add-on that allows you to reverse engineer C code
> into UML diagrams.  Anybody have experience with it?  I was thinking
> of giving that a try to see what it looks like.

It probably looks a lot like UML generated automatically from C
code. :)

I've never been able to understand the appeal of CASE tools like this.
How on earth is a machine going to read your code for you and tell you
how the design works?  The whole point behind overview documentation
is that it captures the *intent* behind the code -- that is exactly
the part of the design that is not actually found in the code.  By its
very definition, it can't be automatically extracted.  It has to be
either written down by the designer or intuited by the reader.

At best, a tool like this could make source navigation easier.  Having
tools to answer questions like "who calls this?" or "where are these
made?" is useful.  But that's best done at the level of C syntax,
IMHO, not in a separate diagramming language.

A lot of this, to be quite honest, is just me being a luddite or an
elitist.  It's been my experience that elaborate documentation schemes
really aren't worth it.  There seems to be an inverse relationship
between a programmer's penchant for fancy design tools/methodologies
and their ability to understand a design presented to them.  The
really productive coders I have known are happy with a one page README
file for documentation, and tend to be able to dive into existing
"undocumented" code and figure stuff out very well.  The folks who
insist on having <pick your jargon> available tend to struggle whether
they get it or not.  All in my experience, of course.

None of this is to say that documentation is a bad thing.  But
elaborate documentation and design work is, IMHO, largely useless or
self-defeating.  In the professional world it tends to hamstring the
best workers for the benefit of the worst, thus running afoul of Fred
Brook's (The Mythical Man Month) observations about productivity.

Really good examples of sane documentation can be found in the
Documentation directory of the Linux kernel.  The files there tend to
tell you exactly what you need to know, and give you enough hints to
discover the rest on your own and/or clue you in on what questions to
ask of the people who know.

Andy

--
Andrew J. Ross                NextBus Information Systems
Senior Software Engineer      Emeryville, CA
[EMAIL PROTECTED]              http://www.nextbus.com
"Men go crazy in conflagrations.  They only get better one by one."
 - Sting (misquoted)


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to