> 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.)