Requirements
Reading
Sommerville, Chapter 4, Sections 4.1-4.3
Objectives
- Understand the distinction between User Requirements and System Requirements
- Understand the distinction between Functional Requirements and Non-Functional Requirements
- Understand the implications of use of “shall”, “will”, or “may” in the statement of a requirement.
- Write requirements at a level of detail that is appropriate to the purpose and audience.
Notes
Read using the following as a guide:
- 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?
- 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?
- 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.
- 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?