Non-functional Requirements in software development

Non-functional Requirements in software development

?

Non-functional requirements (NFR) may not be visible to users and customers directly, but their absence may impact the overall user experience in a negative way and hamper the business.

Non functional requirements also keep functional requirements in line, so to speak. Attributes that make the product affordable, easy to use, and accessible, for example, come from non functional requirements.

  • Functional Requirements: What a product or system is supposed to do.
  • Non Functional Requirements: How the product or system should do it.

?


Most common attributes of NFR:

1.?????? Performance

2.?????? Environmental

3.?????? Usability

4.?????? Scalability

5.?????? Reliability and Availability

6.?????? Maintainability

7.?????? Recoverability

8.?????? Security & Compliance.

9.?????? Capacity

10.? Compatibility


How to define NFR/Considerations of NFR’s

1.??????Performance:

a.?? What will be the application load time for users?

b.???How can we handle network latency?

2.??????Security and compliance:

a.???How can we secure an application from unauthorized access?

b.???How can we protect an application from malicious attacks?

c.?? How can we meet local laws and audit requirements?

3.???? Recoverability:

a.???How can we recover an application from an outage?

b.???How can we minimize recovery time in the event of an outage?

c.???How can we recover data loss?

4.??????Maintainability:

a.???How can we ensure application monitoring and alerts?

b.???How can we ensure application support?

5.??????Reliability:

a.?? How can we make sure the application performs consistently?

b.???How can we inspect and correct glitches?

6.????? Availability:

a.???How can we ensure the high availability of an application?

b.???How can we make an application fault-tolerant?

7.??????Scalability:

a.???How can we meet the increasing demand for resources?

b.? How can we achieve a good scale for a sudden spike in utilization?

8.??????Usability:

a.???How can we simplify an application's use?

b.?????? How can we achieve a seamless user experience?

9.????? Capacity:

a.???What are your system’s storage requirements, today and in the future?

b. ??How will your system scale up for increasing data storage volume demands?

10.? Compatibility:

a.???What are the minimum hardware requirements?

b.???What operating systems and their versions must be supported?

?

Examples of NFR:

Performance: Each page must load within 2 seconds; The application must handle 800-1000 simultaneous users without a significant degradation in response time.

Reliability: The system must achieve 99.99% uptime, ensuring minimal service disruption throughout the year.

Security: Data encryption for all transactions must meet AES-256 standards to safeguard sensitive information; Database security must meet HIPAA requirements.

Scalability: The system should automatically scale up or down to handle varying workloads, ensuring consistent performance across peak and off-peak times.

Compliance: The software must adhere to GDPR guidelines to ensure the protection of users' personal data.

Maintainability: Code must follow standard naming conventions and documentation practices to ensure that future modifications can be implemented within a 24-hour timeframe.

?

Ultimately, NFRs play a crucial role in delivering a product that is not only functional but also reliable, secure, and future-proof.

?


?

Pankaj Prakash

Backend Developer @ Scrobits Technologies || Javascript || Linux

10 个月

Yes! the agenda of NFR is to have the product to sustain in the market and the user should get value while using this.

Ashish Kawale

Business Analyst | MERN Stack & Cloud DevOps Specialist | Driving Digital Transformation at SCROB1TS TECHNOLOGIES | Leveraging Data Insights for Cutting-Edge UI/UX & Innovation | Expert in Scalable, Tech-Driven Solutions

10 个月

Great info actually NFRs are crucial for ensuring a smooth user experience and resilient systems.

要查看或添加评论,请登录

Digvijay Jadhav的更多文章

  • Configure Cron Jobs in Nodejs

    Configure Cron Jobs in Nodejs

    Have you ever desired to execute a certain job on your application server at specific intervals without having to…

    1 条评论
  • Have you ever heard of Fuzzy Search?

    Have you ever heard of Fuzzy Search?

    Have you heard about term "fuzzy search" ? Many of my unanswered questions were answered a few months ago when I…

  • Code Documentation: A Guide for Beginner's??

    Code Documentation: A Guide for Beginner's??

    In this blog we’ll be having a quick look into how to document the code. Before we get into how to properly document…

    6 条评论

社区洞察

其他会员也浏览了