Skip to content

Latest commit

 

History

History
105 lines (64 loc) · 5.78 KB

DPR-QualityAttributeScenario.md

File metadata and controls

105 lines (64 loc) · 5.78 KB
Scope Phases Roles Activities Abstraction/Refinement Level
Entire system, individual parts
Analysis
Application architects, other architects
SMART NFR Elicitation
n/a (requirements)

Artifact/Template: Quality Attribute Scenario (QAS)

also known as: SMART Non-Functional Requirement (NFR) Specification

A quality attribute scenario specifies a measurable quality goal for a particular context.

There might be multiple goals and corresponding scenarios, even when dealing with a single quality in a single context.

Motivation (Addressed Information Need)

It is not sufficient to find out and specify what a system under construction is supposed to do. It is equally important to investigate how it does so (from an architectural point of view). Vague statements such as "we value a splendid user experience" or "the faster, the better" are not verifiable and lead to tension between the project team and its external stakeholders.

Usage (Produced and Consumed When)

QAS are created, refined, and used in:

  • Requirements elicitation (analysis), see SMART NFR Elicitation activity
  • Architecture design and architectural decision making
  • Test preparation and testing (stress testing in particular)
  • Establishment of Service Level Agreement (SLA)
  • Reviews and planning of re-engineering and refactoring

Template Structure and Notation(s)

The full template look as follows (with explanations). Note that the six rows in the middle, from "Stimulus" to "Response Measure", which are grouped as "Scenario Components", form the core of a QAS. The other ones provide context information and deal with consequences of the specified response and response measure.

Annotated QAS Template

See the sample chapter of ADD 3.0 book by Humberto Cervantes and Rick Kazman (@Cervantes:2016) or the section overview of arc42 for QAS visualizations.

Example(s)

QAS Example: Desired Performance in Order Management Scenario

Tools

This is a text artifact, possibly structured with the help of templates and tables. Any word processing or other tool supporting item lists and table formatting can be used to create QAS instances, including wikis, markup languages, and Markdown.

Requirements management tools provide additional tooling options.

Hints and Pitfalls to Avoid (Common Pitfalls)

  • Focus on key qualities, prioritize elicitation and documentation effort by business value and technical risk (for instance, via a test for architectural significance).
  • Define the desired behavior in different environments such as steady state, high workload, and error cases. Create multiple QAS instances as/if needed.
  • Do not let the scope of this analysis artifact creep, for instance, by morphing it into a design document. The response measure is an observable quality, not a means to achieve this quality.

Origins and Signs of Use

  • The SEI books and technical reports established the template since the late 1990s (@Bass:2012).
  • The arc42 template also features it in its Section 10.
  • Methods such as the Unified Process have/had similar concepts.

Related Artifacts and Practices (incl. Alternatives)

Relate activities in DPR are:

  • SMART NFR Elicitation features "specific" and "measurable" as quality criteria for quality requirements; QAS satisfy these properties when filled out properly.
  • The Architecture Modeling activity uses QAS (or other forms of SMART NFRs) as input.

Many artifacts require specific and measurable NFRs as input, including but not limited to Architectural Decision Records (ADRs) and Deployment Diagrams.

More Information

Related concepts include:

  • Agile landing zones for NFRs
  • NFR checklists, for instance, regarding the SMARTness of the quality goals
  • Planguage, explained in detail in the article "Rich Requirement Specs: The use of Planguage to clarify requirements" @Gilb:2006.

The blog post "Do Software Architectures Meet Extra-Functional or Non-Functional Requirements?" covers NFRs.

Data Provenance

title: "Design Practice Repository (DPR): Quality Attribute Scenario"
author: Olaf Zimmermann (ZIO)
date: "08, 30, 2024"
copyright: Olaf Zimmermann, 2023-2024 (unless noted otherwise). All rights reserved.
license: Creative Commons Attribution 4.0 International License