Quality concerns and measures should be at the heart of any worthwhile software project with the aim of producing software that is of high quality in terms of its design and operation. As software gets more and more complicated having to model the complexity of real life and business activities, it will be more and more difficult to continuously and systematically develop and produce high quality software. It is therefore vital that we place at the centre and focus of the software development projects and implement a practical and systematic set of measures, techniques and principles to sustain a quality-based culture of software development to produce software that is of high quality.
The top priority in every software development project should be the quality of the end product. In software engineering the quality can refer to both structural and functional aspect of the product. The functional quality refers to how well the product implements the design and the requirement specification of the product. The structural quality on the other hand refers to the non-functional requirements of the product and reflects the quality of the design and structure of the product in terms of measures such as robustness, efficiency and maintainability.
The key question is therefore how do we measure and evaluate a software product. If there are to be software product of high quality, there needs to be scientific ways of measuring the product. Over the past decades there have been many studies to produce a set of measurement principles for evaluating software products. These are discussed in the following section.
What is quality?
Although it seems that every one knows what quality is, it is extremely difficult to define a universally acceptable definition for it. That is because quality is a subjective and conceptual attribute that is therefore non-universal. Nevertheless there have been attempts buy different organizations and groups to offer a universally acceptable definition for it. The consortium for IT Software Quality (CISQ) defines five attributes that reflect a measure of the software quality. These are:
Reliability: A measures the level of risk and the likelihood of potential application failures.
Efficiency: A measure of the design and architecture of the application at execution time.
Security: A measure of the of the potential security faults due to poor source code and architecture.
Maintainability: A measure of adaptability, portability and transferability of the application
Size: A measure of the size of the source code
There are a number of measurement techniques to measure the quality attributes stated above.
Software Quality Measurement
There a different techniques and methods for measuring software quality depending on what attributes is to be measured. As discussed above there are two distinct quality type each of which requires its own measurement method.
Software Quality Improvement
Business Process Management (BPM)
Business Intelligence and Data Mining
Service Oriented Architecture (SOA)
Agile Development Methodology
Experimental Software Engineering
Analytics and Big Data Technologies
Provision of training services (lectures, seminars and training courses) on a range of software engineering technologies. Please see the details.