Jin
Jin

Reputation: 1439

Non functional requirements and functional requirement example

I am analyzing Milk teas management website, that is a web online to help user buys via online and seller can manage their products, orders

I have to do Non-functional requirements and functional requirements for this website like this

FUNCTIONAL REQUIREMENTS

Register

Login

Add products to card

Submit order

Cancel order

NON - FUNCTIONAL REQUIREMENTS

Number of milk tea can be added to the cart

I am right for that? Can you give me some idea for this to let me improve better, I am new for this section, thank you so much

Upvotes: 5

Views: 3176

Answers (1)

DV82XL
DV82XL

Reputation: 6629

Functional Requirements

Good functional requirements should clearly describe the behavior of the system. Here are some examples:

  • "If the user enters the wrong password 3 times when signing in, the account shall be locked for 24h."
  • "When an electronics product is added to the cart, the user shall be presented with an option to purchase a warranty."
  • "If a user attempts to cancel an order after it has been processed, the user must specify the reason for the cancellation, which must be approved before a refund is issued"

If you want to add more functionality, create more requirements, don't pile them all into one. For example, the last requirement in the above list can be split into 2: (1) require cancellation reason, (2) approval before refund. It also helps to organize requirements by feature in spreadsheets (one row per requirement) or JIRA Stories, for example.

Make sure you read many examples of well-written requirements, and practice. Follow a checklist, and have a co-worker review your work. Always ask yourselves how you would test each requirement. If you can't figure out how to write a test for the requirement, how can you ever prove the product works as intended?

Non-Functional Requirements

Non-functional requirements are also known as "quality attributes" or "constraints" of the system. The range of possible items that can be added to a cart (0..max) seems like a constraint on that field, so I can see how some would consider this a NFR. But how would you test it?

Instead, you can express this like a functional requirement: "When the user enters a value that is greater than the maximum, display an error message". A NFR might describe the color, size and location of the error message. NFRs can also specify which UI kit to use and style guidelines to follow. For example, "Must follow Google Material Design" (https://material.io).

You should also be familiar with NFR categories (also known as the "ilities"):

Here are some examples of NFRs for a website:

  • Performance: "A new user account shall be created in less than 2000 ms"
  • Reliability: "The system shall have at least 99.9% availability"
  • Capacity: "The system shall service up to 1000 simultaneous users"
  • Scalability: "The system shall be horizontally scalable to increase the number of simultaneous users"
  • Usability: "Users should be able to navigate to any page in the site within 3 clicks"

References

Read these guidelines by the System Engineering Body of Knowledge (SEBoK). Follow them closely, share with your team:

This is an excellent book on large-scale agile requirements if you want to go deeper:

Upvotes: 5

Related Questions