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 Answers 3


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.

  • 1
    @GlenH7 I knew of it (I enjoy reading April 1 RFCs and some of the humor is in the 'should' and 'must', and 2119 its even on the wikipedia page) I searched for it, found it, and then read the comment I was about to make - two above it was the RFC again. So not entirely huge props for digging it up.
    – user40980
    Commented Feb 4, 2013 at 19:18
  • My thinking was that Must requirements/ functional requirments must would require all functionality to a derived object that shall exist. But given shall and must definitions and how everyone else is using them I was just wrong Commented Feb 4, 2013 at 19:45

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.

  • 1
    My thinking became that functional requirements should use must because, If a derived object shall exist all its functionality must function. Commented Feb 4, 2013 at 20:00
  • I guess at some point I had shall embedded as new object in my head and must as function. Commented Feb 4, 2013 at 20:02
  • @TimLieberman - that's not a bad way of looking at things, especially since it links the two layers of specifications. Kind of useful, actually, since some folk do get confused by the semantics of the terms. Especially since I've fixed process docs where "shall" was more often than not used as a substitute for "should". However, it's not quite useful enough to require that as a particular standard.
    – user53019
    Commented Feb 4, 2013 at 20:07

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.


Not the answer you're looking for? Browse other questions tagged or ask your own question.