Chapter 14 - Quality Attribute Modeling and Analysis Flashcards
what is an analytic model
a model for quantitative describing how well an architecture performs with respect to some quality attribute
5 components of performance models
- arrivals
- queue
- server (scheduling alg)
- routing of messages
- results
8 performance model parameters
- arrival rate of events
- chosen queuing discipline
- scheduling alg
- service time for events
- network topology
- network bandwidth
- routing alg
the cost of performance modeling?
determining/estimating the parameters
the benefit of performance modeling
estimate of the latency
When should or shouldn’t performance modeling be done
- SHOULD when latency is important
- SHOULD NOT if there is obviously sufficient capacity to satisfy demand
2 parameters for availability modeling
- failure rates of components
- recovery time of components
Basic probabilities to know
P(A and B) = P(A)*P(B)
P(A or B) = P(A) + P(B) - P(A and B)
2 main purposes of a quality attribute checklist
- checking requirements
- auditing
2 aspects of a checklist
- product requirements
- process requirements
Intellectual basis of availability models
markov/statistical models
Intellectual basis of interoperability models
conceptual framework
Intellectual basis of modifiability models
-coupling an cohesion metrics
Intellectual basis of performance models
queuing theory and real time scheduling theory
Intellectual basis of testability models
component interaction metrics
7 ways to analyze quality attributes
- analytic models
- checklists
- thought experiments
- back-of-the-envelop analysis
- experiments
- simulations
- prototypes
What are the steps in thought-experiment analysis
- enumerate the steps of a use case
- at each step consider the mechanism being implemented to support a given quality requirement
- consider if the identified mechanism hinders the achievement of other quality attribute requirements
- record issues for later
what is back-of-the-envelope analysis
rough and non-precise analysis that can provide general understanding
2 types of tools that can help to perform experiments
request generators: create synthetic loads to test for scalability
monitors: perform non-intrusive resource usage detection
The main use for prototypes?
to explore design options
what are event-based simulators?
are used to simulate behavior of a system under various loads
which 3 forms of analysis are used in requirements?
-analytic models and back-of-the-envelope to plan for capacity
checklists to ensure the requirements are correct
which 4 forms of analysis are used in design?
- prototypes
- analytic models and simulations to understand bottlenecks
- checklist to determine if correct mechanism used
which form of analysis are used in implementation?
-experiments
which 2 forms of analysis are used after fielding?
- experiments
- monitors to determine actual behavior