2.4 KiB
| title | aliases | tags | ||
|---|---|---|---|---|
| 22-performance-and-security |
|
Performance requirements
- e.g., credit card system
- functional reqs
- sales authorised only for valid cards
- generate monthly statements
- performance requirements
- cards are validated quickly
- statements are accurate and generated on time
- quickly, accurate, and on time need to be operationalised, measured, and tested.
- functional reqs
Why are they important
- vital quality factor
- infosystems are wide and varied
- wide range of performance characteristics
Things to consider
-
can interact and conflict with each other
- accuracy vs speed
- speed vs space
- often a trade-off or compromise
-
selectig best developent techniques for taget system
- algorithms
- data structures
- languages and frameworkds
- constraints of target platform
- (devs machines are often more powerful)
- minimum requiremnts for system e.g., min specs for windows
- ...
-
impact of changing requirements, e.g., adding a new module
-
need to consider (often conflicting) organisational priorities
-
critical to unambiguously document and agree
Response time
-
what is quick
-
for most people
- < 0.1s: instant
- 0.1s to 1s: noticable
- 1s to 10s: slow
-
10s: user will probably switch tasks
-
affected by system workload: number of concurrent users, volume of data, etc vs available resources
-
most users really dislike variable response times (unpredicatbility)
-
example requiremen: "cards are validated within 2s"
- this implies 100%
- better: "95% of cards are validated within 2 s"
-
other consideration
- what is included in response time?
- what is the measurement period (of the system in general) (often varied workload changes performance)
- what is the acceptable error rate
Workload
-
system workload is almost never constant
- may may well defined peaks and troughs
- may be unpreditable
- peak vs typical vs minimum
-
differet transaction types
- read vs write transactions
- online vs batch
-
define workload requirements around use cases
-
e.g., " the system must be able to validate 1 million cards per day"
Scalability
- can the system scale to meet changing demand
- can it scale quickly enough
- elasticity particularly important to large public-facing systems
- can be difficult to test "for real"
- example requirement: "the system must be able to handle up to 2 million cards on a busy day"
Platform
- target for system deployment
- on prem
- cl