software quality management quality assurance, quality control, quality engineering ronan...

23
Software Quality Management Quality Assurance, Quality Control, Quality Engineering Ronan Fitzpatrick School of Computing, Dublin Institute of Technology. April 2007

Post on 20-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Software Quality Management

Quality Assurance, Quality Control, Quality Engineering

Ronan FitzpatrickSchool of Computing, Dublin Institute of Technology.

April 2007

Software Quality Management

Functions of software quality Software Quality Assurance Software Quality Engineering Software Quality Control

Software Quality Assurance

Quality assurance: A planned and systematic pattern of all

actions necessary to provide adequate confidence that the item or product conforms to established technical requirements.

(IEEE Std 730-1998)

Assuring that processed are in place that will result in a quality software product Throughout the entire life cycle.

Software Quality Assurance The function of software quality that

assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented.

NASA

Software Quality Assurance

Subsists in the Quality Management Vision Quality Manual Standards ISO, CMM Audits for certification and accreditation

Software Quality Assurance

The goal of Software Quality Assurance is to reduce the risks Technical risks

Will not perform as intended Will be difficult to operate and maintain

Programmatic risks Cost overrun Schedule delay

Software Quality Assurance Advantages

Improved product quality Reduced cost of development Improved time to market Improved staff

productivity/satisfaction Improved customer satisfaction Improved perception of organisation Improved competitive advantage.

Software Quality Engineering The function of software quality that

assures that quality is built into the software by performing analyses, trade studies, and investigations on the requirements, design, code and verification processes and results to assure that reliability, maintainability, and other quality factors are met.

NASA

Doing

Software Quality Engineering

Alternative definition

Software Quality Engineering Quality engineering

Best engineering and development practice Measurement Testing (Unit, integration, system and

acceptance) Focused on all quality factors Test results Walk-through (who was involved and what was

discovered) Acceptance (all requirements are as expected) Software tool confirming tests were executed Management signoff

Best Usability practice and testing

Software Quality Control

Quality control Activities carried out to ensure that a

component of a quality factor is present in a software system and its documentation.

Pressman (1994,p560)

Specific to a particular software project

Software Quality Control The function of software quality that

checks that the project follows its standards, processes, and procedures, and that the project produces the required internal and external (deliverable) products.

NASA

Quality Control

Associated with control we have: power, authority, responsibility

Definitions To test, to check, to verify To direct, to command To correct, to change To spend To monitor, to record, to decide

Quality Control

Project control uses a repeating strategy of monitoring project progress at set intervals, gathering data relating to the progress, analysing that data to ensure that the project is still on course relative to the original plan and making appropriate decisions to ensure the project stays on course.

Change project to quality

Software Quality Control

Associated with Validation

‘Building the right product’ Requirements specification

Verification ‘Building the product right’

Documented development process was followed.

Software Quality Control Reminder - Control is applied to

Product Quality factors; good enough quality Design Coding practice Source code control and best practice Code reviews Change management Configuration and release management Usability

Software Quality Control Staff control Schedule control Budget control

Another view Software Quality Assurance (SQA) consists of a

means of monitoring the software engineering processes and methods used to ensure quality. It does this by means of audits of the quality management system under which the software system is created. These audits are backed by one or more standards, usually ISO 9000.

It is distinct from software quality control which includes reviewing requirements documents, and software testing. SQA encompasses the entire software development process, which includes processes such as software design, coding, source code control, code reviews, change management, configuration management, and release management. Whereas software quality control is a control of products, software quality assurance is a control of processes.

Wikipedia (2008)

Another view Software Quality Control (also known as

Verification and Validation (software)) consists of a means of controlling the quality of software engineering products. It does this by means of tests of the software system. These tests can be unit tests, integration tests, or system tests. It also includes the formal proof of individual pieces of code, and the review of documents and code.

It is distinct from software quality assurance which includes audits of the quality management system against a standard. Whereas software quality control is a control of products, software quality assurance is a control of processes.

Wikipedia (2008)

Software Quality Management

Software Quality Assurance

Exercise

Compare with ISO 12207

Conclusion

Functions of software quality Software Quality Assurance Software Quality Engineering Software Quality Control

Questions?