Architecturally Significant Requirements

Architecturally Significant Requirements (ASRs) are those requirements that have a measurable impact on a software system’s architecture.[1] They are a subset of requirements, the subset that affects the architecture of a system in measurably identifiable ways.

Relation to Non-Functional Requirements and Quality Attributes

For quite a long time, Architecturally Significant Requirements (ASRs) was not recognized as an important notion. When talking about architecture, Non-Functional Requirements (NFRs) or Quality Attributes is often used.[2] However, recent empirical studies show that, for a software system, not all NFRs actually have an impact on its architecture, and requirements that are not NFRs can also impact its architecture.[1][3] So, Architecturally Significant Requirements is a valuable notion that is suggested to use when talking about requirements in relation to architecture.[3]

Characteristics

Architecturally Significant Requirements (ASRs) can be characterized from the following aspects.[1]

Descriptive Characteristics

ASRs are often hard to define and articulate, tend to be expressed vaguely, tend to be initially neglected, tend to be hidden within other requirements, and are subjective, variable, and situational. Other requirements could also demonstrate these descriptive characteristics. However, ASRs’ architectural significance made these characteristics’ manifestations unique and challenging for ASRs.

Indicators

A requirement that has wide impact, targets trade-off points, is strict (constraining, limiting, non-negotiable), assumption breaking, or difficult to achieve is likely to be architecturally significant.

Heuristics

When a requirement specifies a software system’s quality attributes, refers to a software system’s core features, impose constraints on a software system, defines the environment in which the software system will run, it is likely to be architecturally significant.

References

  1. 1 2 3 Chen, Lianping; Ali Babar, Muhammad; Nuseibeh, Bashar (2013). "Characterizing Architecturally Significant Requirements". IEEE Software 30 (2): 38–45. doi:10.1109/MS.2012.174.
  2. Bass, Len; Clements, Paul (2003). Software Architecture in Practice. Addison Wesley. ISBN 978-0321154958.
  3. 1 2 Eckhardt, Jonas; Vogelsang, Andreas; Fernández, Daniel (2016). Are "Non-functional" Requirements really Non-functional? - An Investigation of Non-functional Requirements in Practice (PDF). The 38th International Conference on Software Engineering. Association for Computing Machinery.
This article is issued from Wikipedia - version of the Saturday, April 09, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.