School of Computing, Dublin Institute of Technology. Software Quality Management Quality Assurance, Quality Control, Quality Engineering Ronan Fitzpatrick School 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 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 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 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: Definitions 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 Change project to quality 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.
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?