37

I sent out an email earlier reminding our developers that

the use of the word "shall" in your derived requirements should not follow over to your functional requirements. When writing functional requirements the word "must" is used to describe the function a derived requirement must do.

  • Derived = System Shall be requirement
  • Functional = System must do requirement*

It was sent back by one of our seniors that this was wrong and that "shall" should be used in every requirement.

Am I wrong here, and should "shall" be used in every requirement? I haven't been able to find anything to back that up.

3 Answers3

68

RFC 2119 "Key words for use in RFCs to Indicate Requirement Levels" goes into specifics of what different words on requirements mean.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

From this document:

  • MUST is equivalent to REQUIRED and SHALL indicating that the definition is an absolute requirement.
  • MUST NOT is equivalent to SHALL NOT and indicates that it is an absolute prohibition of the specs.
  • SHOULD is equivalent to RECOMMENDED means that there are valid reasons to ignore a particular requirement, but the implications need to be weighed.
  • SHOULD NOT and NOT RECOMMENDED means that a particular behavior may be acceptable or useful, but again, the implications need to be weighed.
  • MAY means OPTIONAL and that the requirement is truly optional. Interoperability with different systems that may or may not implement an optional requirement must be done.

Following this RFC SHOULD be done to help ensure consistency of communication between one's internal documents and the standards world at large.

6

Not sure where you came to the conclusion that shall and must belong at separate levels of documentation. That's a pretty arbitrary distinction that isn't backed by any source I know of.

Shall and must are lexically equivalent. It's an action that is required.

Whether you use shall or must really depends upon the rest of the document that you are writing within and what makes grammatical sense for that particular sentence.

So yes, you're wrong. But you're also wrong on always using shall instead of must. They represent the same degree of obligation.

2

If you happen to work within the framework of DO-178 or DO-254 guidelines, these have their own definitions for requirements in general and derived requirements. These guidelines do not, however, specify which word, e.g. shall, should, must, should be used for specifying the requirements.

If your requirements management tooling does not automatically point out derived requirements for you, making these distinct from functional requirements by the use of a must instead of shall can be beneficial, for example to demonstrate that the verification objectives for derived requirements have also been met. This could be a possible reason for the seemingly arbitrary documentation requirement.

Note that in DO-178 and DO-254 derived requirement actually means a requirement which has not been derived from a higher-level requirement. A derived requirements therefore essentially initiates a new chain of traceability.

Both the DO-178 and the DO-254 are commercial guideline documents used for avionics software and electronics development, and only available for a fee from www.rtca.org.

Schedler
  • 519