This blog post is part of Steps to Design an Architecture. Architecturally Significant Requirements (ASRs) include most important requirements for architecture, whether they are functional or non-functional. So, ASR is the requirement which directly impact the architecture design, whereas Non-Functional Requirement (NFR) may or may not impact architecture design. That’s why, ASR has more relevance than NFR, while referring to Architecture Requirements.
Still, I see many places we refer Non-Functional Requirement (NFR) as the requirement that drive the architecture. NFRs can be considered for documentation or discussions to have a common terminology based on the audience. But, an architect should understand the difference and plan accordingly to have the right set of requirements identified and addressed. If feasible educate the stakeholders to have better understanding and communication.
Some common sources for ASRs,
- Requirement Documentation
- Service Level Agreement (SLA)
- Domain Knowledge
- Applicable Standards, Policies or Guidelines
But, most of the time, either ASRs are not documented as part of the available documentation or are incomplete so identification of ASRs is important to the success of architecture.
Some of the most effective ways to elicit ASRs are,
- Follow a Questionnaire or Checklist
- Interview Stakeholders
- Quality Attribute Workshop (QAW)*
* SEI approach to identify Quality Attribute Requirements
Another effective way to capture Quality Attribute Requirements is Quality Attribute Scenarios as an outcome of Quality Attribute Workshop (QAW). High Level Quality Attribute Scenarios can be captured like user stories and detailed as Use Case Scenarios.
Some of the examples of high level scenarios are as below,
- A user updates his demographic information during normal load and the transaction completes in less than 2 seconds.
- A user clicks on generate monthly transactions report option for less than 500 records and the report is shown to the user with in 5 seconds.
- A receptionist is only allowed to see attendees list.
- An admin user can see other user’s data but not PII (Personal Identifiable Information) and financial data.
Architecturally Significant Requirements (ASRs) must be identified and documented with priority to drive the architecture design in the right direction. Architecturally Significant Requirements also helps in measuring the success of the system against most important concerns or quality parameters.
Thank You and Happy Learning !