While we always try to address the functional requirements, it is imporant to discuss the non-functional requirements(NRF) during the system design interviews
1. Availability - Availability refers to the percentage of time that the infrastructure, system, or solution remains operational under normal circumstances in order to serve its intended purpose.
Source: https://www.bmc.com/blogs/reliability-vs-availability/
2. Reliability - Reliability refers to the probability that the system will meet certain performance standards in yielding correct output for a desired time duration. Reliability can be used to understand how well the service will be available in context of different real-world conditions. For instance, a cloud solution may be available with an SLA commitment of 99.999 percent, but vulnerabilities to sophisticated cyber-attacks may cause IT outages beyond the control of the vendor. As a result, the service may be compromised for several days, thereby reducing the effective availability of the IT service.
Similar to Availability, the Reliability of a system is equality challenging to measure. There may be several ways to measure the probability of failure of system components that impact the availability of the system. A common metric is to calculate the Mean Time Between Failures (MTBF).
MTBF = (total elapsed time – sum of downtime)/number of failures
3.Observability - Observability is the extent to which the internal states of a system can be inferred from externally available data. An observable software system provides the ability to understand any issue that arises. Conventionally, the three pillars of observability data are metrics, logs and traces.
4.Scalability - Teh ability of the system to grow and perform as the number of users, requests or data increases. The system should not have any performance degradation while the system scales.
5.Extensibility - Defines the ability of a system to extend the functionality. This extension can be through adding new functionality or modifying existing functionality.
6.Security - Security requirements define how well the system and its data are protected against attacks and unauthorized access.
7.Performance - The performance of a system is measures as the number of requests served in a given period of time consistently. Two primary elements of performance are 1.Latency adn 2. Throughput
8.Resilience - How system can gracefully handle and recover for accidental or malicious failures.
9.Usability - How easy it is for a user to interact with the system. The user should be able to operate the system safely, effectively, and efficiently while enjoying the experience.
10.Maintainability - Maintainability is defined as the probability of performing a successful repair action within a given time. In other words, maintainability measures the ease and speed with which a system can be restored to operational status after a failure occurs.
11.Durability- The system should gurantee that the data stored in the system is durable for specified period of time based on the business needs.
No comments:
Post a Comment