Non-Functional Requirements - Why do we need them?

24356 Views
0 Comments
26 Likes

Non-functional requirements, what comes to our mind when we talk about NFR (Non-functional requirements)?

What do you put down in non-functional requirements when you are documenting requirements in your project?

When we say non-functional we typically mean those requirements that are not related to functionality of the system, then what exactly are these and why do we need them.

Now imagine a system where it publishes results for 10 graders school certification examination in a country like India, and the kind of load it will have when the results are declared.

So what all requirements do we have to consider for this system apart from functionality, it surely has to have high performance requirement to handle the load as well as good security/authentication system in place.

This is the kind of requirements which is generally referred as Non-functional requirements, the requirements which are important for the user community or for smooth functioning of the system like usability, reliability etc.

The non-functional requirements should always be described in clear terms like the system should be able to handle 0.1 million users simultaneously and the response time has to be less than 2 seconds for each user.

Here is a good list of common non-functional requirements:

NFR Category Non-functional Requirements Short explanation Applicable to situation Can be tested by
Constraint Price Target price for the solution Most Checklist
Constraint Resource constraints Constraints imposed on development such as constraints imposed due to small screen size of mobile devices. Most Checklist
Compliance Compliance Regulatory compliance. Health care (HIPAA, FDA) Integration testing across systems
Compliance Documentation Documentation requirements. Health care, Aviation, Automotive Test cases for color blindness
Compliance Legal and licensing issues or patent-infringement-avoidability Adhering to compliance requirements. Most Test cases verification of record data update
Maintainability Analyzability Ability to investigate a failure Most Backup recovery test
Maintainability Changeability Ability to change one component without affecting others, and without causing unexpected failures Most Review the application code
Maintainability Deployment  Ease with which an application can be deployed and upgraded. Most Review the application code
Maintainability Escrow Source code of an application is kept securely and available to buyer under certain conditions Purchased an out-sourced product Checklist
Maintainability Extensibility / Modifiability Ability to extend the product easily Most Consumer feedback
Maintainability Supportability Ability to support applications for specific period, locations etc. Most Checklist
Maintainability Testability Ease of test automation Most Checklist
Performance Performance / response time (performance engineering) Time taken to respond to a user request. Most Checklist
Performance Resource utilization % of available capacity used Most Checklist
Performance Scalability Ability to support specified number of users / transactions Systems supporting large number of users Review the application code
Portability Interoperability Ability to work with existing systems. Most Review the application code
Portability Platform compatibility Ability to work with stated platforms. Most Review the application code
Portability Replaceability   Most Review the application code
Reliability Availability % of time the system is available. Critical systems Latency testing
Reliability Backup Frequency at which data must be backed-up. Universal Test on desired platforms
Reliability Disaster recovery Time taken to restore the application after a disaster. Most Multiple browser test
Reliability Failure management (Fault tolerance) Ability to manage failures. Most Checklist
Reliability Quality (e.g. faults discovered, faults delivered, fault removal efficacy) Target defect density Mission critical applications Code and design Review
Reliability Recovery / recoverability (e.g. mean time to recovery - MTTR) Ability to recover quickly Mission critical applications Review the application code
Reliability Reliability (e.g. mean time between failures - MTBF) Ability to provide service when needed Mission critical applications Review the application code
Reliability Replaceability Ability to replace a faulty part on the fly Mission critical applications Review the application code
Reliability Resilience Ability to withstand attacks Mission critical applications Checklist
Reliability Robustness Ability to operate continuously even under adverse conditions. Most Simulation of internet attack
If hardware is present, heat cycle testing
Reliability Stability   Most Checklist
Security Audit and control aka Accountability To track changes made to data. Finance, Health care Review the application code
Security Authenticity   Most Review the application code
Security Confidentiality Protect data from being exposed to unauthorized users Most Review the application code
Security Integrity Maintaining correctness of data Most Penetration test
Security Privacy Ability to keep personal data secure. Health care Penetration test
Usability Accessibility Application being usable by persons with special needs such as color blindness. Government Review the application code
Usability Ease of use Limit number of clicks to maximum 3 clicks to complete any transaction Most Review the application code
Usability Emotional factors (like fun or absorbing) Making application likable by a certain audience. Education Checklist
Usability Internationalization Ability to operate the application in different countries such as handling multiple time zone, currency, languages etc. Most Review the application code
Usability Learnability Different user groups should be able to use the product with or without training Most Review the application code
Usability Safety Ensure safe usage of the product and prevent damages caused by the application. For example, safety features for a navigation system. Where there are dangers to human life. Aviation, Automotive, Health care etc.. Key board control test
  Certification Certification on a particular technology such as certified on Azure. Most Untrained user test
  Localization Ability to satisfy needs of a particular country or domain (say petroleum industry) Most Review the application code
  Re-usability Ability to re-use existing components and create new re-usable components Most Review the application code
Portability Installability Ability to install or un-install easily Most Review the application code

 

Whereas some of the common functional requirements include:

 

  • Business Rules, logic, Validation
  • Calculations/formulae
  • Error message/handling
  • Transaction corrections, adjustments and cancellations
  • Admin functions/access, super user access
  • Authentication
  • Authorization levels
  • Audit log of transactions
  • External Interfaces
  • Reporting Requirements
  • Legal/Regulatory/Compliance Requirements

The non-functional requirements should always be described in clear terms like the system should be able to handle 0.1 million users simultaneously and the response time has to be less than 2 seconds for each user.

Advantages

  • Makes the system user friendly/easy to use and acceptable
  • Absence of them makes it lot more difficult to use for users and sometimes system may get abandoned due to the absence of these features

Disadvantages

  • Gets missed out often in requirements gathering exercise
  • Difficult to articulate or define quantitatively

Author: Ananya Pani, Co-Founder, Adapative US 

 
My mission is to help business analysts to build a successful professional career. I have helped 2000+ BAs in choosing a better career and help them achieve professional success.
 
I co-founded Adaptive US, #1 IIBA V3 training organization.  I am also a strong supporter of encouraging women workforce in technology and has helped many women to come back to work after long career breaks.
 
If you like my posts please like/share/comment and spread the word in your network. Would love to connect with fellow professionals. You can also reach me at [email protected]

About my organization, Adaptive US: We provide training, study guides, question banks, necessary PDUs for ECBA, CCBA, CBAP certifications.  For more details, please visit www.AdaptiveUS.com
 

 



Upcoming Live Webinars

 




Copyright 2006-2024 by Modern Analyst Media LLC