Reading

Sommerville, Chapter 4, Sections 4.1-4.3

Objectives

  1. Understand the distinction between User Requirements and System Requirements
  2. Understand the distinction between Functional Requirements and Non-Functional Requirements
  3. Understand the implications of use of “shall”, “will”, or “may” in the statement of a requirement.
  4. Write requirements at a level of detail that is appropriate to the purpose and audience.

Notes

Read using the following as a guide:

  1. Understand the distinction between User Requirements and System Requirements
    • Who generates User Requirements?
    • What is the purpose of User Requirement?
    • Why is it important that User Requirements provide the “What”, but not the “How”?
    • Who generates System Requirements?
    • What is the purpose of a System Requirement?
    • What are the three main questions to answer with a Feasibility Study?
  2. Understand the distinction between Functional Requirements and Non-Functional Requirements
    • What is the purpose of a Functional Requirement?
    • What types of things do Functional Requirements describe?
    • What is the purpose of a Non-Functional Requirement?
    • What types of things do Non-Functional Requirements describe?
  3. Understand the implications of use of “shall”, “will”, or “may” in the statement of a requirement.
    • “Shall” or “Must” denote Absolute Requirements.
    • “Will”, “Should”, or “Recommended” denote requirements that should be met but there may be circumstances where they may be ignored, but such circumstances must be fully analyzed and understood.
    • “May” or “Optional” mean the requirement is truly optional.
  4. Write requirements at a level of detail that is appropriate to the purpose and audience.
    • When should requirements be high-level and abstract versus low-level and very precise?