The Role of Performance

The performance of a software system is highly important quality which is used to indicate whether a system or component accomplishes its designated functions within given constraints, such as speed, throughput, resource consumption, etc.

Performance problems often significantly impact the project’s ultimate success or failure. To understand the practical importance of performance characteristic let’s have a look at some of the performance indices and issues that may arise.

Response Time (i.e. Latency + Processing Time)

Response Time is the amount of time system takes to react to user request or the delay between request and completion of an operation. This is measure of how fast the system is. High response time system is likely to be rejected by all users because of unbearably slow reaction to user requests.

Resource consumption

Amount of memory or disk space consumed by the application to perform a given functionality. The application which has a memory leaks or runs out of disk space rapidly might crash unexpectedly, stop responding, etc.

Throughput or Capacity

The highest level of load system can take and handle without significant increase in response times or decrease in stability. Indicates system’s ability to maintain its level of operation, e.g. number of transactions per second. Low throughput usually leads to high cost.

Stability or Reliability

Property of a system which indicates its ability to maintain its level of operation under stated conditions for a specified time. It’s deeply connected to the fault tolerance property which measures whether a system is able to continue operating properly when a fault(one or many) is happening or has already happened. Poor stability affects performance both from the user’s point of view and actual physical performance(errors handling, possible rollbacks, retries, etc.)

Scalability

This is the measure that shows how your system responds after adding additional hardware. A system is considered as scalable if it’s performance improves after hardware is added, proportionally to the capacity added. Poor scalability can result in poor system performance in case it gets more popular and the demand exceeds capacity.

The Role of Non-functional Requirements

Non-functional requirements, such as performance, can easily be overlooked when customers and requirements elicitors focus too much on the functionality that the software development team needs to deliver. As a result – performance degradation in production, decreased productivity, increased hardware/development costs, and damaged customer relations.

Enjoy your day and read more articles about performance here!