What they are?, How they differ?, How they are related?
Context
Requirements
(from the SWEBOKv3 @ http://www4.ncsu.edu/~
What they are?
– At its most basic, a software requirement is a property that must be exhibited by something in order to solve some problem in the real world.
What they do?
– Express the needs and constraints placed on a software product that contribute to the solution of some real-world problem.
- An essential property of all software requirements is that they be verifiable as an individual feature as a functional requirement or at the system level as a nonfunctional requirement.
- Priority rating
- Uniquely identified
Types (Categories) of Requirements
- Product: A product requirement is a need or constraint on the software to be developed (for example, “The software shall verify that a student meets all prerequisites before he or she registers for a course”).
- Process: A process requirement is essentially a constraint on the development of the software (for example, “The software shall be developed using a RUP process”).
- Functional: Functional requirements describe the functions that the software is to execute; for example, formatting some text or modulating a signal. They are sometimes known as capabilities or features. A functional requirement can also be described as one for which a finite set of test steps can be written to validate its behavior.
- Nonfunctional: nonfunctional requirements are the ones that act to constrain the solution. Nonfunctional requirements are sometimes known as constraints or quality requirements.
Examples
- Req-1: The calculator must support the Addition operation.
- Req-2: The calculator must support the Subtraction operation.
- Req-3: The calculator must support the Multiplication operation.
- Req-4: The calculator must support the Division operation.
Acceptance Criteria
Examples
- Cri-1-1: The calculator must comply with the Commutative property for the Addition operation.
- Cri-1-2: The calculator must comply with the Associative property for the Addition operation.
- Cri-1-3: The calculator must comply with the Identity property for the Addition operation.
- Cri-1-4: The calculator must comply with the Distributive property, respect to the Multiplication, for the Addition operation.
Scenarios
Examples
- Sce-1-1-1: 4 + 2 = 2 + 4
- Sce-1-1-2: 10 + 5 = 5 + 10
- Sce-1-1-3: 1 + 2 + 3 = 3 + 2 + 1
A picture is worth a thousand words
Here is a breakdown structure of these three concepts:
Requirements, Acceptance Criteria, and Scenarios breakdown
Summary
What they are? see above definitions.
How they differ?
Requirements are high level descriptions of system characteristics. Acceptance Criteria are elements used to comply with the “verifiable” property of requirements. Criteria must state how to determine if the software system had properly implemented the requirement.
Often, acceptance criteria are not detailed enough to be useful in practice, so we need concrete examples of Input-Output, Input-Response Time, etc.; those are the Scenarios.
How are related?
From the above descriptions, you can infer that they are three levels of details of the same thing: what we expect the system to do.
But, what’s the deal with all this?
- All actors of the SDLC process must understand what are, how they differ, and why are all three levels required.
- Requirements / User Stories, without Criteria and Scenarios will be to subjective to be verifiable.
- Criteria and Scenarios alone, will be too difficult to manage, without a grouping element (parent requirement).