Non Functional Requirements – Performance

Requirements, especially non-functional ones, need to be SMART:
  • Specific
  • Measurable
  • Attainable (Achievable, Actionable, Appropriate)
  • Realisable (Realistic)
  • Time-bound (Timely, Traceable)
For performance requirements (should these be more correctly called performance goals?), the following aspects are most relevant:
  1. Response time – how fast the system responses to requests
  2. Throughput handling – how many requests the system can handle
  3. Concurrency – how many threads/ users can operate simultaneously
To specify performance requirements, consider the following:
  1. Expected daily load: number of invocations/ day. E.g. System is expected to receive (on average) 500 requests everyday
  2. Expected peak load: max invocations / day. E.g. System is expected to hit a peak load of 1000 requests on certain days
  3. (Maximum) Response Time: invocations need to respond within certain timeframe. E.g. System needs to respond to requests within 5 seconds
The last point (response time) deserves further explanation. As response time is highly dependent on the environment and tends to fluctuate, it makes more sense to specify this requirements in terms of average and/ or percentile (see this page)

One may specify the Response Time this way:
Average Response Time3 seconds or less
95th percentile5 seconds or less

Comments

Rachel Leong said…
Traditionally, it has always been Performance Requirements and it forms a section in the Requirements Document.

Popular posts from this blog

Understanding ITIL Service Management the UML way…

Apache Web Server Troubleshooting