27 Cost of Software Quality

The commercial companies or public organizations requires economic evaluation of their quality assurance systems. Cost of software quality may be viewed as another class of software quality metrics, where financial values are used as the measuring tool. Quality metrics and costs of quality, both support management control and decision making process.

The major objectives of software quality metrics includes the management to achieve economic control over SQA activities and outcomes.

The specific objectives are:

  • Control organization-initiated costs to prevent and detect software errors.
  • Evaluation of the economic damages of software failures as a basis for revising the SQA budget.
  • Evaluation of plans to increase or decrease SQA activities or to invest in SQA infrastructure on the basis of past economic performance.

The classic quality cost model, developed in the early 1950s by Feigenbaum and others classifies costs related to product quality into two general classes: Costs of control include costs that are spent to prevent and detect software errors in order to reduce them to an accepted level. Costs of failure of control include costs of failures that occurred because of failure to prevent and detect software errors. The model further subdivides these classes into subclasses:

 

Costs of control: Prevention costs: Investments in quality infrastructure and quality activities that are not directed to a specific project or system. Appraisal costs: The costs of activities performed for a specific project or software system for the purpose of detecting software errors.

 

Costs of failure of control: Internal failure costs: Costs of correcting errors that have been detected by design reviews, software tests and acceptance tests and completed before the software is installed at customer sites. External failure costs: All costs of correcting failures detected by customers or the maintenance team after the software system has been installed.

Prevention costs include investments in establishing a software quality infrastructure, updating and improving that infrastructure as well as performing the regular activities required for its operation.

(a) Investments in development of SQA infrastructure components

  • Procedures and work instructions
  • Support devices: templates, checklists etc
  • Software configuration management system
  • Software quality metrics

(b) Regular implementation of SQA preventive activities:

  • Instruction of new employees in SQA subjects
  • Certification of employees

(c) Control of the SQA system through performance of:

  • Internal quality reviews
  • External quality audits
  • Management quality reviews

Appraisal costs are devoted to detection of software errors in specific projects or software systems.

 

Typical appraisal costs cover:

(a)  Costs of reviews:

  • Formal design reviews (DRs)
  • Peer reviews (inspections and walkthroughs) Expert reviews

(b)  Costs of software testing:

  • Unit, integration and software system tests
  • Acceptance tests (carried out by customers)

(c)   Costs of assuring quality of external participants by means of design reviews and software testing. These activities are applied to the activities performed by:

  • Subcontractors
  • Suppliers of COTS software systems and reusable software modules
  •  The customer as a participant in performing the project.

Internal Failure Costs consists of the Costs of redesign or design corrections subsequent to design review and test findings, Costs of re-programming or correcting programs in response to test findings, Costs of repeated design review and re- testing (regression tests). External failure costs entail the costs of correcting failures detected by customers or maintenance teams after the software system has been installed at customer sites. Typical external failure costs cover: Resolution of customer complaints during the warranty period. Correction of software bugs detected during regular operation. Correction of software failures after the warranty period is over even if the correction is not covered by the warranty.

 

In the extended model for cost of the software quality it analyses the software quality costs defined by the classic model which reveals that several costs of substantial magnitude are excluded. Typical software quality failure costs include:

  • Damages paid to customers as compensation for late completion of the project due to unrealistic scheduling.
  • Damages paid to customers in compensation for late completion of the project as a result of failure to recruit sufficient staff.

The element common to these two failures is that they result not from any particular action of the development team or any lack of professionalism; they are actually outcomes of Managerial failure.

 

Fig 1: Extended model for cost of software quality

Managerial preparation and control costs are associated with activities performed to prevent managerial failures or reduce prospects of their occurrence. Managerial failure costs can be incurred throughout the entire course of software development, beginning in the pre-project stage.

 

In order to apply a cost of software quality system in an organization, the following are required

  • Definition of a cost of software quality model and specification of cost items: the organization should select the classic or extended model.
  • Definition of the method of data collection for each cost item: use of Management Information Systems (MIS) in place.
  • Application of a cost of software quality system, including thorough follow up.
  • Actions taken in response to the model’s findings.

At a preliminary stage in a project, the organization has to choose its type of cost model – the classic or the extended model. Effectiveness of the selected model is determined to a great degree by its suitability for the organization or project of the cost items designed to be measured for the model. Each item should belong to one of the subclasses comprising the cost model. Once the list of software quality cost items is finalized, a method for collecting the relevant data must be determined.

 

One of the major issues raised at this stage is whether to develop an independent system for collecting data or to rely on the currently operating management information system (MIS). Implementation of a new cost of software quality system involves:

  • Assigning responsibility for reporting and collecting quality cost data.
  • Instruction of the team in the logic and procedures of the new system.

Application of a cost of software quality model is generally accompanied by problems which are caused due to inaccurate and/or incomplete identification and classification of quality costs. It can also be caused due to the negligent reporting by team members. Also biased reporting of software costs, especially of “censored” internal and external costs may also affect the cost of the software quality model.

 

Summary:

 

Cost of software quality indicates the economic assessment of software quality development and maintenance. Application of cost of software quality metrics enables management to achieve economic control over SQA activities and outcomes. The Classic model of Cost of Software Quality is compared with the extended model. Application of a cost of software quality model is generally accompanied by problems which are caused due to inaccurate identification of quality costs and collecting data on managerial costs.