Achieving Appropriate
Values for Quality Attributes
|
|
|
John D. McGregor |
|
Clemson University |
Tactics
|
|
|
A strategy is a high-level plan for
achieving a goal. |
|
|
|
A tactic is the actual set of steps for
achieving the goal. |
|
|
|
|
General tactic
|
|
|
Apply an architectural style that fits
the overall problem |
|
|
|
This involves mapping the pattern onto
the elements of the problem. |
|
|
|
In a large research organization,
research reports are produced, reports and papers from outside the
organization are found and read by subscribing to journals and attending
conferences. We need an information system which makes certain that each
researcher sees the information he/she needs. |
|
|
General tactic - analysis
|
|
|
Data is produced |
|
Data is consumed |
|
|
|
Should a researcher search for what
they want at the moment or should it just show up? |
|
|
|
How would the researcher indicate what
information they want to see? |
Publish/Subscribe
Tactic description
|
|
|
Do a domain analysis of the attribute |
|
What techniques affect the attribute |
|
Which of those techniques enhance the
attribute |
Availability Tactics
|
|
|
A fault that causes a failure affects
availability so
|
|
|
|
Remove the fault or find a work-around |
|
|
|
Fault detection |
|
exceptions reactive |
|
ping - proactive |
|
|
|
Fault recovery |
|
hot swap |
|
|
|
Fault prevention |
|
operational guideline reboot
every day |
|
|
Testability tactics
|
|
|
How can we provide for more thorough
testing |
|
|
|
Record/Playback |
|
supports future testing |
|
|
|
Special test interface |
|
very common in hardware |
|
|
|
Internal monitoring |
|
during testing the monitor checks
state and throws an exception |
Usability tactics
|
|
|
Separate user interface |
|
changes to user interface do not
change functionality |
|
|
|
Support user initiative |
|
cancel/undo operations |
|
|
|
Support system initiative |
|
models of user, system, task |
|
properties files |
Tactics and Architectural
Patterns
|
|
|
Architectural pattern involves several
tactics |
|
ActiveObject pattern from Schmidt |
|
|
|
Main idea is introduction/management of
concurrency |
|
Concurrency performance tactic |
|
Information hiding Modifiability
tactic |
|
Intermediary Modifiability tactic |
|
Binding time Modifiability tactic |
|
Scheduling policy performance tactic |
|
|
Active Object Pattern
Patterns
|
|
|
A pattern is a solution to a problem
in context |
|
|
|
So a pattern is already validated as to
the tradeoffs among the tactics within it, but
|
|
|
|
The tradeoffs only apply within the
context for which the pattern has been validated |
|
|
|
|
Binding times for tactics
|
|
|
Concurrency performance tactic
runtime |
|
|
|
Information hiding Modifiability
tactic design time |
|
|
|
Intermediary Modifiability tactic
design time |
|
|
|
Binding time of client/proxy
Modifiability tactic - open |
|
|
|
Scheduling policy performance tactic
design time or later |
|
|
Problem
|
|
|
Want services but in as small a
footprint as possible |
|
|
|
High reliability and security for
services |
|
|
|
Modular system components |
|
|
|
Configurability |
|
|
MicroKernel
MicroKernel
Activity diagram system
parts
System view
Known use QNX - RTOS
Messaging in QNX
MicroKernel Database
Engine