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