Software Architecture

Table of Contents

Requirements

Types of requirements

Neither functions nor quality attributes stand on their own

Two categories of quality attributes:

Architecturally significant requirements

Architectures mostly driven by quality attribute requirements, features/functionality not as much Something like “the system must be modular” isn’t enough; what’s the reason? Has to be quantified and specific.

Finding ASRs:

Business goals

Business goals often lead to QA requirements, may directly affect architecture. Some may be satisfied without using the architecture (e.g. to reduce cost, stop heating the offices when everyone’s working from home)

There are some standard categories, e.g. meeting financial/personal objectives, meeting responsibility to employees/society/state/shareholders, managing market position, managing change in environmental factors

Expressing business goals:

“For {system being developed}, {goal subject} desires that {goal object} achieve {goal} (in the context of {environment}) and will be satisfied if {goal measure}.”

Requirements and goals

Goals are the “why”, requirements are the “how”.

Goals and requirements

Quality attribute scenarios

Specifies quality-attribute-specific requirement.

Six parts:

  1. stimulus: event arriving at system (input)
  2. Source of stimulus
  3. Response of system (output)
  4. Response measure - how you determine that response is satisfactory
  5. Environment - conditions when stimulus happens
  6. Artefact - which portions of system does requirement apply to

Quality attribute scenario diagram

Capturing ASRs in utility tree

Utility as root (expression of overall ‘goodness’ of system). Elaborated into QAs, decomposed into attribute refinements, expressed in ASRs (usually as QA scenarios)

For example:

ASR utility tree

Assess the ASRs in terms of business impact and architectural impact (high, medium, low):

ASR assessment in tree

Checks based on utility tree:

Usability

How easy it is for user to accomplish tasks, what support system provides for user.

Dimensions: