Upload
rahul-d-fist
View
223
Download
0
Embed Size (px)
Citation preview
8/13/2019 Quality Attr
1/27
Quality Attributes
Or, whats wrong with this:
Exterminator kit place bug on
block, strike with mallet
8/13/2019 Quality Attr
2/27
Functionality vsQuality Attributes
Functionality
Qu
ality
8/13/2019 Quality Attr
3/27
Some Qualities
UsabilityModifiability
Performance
SecurityTestability
Availability
Time to marketCost and benefit
Projected System
lifetimeTargeted Market
Rollout Schedule
Integration / Legacy
8/13/2019 Quality Attr
4/27
8/13/2019 Quality Attr
5/27
Qualities & Trade-offs
The qualities are all goodThe qualities value is project specific
The qualities are not independent
8/13/2019 Quality Attr
6/27
Quality Attribute Scenarios
Source of stimulusStimulus
Environment
Artifact
Response
Response measure
(see inside front cover)
In the environment,
thesourcethrows thestimulusand hits the
system in the artifact
8/13/2019 Quality Attr
7/27
Example from cars
Artifact:
Tires
Environment:
Highway driving
Source of stimulus:
Road
Response:
Control maintainedSmooth ride
Low noise
Stimulus:
Bumps
Response
Measure:
Deflection < N%
Noise < M dB
8/13/2019 Quality Attr
8/27
Remember
One stimulus per scenarioOne environment per scenario
One artifact per scenario
Multiple response measures are OK
8/13/2019 Quality Attr
9/27
Example from software
Artifact:
User
interface
Environment:
Normal
operationSource of stimulus:
Shift change
Response:
Security maintainedAcceptable delays
Stimulus:
Dozens ofsimultaneous
logins
Response
Measure: No
unauthorized
users,
login < 1 min
8/13/2019 Quality Attr
10/27
If you remember one thing
To be effective, quality attribute scenariosmust be testable
(just like any other requirement)
Therefore, the Stimulus
Artifact
Environment
Response measure(s)
must be clear and specific
8/13/2019 Quality Attr
11/27
Activity: define qualityattribute scenarios
8/13/2019 Quality Attr
12/27
Next step
Assume some of the critical qualityattribute scenarios have been defined
What next?
8/13/2019 Quality Attr
13/27
Tactics: how to accomplish a
quality attribute scenarioAir-filled tires
Big old springs
Shock absorbers
(Im no auto engineer)
8/13/2019 Quality Attr
14/27
Tactics for shift change
Separate authentication+authorization fromenvironment setup
Show progress indicator(s)
Precompute expensive structures
Defer at-login-time processing to backgroundThin clients + shared services
Deploy workstations
Minimize other load on the system at shiftchange times
What BC&K tactics are these? (refer to handout)
8/13/2019 Quality Attr
15/27
Tactics for Qualities
Tactics are a guide to design!Tactics are design choices orientedtoward achieving qualities Tactics can refine other tactics
Patterns package tactics
Tactics can interfere!
Next week: a way to use quality
attribute scenarios and tactics to drivemodule decomposition
8/13/2019 Quality Attr
16/27
Tactics are ways to get the
desired response in a scenario
Artifact
Environment
ResponseStimulus
Tactic
8/13/2019 Quality Attr
17/27
Tactics example: performance
Database
Normal ops
Prompt
results25 req/sec
Maxdelay
< 2 sec
Introduceconcurrency
8/13/2019 Quality Attr
18/27
Fault
Fault Masked
or
Repair Made
orFault Detected
(not enough
by itself)
Qualities categorize tactics
Availability
8/13/2019 Quality Attr
19/27
Availability
Fault DetectionRecovery
Prep and
Repeat
Recovery-
ReintroductionPrevention
Echo
Ping
Exception
Voting
Active
RedundancyPassive
Redundancy
Spare
Shadow
State
ReSyncRollback
Removal
from service
Transactions
Process Monitor
8/13/2019 Quality Attr
20/27
Tactics can interfere with each other
Modifiability: use an intermediaryPerformance: reduce computationaloverhead
Modifiability/Performance conflicts arecommon
8/13/2019 Quality Attr
21/27
Patterns package tactics
An architectural pattern usually applies aset of compatible tactics
Better yet, mutually reinforcing tactics
Or at least, the pattern may give advice onbalancing tactics that tend to conflict
8/13/2019 Quality Attr
22/27
Example 1: tactics in Money (488)
This is one of Fowlers Base PatternsModifiability tactics used include
m1. Semantic coherence
m2. Anticipate changes m3. Generalize module
m5. Abstract common services
8/13/2019 Quality Attr
23/27
Example 2: Reactorincludes
Modifiability: m3. Generalize module
m5. Abstract common services
m6. Hide information
Performance: p3. Manage event rate
p2. Reduce computational overhead
p5. Introduce concurrency p8. Scheduling policy
http://cs.franklin.edu/~swartoud/650/slides650/Pattern%20-%20Reactor.ppthttp://cs.franklin.edu/~swartoud/650/slides650/Pattern%20-%20Reactor.ppt8/13/2019 Quality Attr
24/27
Styles
Styles (Shaw and Garlan) are recurring partialarchitectures
Styles are sometimes also called patterns
Like patterns, they package tactics
But theyre not usually linked with a problem
A style consists of
Set of element types
Element topology Set of semantic constraints
Set of interaction mechanisms
8/13/2019 Quality Attr
25/27
Style example: pipes and filters
Tactics include:
m2. anticipate expected changes
m5. abstract common services
m6. hide information
m7. maintain existing interfacem8. restrict communication paths
m12. polymorphism
m13. component replacement
p3. manage event rate
Style example: Service Oriented
8/13/2019 Quality Attr
26/27
Style example: Service-OrientedArchitecture (SOA)
service service service
service
app appTactics include:
m2. anticipate expected changes
m5. abstract common services
m6. hide information
m7. maintain existing interface
m8. restrict communication pathsm12. polymorphism
m13. component replacement
m14. adherence to defined
protocolst2. separate interface from
implementation
8/13/2019 Quality Attr
27/27
Tools of the architects trade
Quality attribute scenarios A way of defining testablequality
requirements
Tactics Bags of tricks you can apply
Patterns and styles Sets of tactics that usually fit together well
and are often applied together