Notes
Outline
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