SDA Unit 1 - Chapter Understanding Quality Attributes
SDA Unit 1 - Chapter Understanding Quality Attributes
1
Software Architecture
Reference Book
2
Architecture and Requirements
• Requirements for a system come in a variety of forms: textual requirements, mockups, existing systems, use
cases, user stories
• Requirements encompass the following categories:
1. Functional requirements
• State what the system must do, and how it must behave or react to runtime stimuli.
2. Quality attribute requirements
• Qualifications of the functional requirements or of the overall product.
• Eg: how fast the function must be performed, or how resilient it must be to erroneous input.
• Qualification of the overall product is an item such as the time to deploy the product or a
limitation on operational costs.
3. Constraints
• Design decision with zero degrees of freedom
• Eg: include the requirement to use a certain programming language or to reuse a certain
existing module
3
Architecture and Requirements: Response
4
Quality Attribute Considerations
• System's functions do not stand on their own without due consideration of other quality
attributes, neither do quality attributes stand on their own; they pertain to the functions of
the system
• Two categories of quality attributes
• Some property of the system at runtime,
• such as availability, performance, or usability.
• Some property of the development of the system,
• such as modifiability or testability
5
Specifying Quality Attribute Requirements – Quality Attribute Scenario
6
Specifying Quality Attribute Requirements – Quality Attribute Scenario
• Response measure
• Determining whether a response is satisfactory whether the requirement is satisfied or enabled by
providing a response measure.
• Eg: For performance this could be a measure of latency or throughput; for modifiability it could be the
labor or wall clock time required to make, test
• Environment
• Set of circumstances in which the scenario takes place. The environment acts as a qualifier on the
stimulus.
• Eg. request for a modification that arrives after the code has been frozen for a release may be treated
differently than one that arrives before the freeze.
• A failure that is the fifth successive failure of a component may be treated differently than the first failure
of that component.
• Artifact
• portion of the system to which the requirement applies.
• Frequently this is the entire system, but occasionally specific portions of the system may be called out
• Eg. Modifications to the user interface may have faster response times than modifications to the
middleware.
7
Achieving Quality Attributes through Tactics
• Design decision that influences the achievement of a quality attribute response tactics
directly affect the system's response to some stimulus
9
Guiding Quality Design Decisions
10
Guiding Quality Design Decisions
• Coordination Model
• Identifying the elements of the system that must coordinate, or are prohibited from
coordinating.
• Determining the properties of the coordination, such as timeliness, currency,
completeness correctness, and consistency.
• Choosing the communication mechanisms (between systems, between our system and
external entities, between elements of our system) that realize those properties.
Important properties of the communication mechanisms include
• stateful versus stateless,
• synchronous versus asynchronous,
• guaranteed versus nonguaranteed delivery
• performance-related properties such as throughput and latency.
11
Guiding Quality Design Decisions
• Data Model
• Choosing the major data abstractions, their operations, and their properties. This includes
determining how the data items are created, initialized, accessed, persisted, manipulated,
translated, and destroyed.
• Compiling metadata needed for consistent interpretation of the data.
• Organizing the data
• includes determining whether the data is going to be kept in a relational database, a
collection of objects, or both
• If both, then the mapping between the two different locations of the data must be
determined.
12
Guiding Quality Design Decisions
• Management of Resources
• Need to arbitrate the use of shared resources in the architecture
• Include hard resources & soft resources
• Identifying the resources that must be managed and determining the limits for each
• Determining which system element(s) manage each resource
• Determining how resources are shared and the arbitration strategies employed when
there is contention
• Determining the impact of saturation on different resources
13
Guiding Quality Design Decisions
14
Guiding Quality Design Decisions
• Choice of Technology
• Deciding which technologies are available to realize the decisions made in the other
categories.
• Determining whether the available tools to support this technology choice (IDEs,
simulators, testing tools, etc.) are adequate for development to proceed
• Determining the extent of internal familiarity as well as the degree of external support
available for the technology (such as courses, tutorials, examples, and availability of
contractors who can provide expertise in a crunch) and deciding whether this is adequate
to proceed.
• Determining the side effects of choosing a technology, such as a required coordination
model or constrained resource management opportunities.
• Determining whether a new technology is compatible with the existing technology stack
15