3 Requirement versus Design Specifications |
The guidelines presented in this section depend on the type of a specification. We distinguish between requirement and design specifications in the following sense: requirement specifications are loose, i.e. the specifier conciously leaves certain properties unspecified. Thus, the specified datatypes are polymorphic and, as a consequence, the specification is `incomplete': given a property in terms of a formula, neither this formula nor its negation might hold for the whole model class. In contrast to this, design specifications are complete: all design decision have been taken and the specified model class is monomorphic.
For parametrized specifications, this pictures becomes more involved. In general, CASL specification definitions are of the form
The annotation %mono shall express that the extension of
{SP"1 and ... and SP"m } then {SP1 and ... and SPn }
With these definitions, we obtain as guidelines concerning instantiations:
3 Requirement versus Design Specifications |