Chapter 2: SPE Overview Flashcards
What is Software Performance Engineering?
A systematic, quantitative approach to constructing software systems that meet performance objectives.
What are some benefits of using SPE early in the lifecycle?
* Don’t need to throw out bad designs after they’ve been written * Improved quality & usefulness of the resulting SW product as a result of sound design choices * Cost-control with respect to the hardware required to implement the product * Enhanced productivity during implementation, testing, and early operational stages as sufficient computing power is made available
The first step of SPE is “assess performance risk”. Explain this step.
Assess the performance risk to determine how much effort to put into performance engineering. Minimal effort can happen when: * The project is similar to a previous effort * The project is not important for mission or economic survival * The project will have low resource utilization Otherwise, a more significant SPE effort is required.
What are the critical use cases of a system?
The use cases that are important to the operation of the system, or are important to the responsiveness as seen by the user. Critical use case selection is risk driven
What are key performance scenarios?
As it is unlikely that the scenarios from each critical use case will be important from a performance perspective, key performance scenarios are identified. Key performance scenarios are executed frequently, are critical to the perceived performance of a system, and correspond to a workload.
What is workload intensity?
Workload intensity specifies the level of usage for the scenario (arrival rate) i.e. the workload intensity of a customer transaction is the number of customer transactions/their arrival rate during the peak period
What are performance objectives?
A specification of quantitative criteria for evaluating performance characteristics of a system under development - response time, throughput, or constraints on resource usage i.e. 30 seconds or less to complete an end-to-end ATM transaction
What are performance models?
Execution graphs and sequence diagrams used to represent software processing steps
What is this figure called, and what does it represent?
It is a sequence diagram, and represents the real process that happens between a user, a device, and a backend (database) server.
What is this figure called, and what does it represent?
An execution graph, and it indicates the processes or functions that must take place in a given sequence of operations.
What are software resource requirements?
The computational needs that are meaningful from a software perspective
i.e. number of screens (login screen, payment screen, etc)
number of interactions from ATM to host bank
number of log entries written
delay in cash dispenser or receipt printing
What are computer resource requirements?
Computer resource requirements map the software resource requirements onto the amount of service key devices in the execution environment
i.e. types of processors/devices (CPU, disk, display, delay), quantity, speed
If a performance model indicates that there are problems, what are the two alternatives available to you?
- Modify the product concept: look for feasible cost-effective alternatives to satisfy the use case
- Revise performance objectives: If no feasible alternative exists, modify performance goals to affect reality
What is model verification? What is model validation?
Model verification and validation are ongoing activities that proceed in parallel with construction and evaluation of models
Verification is aimed at determinining whether the model predictions are an accurate reflection of the software’s performance
Validation is concerned with determining whether the model accurately reflects the execution characteristics of the software
What is the simple model strategy?
The simple-model strategy leverges the SPE effort to provide rapid feedback on the performance of the proposed software
One starts with the simplest possible model that identifies problems with the system architecture, design, or implementation plans