Software quality management
Encyclopedia
Definitions
- The aim of Software Quality Management (SQM) is to manage the quality of softwareSoftware qualityIn the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...
and of its development process. - A quality product is one which meets its requirements and satisfies the user
- A quality culture is an organizational environment where quality is viewed as
everyone’s responsibility.
Introduction
Integrating SQM into the development lifecycle from day 1 is a way to ensure the successful development of a quality product.Description
The computer scientist Ian Sommerville uses SQM as an umbrella-term that includes the following quality layers:- Software Quality Assurance (SQA) layer
An Organizational quality guide of
- Standards, regulations, and procedures to produce, verify, evaluate and confirm work
products during the software development lifecycle - Incorporated knowledge base of best practices
- Off-the-shelf software tools selected to apply the above
- Standards, regulations, and procedures to produce, verify, evaluate and confirm work
- Software Quality Plan (SQP) layer
A project level quality plan written by each project for declaring project commitment to follow
an applicable set of standards, regulations, procedures and tools during the development
lifecycle. In addition, SQP should contain quality goals to be achieved, expected risks and
risk management. SQP sources are derived from
- SQA components that are adopted as is or customized to the project's needs
- New procedures, standards and tools complementing missing or not-applicable
SQA components that have been written in particular for the project,
or imported from outside the organization.
- Software Quality Control (SQC) layer
Ensures in-process that both SQA and SQP are being followed by the development teams.
SQC activities include
- Mentoring how to produce artifacts, such as well-defined engineering documents
using standard templates - Mentoring how to conduct standard processes, such as quality reviews
- Perform in-process quality reviews to verify, evaluate and confirm artifacts
- Verify and evaluate to improve the use of methods, procedures and adopted software tools
- Mentoring how to produce artifacts, such as well-defined engineering documents
Any deviation of an SQP from SQA should be justified by the project manager and be confirmed
by the company management.
SQM Roles
- to ensure that the required level of quality is achieved in a software product
- to encourage a company-wide "Quality Culture" where quality is viewed as
everyone’s responsibility - to reduce the learning curve and help with continuity in case team members change positions
within the organization - to enable in-process fault avoidance and fault prevention through proper development
Many people use the terms SQM and SQA (Software quality assurance
Software quality assurance
Software quality assurance consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as...
) interchangeably.