21 Components of SQA

The SQA system – an SQA architecture

 

An SQA system combines a wide range of components to challenge the multitude of sources of software errors and to achieve an acceptable level of software quality. SQA system components can be classified into six classes:

  • Pre-project quality components
  • Project life cycle quality components
  • Infrastructure error preventive and improvement components
  • Software quality management components
  • Standardization, certification and SQA assessment components
  • Organizing for SQA – the human components

 

Fig 1: The SQA system – an SQA architecture

The SQA Pre-project components improves the preparatory steps taken prior to initiating work on the project. The two main components are:

  •  Contract review.
  • Development and quality plans.

Contract review activities include:

  • Clarification of the customer’s requirements
  • Review of the project’s schedule and resource requirement estimates
  • Evaluation of the professional staff’s capacity to carry out the proposed project
  • Evaluation of the customer’s capacity to fulfill his obligations
  • Evaluation of development risks.

Once a software development contract has been signed or a commitment made to undertake an internal project for the benefit of another department of the organization, a plan is prepared of the project (“development plan”) and its integrated quality assurance activities (“quality plan”). These plans include additional details and needed revisions based on prior plans that provided the basis for the current proposal and contract.

The main issues treated in the project development plan are:

  • Schedules
  • Required manpower and hardware resources
  • Risk evaluations
  • Organizational issues: team members, subcontractors and partnerships
  • Project methodology, development tools, etc.
  • Software reuse plans.

The main issues treated in the project’s quality plan are:

  • Quality goals, expressed in the appropriate measurable terms
  • Criteria for starting and ending each project stage
  • Lists of reviews, tests, and other scheduled verification and validation activities.

The project life cycle is composed of two stages: the development life cycle stage and the operation–maintenance stage. Several SQA components enter the software development project life cycle at different points.

 

The main components are:
  • Reviews
  • Expert opinions
  • Software testing
  • Software maintenance
  • Assurance of the quality of the
  • subcontractors’ work and the customer supplied parts.
In Formal Design Reviews (DRs),the design phase of the development process produces a variety of documents.The developer continues to the next phase of the development process only on receipt of formal approval of these documents. Adhoc committees examine the documents presented by development teams and carry out formal design reviews.Expert opinions support quality assessment efforts by introducing additional external capabilities into the organization’s in-
house development process.Turning to outside experts may be particularly useful in the following situations:
  •  Insufficient in-house professional capabilities in a given area.
  • In small organizations, in many cases it is difficult to find enough suitable candidates to participate in the design review teams. In such situations, outside experts may join a DR committee or, alternatively, their expert opinions may replace a DR.
  • In small organizations or in situations characterized by extreme work pressures, an outside expert’s opinion can replace an inspection.
  • Temporary inaccessibility of in-house professionals (waiting will cause substantial delays in the project completion schedule).
  • In cases of major disagreement among the organization’s senior professionals, an outside expert may support a decision.

Software tests are formal SQA components that are targeted towards review of the actual running of the software. Software testing programs are constructed from a variety of tests, some manual and some automated. The test report includes a detailed list of the faults detected and recommendations about the performance of partial following a subsequent round of corrections based on the test findings.

 

Software maintenance services vary in range and are provided for extensive periods, often several years. Maintenance services fall into the following categories:

  • Corrective maintenance – User’s support services and correction of software code and documentation failures.
  • Adaptive maintenance – Adaptation of current software to new circumstances and customers without changing the basic software product
  • Functionality improvement maintenance – The functional and performance- related improvement of existing software, carried out with respect to limited issues.

The motivation for turning to external participants lies in any number of factors, ranging from the economic to the technical to personnel related interests. Special software assurance efforts are required to establish effective controls over the external participant’s work.

The main goal of Infrastructure Components for Error Prevention and Improvement is the prevention of software faults, the lowering of software fault rates, and improvement of productivity. This class of SQA components includes:

  • Procedures and work instructions
  • Supporting Quality devices
  • Staff training, retraining, and certification
  • Preventive and corrective actions
  • Configuration management
  • Documentation control

Procedures are planned to be generally applicable and to serve the entire organization. Work instructions provide detailed directions for the use of methods that are applied in unique instances and employed by specialized teams. Because they reflect the organization’s past experience, constant care should be taken to update those procedures to current technological, organizational, and other conditions.

 

