For the next Staged assignment, you will need to write functional and non-functi
ID: 3755434 • Letter: F
Question
For the next Staged assignment, you will need to write functional and non-functional requirements.
Review Requirements for information related to writing requirements. The following is a summary: Functional requirements express specifically what the user needs the system to do. Non-Functional requirements express how the system will perform in several performance areas and security. The requirement statement: · Is a complete sentence, with a subject (system) and predicate (intended result, action or condition) · Identifies only one requirement; does not include the words "and," "also," "with," and "or." · For Functional Requirements, states what tasks the system will support or perform · For Non-Functional Requirements, states how the system will perform. · Includes a measure or metric that can be used to determine whether the requirement is met (time or quantity), where appropriate · Is stated in positive terms and uses "shall" (not "may" or "should"); "the system shall xxxx" not "the system shall not xxx" · Avoids the use of terms that cannot be defined and measured, such as "approximately," "robust," "user friendly," etc. · Is achievable; avoids terms such as "100% uptime," or "no failures"
Writing the Requirements Statements
The requirement statement:
• Either states what the system will do as a functional requirement, or states how the system will do it as a non-functional requirement (Never both together)
• Identifies only one requirement; avoid the words "and," "also," "with," and "or"
• Is a complete sentence, with a subject (usually "the system") and predicate (intended result, action or condition)
• Uses "shall" (vs. "may" or "should")
• Is stated in positive terms; i.e., "the system shall xxxx" vs. "the system shall not xxx"
• Avoids the use of terms that cannot be defined and measured, such as "approximately," "robust," "user friendly," etc.
• Is achievable; avoids terms such as "100% uptime," or "no failures"
• Is complete; it includes a measure or metric (time or quantity) where appropriate
• Must be testable; that is, there must be some way to test the system to determine whether a requirement is met
• Generally is written as "The system shall ….."
Below are some examples of poorly written and well-written requirements, with an explanation of what is wrong with the poorly written one.
Poorly Written Requirement
What is Wrong
Well Written Requirement
Users shall have access to their personal data, which will be transmitted in a secure manner.
Two requirements – one functional and one non-functional - are expressed; each statement should express only 1 requirement.
1. The system shall provide a user with access to their personal data.
2. The system shall transmit personal data in a secure manner.
The system shall calculate the total of all items in the online or website shopping cart and display the total to the user.
Two requirements are expressed; each statement should express only 1 requirement.
1. The system shall calculate the total of all items in the online or website shopping cart.
2. The system shall display the total of all items in the online or website shopping cart to the user.
Report shall be provided within 5 seconds of the user clicking on "submit."
Not a complete sentence; and should be stated as "The system shall….."
The system shall provide the report within 5 seconds of the user clicking on "submit."
The system should require the user to provide a shipping address.
Avoid the use of "should"; use "shall."
The system shall require the user to provide a shipping address.
The system shall be easy to use.
"Easy to use" is not measurable or testable.
The system shall guide the user through the steps to place an order.
Poorly Written Requirement
What is Wrong
Well Written Requirement
Users shall have access to their personal data, which will be transmitted in a secure manner.
Two requirements – one functional and one non-functional - are expressed; each statement should express only 1 requirement.
1. The system shall provide a user with access to their personal data.
2. The system shall transmit personal data in a secure manner.
The system shall calculate the total of all items in the online or website shopping cart and display the total to the user.
Two requirements are expressed; each statement should express only 1 requirement.
1. The system shall calculate the total of all items in the online or website shopping cart.
2. The system shall display the total of all items in the online or website shopping cart to the user.
Report shall be provided within 5 seconds of the user clicking on "submit."
Not a complete sentence; and should be stated as "The system shall….."
The system shall provide the report within 5 seconds of the user clicking on "submit."
The system should require the user to provide a shipping address.
Avoid the use of "should"; use "shall."
The system shall require the user to provide a shipping address.
The system shall be easy to use.
"Easy to use" is not measurable or testable.
The system shall guide the user through the steps to place an order.
Explanation / Answer
Answer: The review for requirements for information related to writing requirements can be stated as below:
Requrement formats:
The functional requirement format actually depends on the situation, events,context etc
1. When the requirement is of general nature then it can be written as
The < system_name > shall < perform action/system_behaviour/response >
2. When a desired event happens then
When < precondition/event trigger> happens Then<system_name> shall <system action/ response/behaviour>
3.When a unwanted event happens then
If<unwanted event> happens Then <system_name> shall <system action/response/behaviour>
4.Basis system status
While<system_status description> <system_name> shall< sysem action/response/behaviour>
5.Complex scenarios ie. combination of one or more of the above mentioned(1-4) patterns
<Combine the patters as applicable by a suitable connector>
General rules for requirements:
1. Always use active voice and never passive voice
2. Avoid using negative sentences
3. Avoid using "/" to remove ambiguity from requirement statement
4.Use FR /NFR requirement IDs
5.Functional requirements (binding provisions)are expressed with the imperative "Shall". Non functional requirements are expressed with the imperative " Must"
6.Functional requirement declarations use the imperative "Will"
7. Functional requirements non binding provisions use the imperatives " Should" ,"May"
8.The requirements should be written in a way that makes it agnostic to system design
9.Don't overcrowd the requirement statements with justifications,clarifications. Try to delineate them.
10.If at all supporting information is required separate from the requirement statement using directives
11. Use consistent requirement formats for similar patterns
12. KPIs for NFR should be objectively verfiable and not subjective or ambiguous