Traceability of constraints from implementation to requirement is very important.
Traceability ensures that:
spurious constraints are not introduced,
the successful implementation of requirements can be ascertained, and
requirements that have unworkable ramifications can be identified.
For a large system, a non-traceable constraint is a loose cannon.
Business Analyst vs Programmer
"Above and beyond any question of which language(s) you use for data
validation is the question of who checks that the validation rules have
been implemented correctly? A not uncommon situation is that a business
analyst is responsible for writing (some of the) validation rules in some
format, and a programmer is responsible for writing an implementation.
However, this leads to the problem of who is capable of checking that the
programmer has correctly implemented what the business analyst asked for.
Neither is fully qualified for the job." [Anthony B. Coates]
Consider this XML instance document:
One if by land, two if by sea;
Suppose the requirements are stated in this document: security.html
Continued on next slide ...
In section A.184.108.40.206 of security.html it states the requirement:
Requirement: For an instance document to be valid the value of each classification attribute must be one of these values:
Schematron "see" attribute
The assert element has an optional "see" attribute, which may be used to link an assertion to the requirement it implements, e.g.