NFRs are the software quality attributes that impact runtime functions, software architecture, and customer experience. NFRs have the potential for application-wide impact across tiers and layers. Some NFRs are related to the design time attributes, while others are specific to runtime, or customer focus. The degree to which the architecture displays amalgamation of software quality attributes, such as scalability or capacity, indicates the success of the architecture and the quality of the overall solution.
When architecting solutions to meet the software quality attributes, it is essential to consider the impact on other NFRs as well. An architect has to analyze the trade-offs between different NFRs as they are interlinked or interdependent. The criticality of each NFR differs from application to application; for example, interoperability will be less critical in a single common off-the...