|
|
|
John D. McGregor |
|
Clemson University |
|
|
|
|
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. |
|
|
|
|
Write down why you like this software system. |
|
|
|
|
|
|
|
|
|
|
|
What is it about this system that provides your
desired attribute? |
|
|
|
|
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. |
|
|
|
|
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. |
|
|
|
|
|
|
Modifiability |
|
|
|
Performance |
|
|
|
Productivity |
|
|
|
Many of these can not be quantified exactly so
how do we state them as requirements? |
|
|
|
|
System qualities |
|
secure |
|
|
|
Business qualities |
|
time to market |
|
|
|
Architectural qualities |
|
conceptual integrity |
|
|
|
|
Source of stimulus |
|
|
|
Stimulus |
|
|
|
Environment |
|
|
|
Artifact |
|
|
|
Response |
|
|
|
Response measure |
|
|
|
|
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. |
|
|
|
|
Write a quality attribute scenario for the
quality you identified for your favorite system. |
|
|
|
|
Modifiability |
|
|
|
Performance |
|
|
|
Security |
|
|
|
Usability |
|
|
|
Maintainability |
|
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
Time to market |
|
|
|
COTS |
|
|
|
reuse of |
|
components |
|
architectures |
|
test cases |
|
|
|
outsourcing |
|
|
|
|
|
|
|
|
Buildability |
|
|
|
too complex |
|
|
|
circular dependencies |
|
|
|
Conceptual Integrity |
|
|
|
One vision, defended vigorously |
|
|
|
A small architecture team |
|
|
|
|
|
|
|
|
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? |
|
|
|
|
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: |
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|