CS 2
CS 2
CS 2
Chapter Outline
• Architecture and Requirements
• Functionality
• Quality Attribute Considerations
• Specifying Quality Attribute Requirements
• Achieving Quality Attributes through Tactics
• Guiding Quality Design Decisions
• Summary
Architecture and Requirements
System requirements can be categorized as:
– Functional requirements. These requirements state
what the system must do, how it must behave or react
to run-time stimuli.
– Quality attribute requirements. These requirements
annotate (qualify) functional requirements.
Qualification might be how fast the function must be
performed, how resilient it must be to erroneous input,
how easy the function is to learn, etc.
– Constraints. A constraint is a design decision with zero
degrees of freedom. That is, it’s a design decision that
has already been made for you.
Functionality
• Functionality is the ability of the system to do
the work for which it was intended.
• Functionality has a strange relationship to
architecture:
– functionality does not determine architecture;
given a set of required functionality, there is no
end to the architectures you could create to
satisfy that functionality
– functionality and quality attributes are orthogonal
Quality Attribute Considerations
If a functional requirement is "when the user
presses the green button the Options dialog
appears”:
– a performance QA annotation might describe how
quickly the dialog will appear;
– an availability QA annotation might describe how
often this function will fail, and how quickly it will
be repaired;
– a usability QA annotation might describe how easy
it is to learn this function.
Quality Attribute Considerations
There are three problems with previous
discussions of quality attributes:
1. The definitions provided for an attribute are not
testable. It is meaningless to say that a system will be
“modifiable”.
2. Endless time is wasted on arguing over which quality
a concern belongs to. Is a system failure due to a
denial of service attack an aspect of availability,
performance, security, or usability?
3. Each attribute community has developed its own
vocabulary.
Quality Attribute Considerations
• A solution to the first two of these problems
(untestable definitions and overlapping concerns) is
to use quality attribute scenarios as a means of
characterizing quality attributes.
• A solution to the third problem is to provide a
discussion of each attribute—concentrating on its
underlying concerns—to illustrate the concepts that
are fundamental to that attribute community.
Specifying Quality Attribute Requirements
• We use a common form to specify all quality
attribute requirements as scenarios.
• Our representation of quality attribute scenarios has
these parts:
1. Stimulus
2. Stimulus source
3. Response
4. Response measure
5. Environment
6. Artifact
Quality attribute parts
Specifying Quality Attribute Requirements
1. Source of stimulus. This is some entity (a human, a computer
system, or any other actuator) that generated the stimulus.
2. Stimulus. The stimulus is a condition that requires a response when
it arrives at a system.
3. Environment. The stimulus occurs under certain conditions. The
system may be in an overload condition or in normal operation, or
some other relevant state. For many systems, “normal” operation
can refer to one of a number of modes.
4. Artifact. Some artifact is stimulated. This may be a collection of
systems, the whole system, or some piece or pieces of it.
5. Response. The response is the activity undertaken as the result of
the arrival of the stimulus.
6. Response measure. When the response occurs, it should be
measurable in some fashion so that the requirement can be tested.
Specifying Quality Attribute Requirements
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License
Specifying Quality Attribute Requirements