Non-Functional Requirements
Once you have gathered the system requirements, it is time to think about the impact they have on the architectural design. Scalability, availability, resiliency, performance, multithreading, interoperability, security, and other aspects need to be analyzed so that we can meet user needs. We refer to these aspects as non-functional requirements.
We will cover the following topics in this chapter:
- Enabling scalability, availability, and resiliency with Azure and .NET 8
- Performance issues that need to be considered when programming in C#
- Software usability: how to design effective user interfaces
- Interoperability with .NET 8
- Achieving security by design
The main purpose of discussing non-functional requirements here is that they are highly relevant to software architects: even though they are not so important to getting the software working in terms of functionality, they can make all the difference when comparing...