Software quality
When it comes to writing software there is always the issue of software quality. How do we decide whether a system is of high quality or not? What do we mean by quality anyway?
Quality in software systems
Businesses are relying more and more on software for running critical business operations. Naturally, every business owner wants his software stable and reliable. Consider other critical systems such as aircraft control systems. I’m pretty sure that you’d want a quality flight control system on board your next flight. Would you board the aircraft if your software was running on the aeroplane?
Another reason we want to ensure quality from an early stage is that bugs and defects accumulate over time. If we fail to correct quality issues from the beginning of the project, there is simply no easy way that we are going to make up for it in the end. Quality must be considered right from the start.
What is software quality?
The quality of a system is partly determined by the user-experience of a system. If it’s user-friendly, stable and reliable it’s quality is perceived as high. If it fails often and produce incorrect information then the system will be perceived as of poor quality. This is known as external quality.
As important as external quality is, internal quality is just as important. Internal quality is about the maintainability and extensibility of the source code. A system that is very difficult to extend and maintain will not be perceived as high quality.
Measuring software quality is tricky and there are two ways in which it is measured, viz.,
- Direct where the quality is measured directly or observed directly;
- Indirect where the quality is measured by some indicator of the underlying quality.
Quality factors
Before writing a software system it is necessary to decide on some quality factors. It is the only way to know if we succeeded in delivering a system that is of a specified and agreed quality. We specify the quality factors in terms of the following:
- Definition of the quality characteristic;
- Scale of units in which the quality is measured;
- Test that will be conducted to measure the quality;
- Minimum acceptable which is the absolute minimum for this quality characteristic to pass;
- Target range which is the quality number we expect to reach;
- Now which is the current quality number.
For example, reliability can be made up the following quality factors, viz., availability, mean time between failures, failure on demand and support activity. Related to this is maintainability of which “changeability” and “analysability” are key components.
ISO 9126
According to this standard there are three parties who are interested in the quality of the software, viz.,
- Acquirers who are the people obtaining the software;
- Developers who are the people making the software;
- Independent evaluators who assess the quality of the software.
ISO 9126 defines six external software quality measures, viz.,
- Functionality is the functions that the software need to offer to satisfy user needs;
- Reliability is the ability of the software to keep up its level of performance;
- Usability is the effort needed to use the software;
- Efficiency is the physical resources used when executing the software;
- Maintainability is the effort required to make changes to the software;
- Portability is the ability to transfer the software between environments.
In order to measure the quality between different software systems we have to judge the importance of each quality measure for the application in question. We then select the external quality measures that are relevant to the selected quality measures and create a mapping for the measurements indicating the quality rating, such as:
After that we identify the relevant internal measurements and the intermediate products in which they appear. In other words, the source code must be evaluated and rated according to the set out quality measurements. To derive the final quality number for the systems, we combine the ratings for each system and compare them.
References
- Hughes, B. & Cotterell, M. 2009. Software Project Management, 5e. Berkshire: McGraw-Hill Education.



leave a comment