Book Image

Mastering Non-Functional Requirements

By : Sameer Paradkar
Book Image

Mastering Non-Functional Requirements

By: Sameer Paradkar

Overview of this book

Non-functional Requirements are key to any software/IT program and cannot be overlooked or ignored. This book provides a comprehensive approach to the analysis, architecture, and measurement of NFRs. It includes considerations for bespoke Java, .NET, and COTS applications that are applicable to IT applications/systems in different domains. The book outlines the methodology for capturing the NFRs and also describes a framework that can be leveraged by analysts and architects for tackling NFRs for various engagements. This book starts off by explaining the various KPIs, taxonomies, and methods for identifying NFRs. Learn the design guidelines for architecting applications and systems relating to NFRs and design principles to achieve the desired outcome. We will then move on to various key tiers/layers and patterns pertaining to the business, database, and integrating tiers. After this, we will dive deep into the topics pertaining to techniques related to monitoring and measurement of NFRs, such as sizing, analytical modeling, and quality assurance. Lastly, we end the book by describing some pivotal NFRs and checklists for the software quality attributes related to the business, application, data, and infrastructure domains.
Table of Contents (14 chapters)

Integration tier patterns


This section describes the integration tier patterns and its impact on NFRs.

Logging and exception management

To control your system effectively you need to be armed with information at regular intervals about what each system element is doing.

Context

The system has stringent requirements for performance, scalability, and availability. The failure of any system element could potentially impact the level of capability in these areas. In order to prevent system crashes or predict when new capacity is needed, you must have some current and historical data on system usage.

The web servers, application servers, and database servers (both hardware and software) all play vital roles in the system. If one of the web servers fails, the load on the other web servers increases. This could lead to poor performance for the users or even to the failure of one of the remaining web servers. This sequence of events may well go unnoticed unless you can determine the health and capacity...