## What are Architecture Significant Requirements (ARS)? - An [Architecturally Significant Requirement (ASR)](https://en.wikipedia.org/wiki/Architecturally_significant_requirements) is a requirement that has a measurable effect on a software system’s architecture and quality. - This can comprise both software and hardware requirements. They are a subset of requirements, the subset that affects the architecture of a system in measurably identifiable ways. ## How to deal with architecturally significant requirements? Architecturally Significant Requirements (ASRs) are requirements that significantly influence the architecture and quality of a software system. These requirements can encompass both hardware and software needs and are a subset of the overall requirements that notably impact the system's architecture. The best way to manage these significant requirements is during the Requirements Elicitation phase, which is the initial step in the Systematic Architecture Design process. These requirements should be established before developing an architecture as they have significant implications on architectural needs that need to be resolved. This typically involves identifying functional requirements with the highest business value, important error scenarios, challenging non-functional requirements or Quality Attributes, and any requirement that poses a high architectural risk. ## Derived Concepts 1. [[Architectural Decision]]: These are design decisions that address architecturally significant requirements. They are considered important due to their impact on the system's quality attributes, functionality, cost, and timeline. 2. [[Architectural Design]]: This is the process of defining a structured solution that meets all the technical and operational requirements while optimizing common quality attributes like performance, security, and manageability. 3. [[Architectural Pattern]]: These are proven solutions for solving specific problems in software architecture. They represent the best practices used by experienced software developers and architects. 4. [[Architectural View]]: This is a representation of a system from the perspective of specific stakeholders' concerns. It helps in understanding, communicating, and documenting the architecture. 5. [[Software Quality]]: This refers to how well software adheres to design principles - it includes aspects like functionality, reliability, usability, efficiency, maintainability etc. 6. [[Software Requirement Specification (SRS) Document]]: This document includes a comprehensive description of the intended purpose and environment for software under development. The SRS fully describes what the software will do and how it will be expected to perform. --- ## Tags #SoftwareArchitecture #Requirements #ASR #SystemDesign --- ## Related Concepts 1. [[Software Architecture]]: It is the blueprint of a software system. It includes the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. 2. [[Requirements Elicitation]]: It is the process of gathering requirements from stakeholders, users, and customers to understand and define the needs and expectations for a new or updated system. 3. [[Functional Requirement|Functional Requirements]]: These are specific inputs, outputs, functions, or behaviors that a system must provide or perform in response to specific inputs or conditions. 4. [[Non-functional Requirement|Non-functional Requirements]]: These are requirements that specify criteria that can be used to judge the operation of a system, rather than specific behaviors. They often relate to performance, security, usability etc. 5. [[Quality Attributes]]: These are non-functional requirements that are used to evaluate the performance of a system. Examples include scalability, maintainability, usability etc. 6. [[Systematic Architecture Design]]: This is an approach where the architecture is designed in a systematic and disciplined manner considering various aspects like functional requirements, non-functional requirements, constraints etc. 7. [[Architectural Risk]]: These are potential problems or issues that can negatively impact the architecture of a software system. They can arise due to various factors like technological changes, design flaws etc.