1. Work in Progress

1.1. 24feb99

We have been considering the need to include "datain" and "dataout" attributes in the formal specs section of member functions. I'm leaning against this at this point, for the following reasons:

  1. It clutters up the specs.
  2. It's really redundant with both the description and the pre/post conds
  3. It can be mechanically generated via code analysis.
Exactly the same reasons also apply to why we should remove catch and throw as excplicit, developer-supplied attributes. So, here's the new deal:
  1. Instead of separating the parameters and data members in terms of input/output, I think we should just have "in" and "out" attributes, listing parameters and data members by name, disambiguating same-name data members where necessary with "this->".
  2. Change the current "catches" to just "catch" and "thrown" to just "throw". (NOTE that this has already been done in the work version of conven- tions/design-imple.me.)
  3. Leave the creation of these lists (i.e., in, out, catch, throw) to the design tool; i.e., do not have the developer write these lists explicitly.
  4. Think about having the design tool include them directly in the code.

What we've effectivley done here, I believe, is separate out what part of the specs need to be done by the developer versus the (design) tool.