> Wouldn't you be better off capturing your design intent using a tool
> (Rational Rose springs to mind, but there are plenty of others) and then
> controlling the code it generates.
A tool would not necessarily support what Samuel is proposing--enforcing
the shop's decision on a design paradigm--unless the tool "just happens"
to implement the same decision.
I haven't seen the code generated by Rose, but the documentation makes it
obvious the tool is primarily aimed at C++ programmers. And I have seen
the Ada code generated by other tools. All auto-generated code I've ever
seen has been atrociously unreadable. The problem with such tools is that
you're enslaved by the tool, since the code is essentially unmaintainable
without the tool.
The only such tool I've actually used would _reduce_ productivity over
manual techniques, simply because it only generates the calls. The
programmers have to write all the actual logic, AND keep track of up to
nine segments of code per compilation unit, with special marker comments
and special file names, just to support the CASE tool assembling the
pieces after each change! Thus, the code is essentially unmaintainable
_with_ the tool!
The same tool (that I used in the past) could not graphically represent
two-part (spec & body) compilation units, so it put all 'with' statements
on the package specs, not the bodies. (I think they may have eventually
fixed that stupidity....)
I have not had the opportunity in recent years to look at new developments
in this area, so feel free to tell us that you've found a vendor of CASE
tools that actually knows something about software engineering. (The
vendor of the tool I mentioned also needs help with configuration
control--they fixed a significant bug in one release, and reintroduced the
identical bug in the next release.)