notexOPENOverview
Notex/Systems/Defining Nonfunctional Requirements

Defining Nonfunctional Requirements

Always free to read

Imagine we have been given the task of implementing a social network in the style of X (formerly Twitter), where users can post messages and follow other users. This will be a…

03

PART 1 / DATA FOUNDATIONS

Defining Nonfunctional Requirements

14 LESSONS · 39 MIN
  1. 03.01Case Study: Social Network Home TimelinesImagine we have been given the task of implementing a social network in the style of X (formerly Twitter), where users can post messages and follow other users. This will be a…READING5 MIN
  2. 03.02Describing PerformanceMost discussions of software performance consider two main types of metric:READING1 MIN
  3. 03.03When an Overloaded System Won’t RecoverIf a system is close to overload, with throughput pushed close to the limit, it can sometimes enter a vicious cycle where it becomes less efficient and hence even more…READING1 MIN
  4. 03.04Latency and Response Time“Latency” and “response time” are sometimes used interchangeably, but in these notes we will use these and a few related terms in a specific way (illustrated in Figure 2-4):READING2 MIN
  5. 03.05Average, Median, and PercentilesBecause the response time varies from one request to the next, we need to think of it not as a single number, but as a distribution of values that we can measure. In Figure…READING3 MIN
  6. 03.06Use of Response Time MetricsHigh percentiles are especially important in backend services that are called multiple times as part of serving a single end-user request. Even if you make the calls in…READING2 MIN
  7. 03.07Reliability and Fault ToleranceEverybody has an intuitive idea of what it means for something to be reliable or unreliable. For software, typical expectations include the following:READING1 MIN
  8. 03.08Fault ToleranceWe call a system fault-tolerant if it continues providing the required service to users in spite of certain faults occurring. If a system cannot tolerate a certain part…READING2 MIN
  9. 03.09Hardware and Software FaultsWhen we think of causes of system failure, hardware faults quickly come to mind:READING5 MIN
  10. 03.10Humans and ReliabilityHumans design and build software systems, and the operators who keep the systems running are also human. Unlike machines, humans don’t just follow rules; one of their strengths…READING2 MIN
  11. 03.11How Important Is Reliability?Reliability is not just for nuclear power stations and air traffic control; more mundane applications are also expected to work reliably. Bugs in business applications lead to…READING1 MIN
  12. 03.12ScalabilityEven if a system is working reliably today, that doesn’t mean it will necessarily work reliably in the future. One common reason for degradation is increased load. Perhaps the…READING7 MIN
  13. 03.13MaintainabilitySoftware does not wear out or suffer material fatigue, so it does not break in the same ways as mechanical objects do. But the requirements for an application frequently…READING6 MIN
  14. 03.14Recap: Defining Nonfunctional RequirementsIn this topic we examined several examples of nonfunctional requirements: performance, reliability, scalability, and maintainability. Through these topics, we also encountered…READING1 MIN
KEEP EXPLORING

One note leads to another.

Back to the library →
⌕
Search across the entire library ⌘ K