Chapter 11
Chapter 11 - Non-functional Requirements
Q-1 What are Non-functional requirements?Ans: Non-functional requirement specifies the quality attribute of a software system. They judge the software system based on Responsiveness, Usability, Security, Portability and other non-functional standards that are critical to the success of the software system. Example of non-functional requirement is, "How fast does the website load?". Failing to meet non-functional requirements can result in systems that fail to satisfy user needs.
Q-2 What is the difference between Functional and Non-functional requirements?
Ans: Functional requirements define what a system is supposed to do and non-functional requirements define how a system is supposed to be. Functional requirements along with requirement analysis help identify missing requirements while the advantage of non-functional requirement is that it helps you to ensure good user experience and ease of operating the software. A functional requirement for an everyday object like a cup would be: "ability to contain tea or coffee without leaking" while the non-functional requirement for the same example would be: "contain hot liquid without heating up to more than 45°C"
Q-3 What are the Non-functional requirements Types?
Ans: Following are the non-functional requirements types which are grouped into eight major categories:
- Look and Feel: The spirit of the product’s appearance
- Usability and Humanity: The product’s ease of use, and any special considerations needed for a better user experience
- Performance: How fast, how safe, how many, how available, and how accurate the functionality must be
- Operational: The operating environment of the product, and any considerations that must be taken into account for this environment
- Maintainability and Support: Expected changes, and the time needed to make them; also specification of the support to be given to the product
- Security: Access, confidentiality, recoverability, and auditability of the product
- Cultural and Political: Special requirements that come about because of the culture and customs of people who can come in contact with the product
- Legal: The laws and standards that apply to the product
Ans: When you write security requirements, considering the nature of security is important. Security have four main aspects:
- Access: The product’s data and functionality are accessible to authorized users and can be produced in a timely manner. Other access requirements focus on denying access to unauthorized people.
- Privacy: Data stored by the product is protected from unauthorized or accidental disclosure.
- Integrity: The product’s data is the same as the source, or authority, of the data, and is protected from corruption.
- Audit: what the product has to do to allow complete verification of its operations and data.
Ans: The following things can prove useful in the process of finding out non-functional requirements:
- Blogging the requirements: Starting a blog using the template’s non-functional sections and subsections as headings can be useful in finding non-functional requirements. To elaborate, instead of writing “Usability Requirements,” instead use the subsections “Ease of Use,” “Personalization and Internationalization,” and “Accessibility.”
- Use cases: Considering each use case scenario from the point of its non-functional needs can help you identify non-functional requirements. For each of the non-functional requirements types, interview these stakeholders about the product’s needs.
- Templates: Using the template as a checklist of non-functional requirement types when interviewing your stakeholders is another way of finding non-functional requirements. Deeply studying the template that is looking at each of the subtypes and probe for examples of each.
- Prototypes: Prototypes can be used to help drive out non-functional requirements. Going through the prototype carefully, and keep in mind that it is not the requirement, but rather a simulation of the requirement. Example of prototype- whiteboard sketch, a paper prototype.
- Clients: The client for the product may also have expectations that are relevant here. Your client may say that if you cannot provide an interactive and graphic display of the current trading position, then he does not want the product. Thus, your client becomes the prime source of the critical non-functional requirements.
The operational and environmental requirement is mainly specify what the product has to do if it is implement and operate properly in its environment. In some cases the environment in which the product is operated have creates some special circumstances that have a huge effect on the way the product is constructed. So it is very necessary for the developers to keep in mind the operational requirement of the product where it will be operated while designing the product or gathering the functional and non-functional requirement for the product because otherwise the product will fail when it is operated. For example :- The product shall be used in and around trucks at night and during rainstorms, snow, and freezing conditions. So the environmental conditions need to consider mentioned in this requirement while designing this product.
ReplyDeletePerformance requirements are written when your product needs to perform some tasks in a given amount of time, some tasks need to be done to a specific level of accuracy, or the product needs to have certain data storage capacity, or it has to achieve a certain volume of throughput. Performance requirements include the risk of damage to people or property. When you are thinking about performance requirements, consider aspects such as :
ReplyDelete● Speed to complete a task
● Accuracy of the results
● Safety to the operator
● Volumes of data to be held by the product
● Ranges of allowable values
● Throughput, such as the rate of transactions
● Efficiency of resource usage
● Reliability, often expressed as the mean time between failures
● Availability—the uptime or time periods when users can access the
product
● Fault tolerance and robustness
● Scalability of most of the above
Sometimes, non-functional requirements are disregarded or underestimated, which may lead to the failure of a project. This is the reason why non-functional requirements are also an important part of gathering and analyzing requirements stage. In order to determine what the non-functional requirements, business analysts should comprehend different types of non-functional requirements. To support defining non-functional requirements, business analysts are expected to be familiar with the techniques of capturing non-functional requirements. Having concrete and clear non-functional requirements is one of the keys to a project's success.
ReplyDelete