Before creating any website its common practice to visualize the layout, the design and all the features you intend to incorporate. In addition, you think about how users will interact with each page and how the site should perform (behavior, load time etc.). In software engineering, establishing a list of requirements for a program is referred to as developing the functional and non functional requirements.
It is a key step in development process and one that is not only applied to software development, but website development as well.
In this article, I take a very quick look at the difference between functional and non-functional requirements. For demonstration purposes, let’s assume we’re developing a web application that should process customer orders for an auto car shop.
In a nut shell, functional requirements describe what the software / website should do (the functions). Think about the core operations.
Because the “functions” are established before development, functional requirements should be written in the future tense. In developing the web application for the auto car shop, some of the functional requirements could include:
- The web application shall accept customer orders
- The web application shall be able to cash a sale
- The web application shall produce a receipt detailing a customers’ purchase information and include name of customer, items purchased, cost of each item and total cost
- The web application shall be able to produce weekly, monthly and yearly reports about sales
Notice that each requirement is directly related to what we expect the web application to do. They represent some of the core functions.
Non-functional requirements are not concerned with the functions of the system. Instead, they look at the criteria to which the software or website is expected to conform to. Non-functional requirements can include things like response time and reliability. It can also be closely tied to user satisfaction.
Some non-functional requirements for the auto shop application could include:
- The web application shall be easy to use by all employees including sales representatives and managers
- The web application shall be available in several languages
- The web application shall allow several sales to be made at the same time without downgrading performance
Notice how each requirement is not related to an operation or what the application should do. Instead, the main focus in this case is the ease of use and performance. That’s the idea of non-functional requirements.
Without realizing it, developers always establish requirements before any coding begins. Whether it was a website for a client, or one for your own personal needs, identifying requirements was important. By establishing the functional and non-functional requirements, you have a guide to follow in ensuring that a website meets it specifications.