One way to combine higher quality with higher efficiency is to use supporting quality devices, such as templates and checklists. They contribute to meeting SQA goals by:

  • Saving the time required to define the structure of the various documents or prepare lists of subjects to be reviewed.
  • Contributing to the completeness of the documents and reviews.
  • Improving communication between development team and review committee members by standardizing documents.

Within the framework of SQA, keeping an organization’s human resources knowledgeable and updated at the level required is achieved mainly by:

  • Training new employees and retraining those employees who have changed assignments.
  • Continuously updating staff with respect to professional developments and the in-house,hands-on experience acquired.
  • Certifying employees after their knowledge and ability have been demonstrated.

Preventive and corrective actions include:

  • Implementation of changes that prevent similar failures in the future.
  • Correction of similar faults found in other projects and among the activities performed by other teams.
  • Implementing proven successful methodologies to enhance the probability of repeat successes.

The regular software development and maintenance operations involve activities that creates new versions of software. Different team members carry out these activities simultaneously. As a result, serious dangers arise, whether of misidentification of the versions or releases, loss of the records delineating the changes implemented, or loss of documentation. Configuration management deals with these hazards by introducing procedures to control the change process of documentation.

Documentation control functions refer mainly to customer requirement documents, contract documents, design reports, project plans, development standards, etc. Documentation control activities include:

  • Definition of the types of controlled documents needed
  • Specification of the formats, document identification methods, etc.
  • Definition of review and approval processes for each controlled document
  • Definition of the archive storage methods.

Managerial SQA components support the managerial control of software development projects and maintenance services.

 

Control components include:

  • Project progress control (including maintenance contract control)
  • Software quality metrics
  • Software quality costs.

The objective of project progress control components is to detect the appearance of any situation that induce deviations from the project’s plans and maintenance service performance.

Project control activities focus on:

  • Resource usage
  • Schedules
  • Risk management activities
  • The budget.

Among the software quality metrics available or still in the process of development, we can list metrics for:

  • Quality of software development and maintenance activities
  • Development teams’ productivity
  • Help desk and maintenance teams’ productivity
  • Software faults density Schedule deviations.

The quality costs incurred by software development and application are according to the extended quality costs model. With respect to the specific SQA strategy applied, analysis of software quality costs can direct SQA efforts to the improvement of activities that cause significant failures.

 

Quality Management Standards: These standards focus on what is required and leave the decision about how to achieve it to the organization. The most familiar examples of this type of standard are:

  • SEI CMM assessment standard
  • ISO 9001 and ISO 9000-3 standards

Project process standards are professional standards that provide methodological guidelines (dealing with the question of “how”) for the development team. Well-known examples of this type of standards are:

  • IEEE 1012 standard (IEEE Standard for System and Software Verification and Validation)
  • ISO/IEC 12207 standard (International Standard for Software Lifecycle Processes).

SQA components require an organizational base. This base includes the organization’s management, software testing personnel SQA units, professionals and other practitioners interested in software quality. The main objectives of the SQA organizational base are as follows:

  • To develop and support implementation of SQA components.
  • To detect deviations from SQA procedures and methodology.
  • To suggest improvements to SQA components.

SQA trustees are members of development and maintenance teams who have a special interest in software quality and are prepared to devote part of their time to these issues. Their contributions include:

  • Solving team or unit local quality problems.
  • Detecting deviations from quality procedures and instructions.
  • Initiating improvements in SQA components.
  • Reporting to the SQA unit about quality issues in their team or unit.

Software quality assurance systems differ among themselves, showing the flexibility inherent in the construction of such systems. Moreover, variations in the characteristics of the particular organizations using SQA systems are reflected in the considerations applied, which means that different organizations employ different SQA systems.

 

Factors affecting the use of the SQA components are:

 

(a) Organizational considerations

  • Type of software development clientele
  • Type of software maintenance clientele
  • Range of software products
  • Size of the organization
  • Degree and nature of cooperation with other organizations carrying   out related projects
  • Optimization objectives

(b) Project and maintenance service considerations

  • Level of complexity and difficulty
  • Degrees of experience with the project technology
  • Extent of software reuse in the new projects

  (c) Professional staff considerations

  • Professional qualifications
  • Level of acquaintance with team members

Summary

 

Software Quality Assurance (SQA) consists of a wide range of components that are employed to challenge the various sources of software errors and to achieve an acceptable level of software quality. The organizational base for SQA consists of organization’s management, software testing personnel SQA units, professionals and other practitioners interested in software quality. Organizational considerations, Project and maintenance service considerations and professional staff considerations are the various factors affecting SQA.