

The extension can be through adding new functionality or modifying existing functionality. ExtensibilityĮxtensibility measures the ability to extend a system and the effort required to implement the extension. Geodes: Deploy backend services into a set of geographical nodes, each of which can service any client request in any region. Availability is affected by system errors, infrastructure problems, malicious attacks and system load.ĭeployment Stamps: Deploy multiple independent copies of application components, including data stores It is measured as a percentage of uptime and defines the proportion of time that a system is functional and working. This also includes optimising the algorithms and replicating the system near users to reduce the round trip of a request. Latency: Ability to serve the request as quickly as possible. These could occur during peak time or in densely populated areas.Įlasticity: Ability to quickly spawn a few machines to handle the burst of traffic and gracefully shrink when the demand is reducing. Thundering Herd: Many users are requesting resources, but only a few machines are available to serve the burst of traffic.Global / Regional: Regional Heavy usage of the application.Diurnal Pattern: Traffic increases in the morning and decreases in the evening for a particular region.It’s not cost-efficient to spawn as many machines as possible, even if it is underutilisation. Traffic Pattern: Understand the traffic pattern of the system. Scalability is achievable with Horizontal or vertical scaling of the machine or simply attaching AutoScalingGroup. The ability for the system to perform and operate as the number of users or requests increases. Let’s understand each one of them: Scalability: This article is not providing the solution to these NFRs but instead makes you aware of which areas you need to consider when designing a system. You don’t need to accommodate all in your project pick the most essential and knock it out. These top 10 Architectural Characteristics covers most of the aspect of a large-scale project. Architecture Characteristics / Non-Functional Requirementsīriefly, functional requirements define what a system is supposed to do, like in the case of a car, take a person from A to B, and non-functional requirements stipulate how a system is supposed to be. Be it a website, a mobile or a desktop app it should have a set of quality attributes to meet end-user needs.
Functional requirements software#
Similarly, just like a car, motorcycle, or House, the software has its non-functional requirements called “Architectural Characteristics”.

Why? To limit the surprises which may occur in delivering the primary function, i.e., take a person from Point A to Point B. You may also look for an electric version or better speed.

But what we also check in it is Safety, Comfort, Maintainability, Ease of repair or Better mileage. What essential features do you need in it? A vehicle should deliver a person from point A to point B. Top 10 Architecture Characteristics / Non-Functional Requirements with Cheatsheet
