Performance, scalability and reliability determine a system's commercial success. Other major factors are usability, the number of users and the total cost of system ownership.
Fastwerkz are Australia’s leading team of experts in software performance engineering (SPE), a deeply technical discipline. We supply software performance engineering capability with a unique perspective not present in day-to-day development teams.
What is Software Performance engineering (SPE)?
Performance is a pervasive quality of software systems; everything affects it, from the software itself to all underlying layers, such as operating system, middleware, hardware, communication networks, etc.
Performance can be classified into three main categories:
- Speed | Does the application respond quickly enough for the intended users?
- Scalability | Will the application handle the expected user load and beyond?
- Stability | Is the application stable under expected and unexpected user loads?
SPE is the process by which the software / system is architected, designed, tested, tuned / optimised with the intent of realising the required performance. The process aims to optimise the most important application performance traits and user experience.
How is it applied in the context of a software development process?
SPE uses a systematic, quantitative approach to constructing software systems that meet performance requirements. SPE prescribes principles for creating responsive software, the data required for evaluation, procedures for obtaining performance specifications, and guidelines for the types of evaluation to be conducted at each development stage. It incorporates models for representing and predicting performance as well as a set of analysis methods.
SPE uses deliberately simple models of software processing with the goal of using the simplest possible model that identify problems with the system architecture, design, or implementation plans. It is relatively easy to construct and solve these models to determine whether the proposed software is likely to meet performance goals.
As the software development process proceeds, we refine the models to more closely represent the performance of the emerging software and re-evaluate performance.
Can SPE be easily integrated into all software development processes?
SPE has been used with traditional process models, such as the waterfall model. It works especially well with iterative, incremental processes such as the Unified Process and Agile development methods.