Quality Attributes
|
|
|
John D. McGregor |
|
Clemson University |
What do you like?
|
|
|
Think about all of the software systems
you use such as mailers, compilers, editors, etc. Make a list. Select the one
you like the most. |
Why do you like it?
|
|
|
Write down why you like this software
system. |
|
|
|
|
|
|
|
|
|
|
|
What is it about this system that
provides your desired attribute? |
Scenarios
|
|
|
A scenario is a short story. It is a
narrative. |
|
|
|
It may have a set format or it may be
free form. |
|
|
|
UML use cases use scenarios as part of
the description of a use of the system. In fact most use cases have several
scenarios: |
|
sunny day |
|
alternative course |
|
failure |
|
exceptional |
|
|
|
Each scenario has a stimulus and a
response. |
Scenario
|
|
|
The user presses the search button.
The system responds by invoking the search web service passing the contents
of the search textbox as a parameter to the search service. |
Quality Attributes some
examples
|
|
|
|
|
Modifiability |
|
|
|
Performance |
|
|
|
Productivity |
|
|
|
Many of these can not be quantified
exactly so how do we state them as requirements? |
Qualities
|
|
|
System qualities |
|
secure |
|
|
|
Business qualities |
|
time to market |
|
|
|
Architectural qualities |
|
conceptual integrity |
Quality Attribute
Scenario
|
|
|
Source of stimulus |
|
|
|
Stimulus |
|
|
|
Environment |
|
|
|
Artifact |
|
|
|
Response |
|
|
|
Response measure |
Performance quality
scenario
|
|
|
The driver |
|
|
|
applies the brakes |
|
|
|
while the car is traveling at 55 mph |
|
|
|
a signal is sent to the brake
controller. |
|
|
|
The controller activates braking action |
|
|
|
within 10ms of receiving the signal. |
Quality attributes
|
|
|
Write a quality attribute scenario for
the quality you identified for your favorite system. |
System qualities
|
|
|
Modifiability |
|
|
|
Performance |
|
|
|
Security |
|
|
|
Usability |
|
|
|
Maintainability |
Availability
|
|
|
Percentage of time that the system is
available WHEN it is planned that it will be available |
|
|
|
mean time to failure |
|
|
|
mean time to failure+mean time to
repair |
Testability
|
|
|
The ability of the system to expose its
faults. |
|
|
|
IF there is a fault, how likely is the
fault to be found during testing? |
|
|
|
Can be enhanced by providing access to
the state attributes of each module |
|
|
|
Make everything public and it is 100%
testable but it is not as modifiable |
Business Qualities
|
|
|
Time to market |
|
|
|
COTS |
|
|
|
reuse of |
|
components |
|
architectures |
|
test cases |
|
|
|
outsourcing |
|
|
|
|
Architectural Qualities
|
|
|
Buildability |
|
|
|
too complex |
|
|
|
circular dependencies |
|
|
|
Conceptual Integrity |
|
|
|
One vision, defended vigorously |
|
|
|
A small architecture team |
|
|
|
|
Problem
|
|
|
The system will include consumers and
producers of data |
|
|
|
Consumers need to maintain the most
current data |
|
|
|
Producers of data keep changing |
|
|
|
Have other activities the system needs
to be doing |
|
|
|
How should we architect that part of
the system? |
Possibilities
|
|
|
Polling go looking for new data
periodically |
|
qualities enhanced: |
|
qualities degraded: |
|
|
|
Broadcasting every piece of data is
sent to every consumer |
|
qualities enhanced: |
|
qualities degraded: |
|
|
|
MatchMaker sources of data are
matched with consumers of data |
|
qualities enhanced: |
|
qualities degraded: |
|
|
Solution
Publish/Subscribe
|
|
|
Producers publish data to the
matchmaker |
|
|
|
Consumers subscribe to the services
of the matchmaker |
|
|
|
When a producer publishes a new piece
of data to the matchmaker, a notification is sent to all consumers who have
subscribed for this type of data. |
|
|
|
|
Known use