Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter # 1 Overview of Software Quality Assurance

Similar presentations


Presentation on theme: "Chapter # 1 Overview of Software Quality Assurance"— Presentation transcript:

1 Chapter # 1 Overview of Software Quality Assurance
435-INFS-3 Software Quality Assurance Chapter # 1 Overview of Software Quality Assurance Software Quality Assurance from Theory to Implementation by Daniel Galin Prepared by: S.Hashmi

2 What is Software? Software is:[IEEE definition]
Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. The IEEE definition of software, which is almost identical to the ISO definition ,lists the following four components of software: ■ Computer programs (the “code”) ■ Procedures ■ Documentation ■ Data necessary for operating the software system Computer programs (the “code”) are needed because, obviously, they activate the computer to perform the required applications.

3 Continue Procedures are required, to define the order and schedule in which the programs are performed, the method employed, and the person responsible for performing the activities that are necessary for applying the software. Various types of documentation are needed for developers, users and maintenance personnel. The development documentation (the requirements report, design reports, program descriptions, etc.) allows efficient cooperation and coordination among development team members and efficient reviews and inspections of the design and programming products. The user’s documentation (the “user’s manual”, etc.) provides a description of the available applications and the appropriate method for their use. The maintenance documentation (the “programmer’s software manual”, etc.) provides the maintenance team with all the required information about the code, and the structure and tasks of each software module. This information is used when trying to locate causes of software failures (“bugs”) or to change or add to existing software. Data including parameters, codes and name lists that adapt the software to the needs of the specific user are necessary for operating the software

4 Software quality – IEEE definition
Software quality is: 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system, component, or process meets customer or user needs or expectations. The above definition offers two alternative definitions of software quality, held by the founders of modern quality assurance, Philip B. Crosby and Joseph M. Juran. Each definition reflects a different conception of software quality: Quality means conformance to requirements” (Crosby, 1979). (1) Quality consists of those product features which meet the needs of customers and thereby provide product satisfaction. (2) Quality consists of freedom from deficiencies” (Juran, 1988). Crosby’s definition of software quality refers to the degree to which the written software meets the specifications prepared by the customer and his professional team. This means that errors included in the software specification are not considered and do not reduce the software quality, a characteristic that can be considered the approach’s deficiency.

5 Continue Juran’s definition is aimed at achieving customer satisfaction, and views the fulfillment of customers’ real needs as the true goal of software quality Software quality – Pressman’s definition Pressman’s definition suggests three requirements for quality assurance that are to be met by the developer: ■ Specific functional requirements, which refer mainly to the outputs of the software system. ■ The software quality standards mentioned in the contract. ■ Good Software Engineering Practices (GSEP), reflecting state-of-the-art professional practices, to be met by the developer even though not explicitly mentioned in the contract. In effect, Pressman’s definition provides operative directions for testing the degree to which the requirements are met. Quality Control (QC) is a system of routine technical activities, to measure and control the quality of the inventory as it is being developed The QC system is designed to: (i) Provide routine and consistent checks to ensure data integrity, correctness, and Completeness

6 Continue (ii) Identify and address errors and omissions;
(iii) Document and archive inventory material and record all QC activities. 1) Quality of Design: Quality of design refers to the characteristics that designers specify for an item. In software development, quality of design encompasses requirements, specifications, and the design of the system. 2) Quality of conformance is the degree to which the design specifications are followed during manufacturing User satisfaction = Compliant product + Good quality + Delivery within budget But if the user isn’t satisfied, nothing else really matters Cost of Quality-> The cost of quality includes all costs incurred in the pursuit of quality or in performing quality-related activities. Cost of quality may be divided into costs associated with prevention, appraisal, and failure. Prevention costs include Quality planning Formal technical reviews Test equipment Training

7 Continue Appraisal costs include activities to gain insight into product condition the “first time through” each process Failure costs are those that would disappear if no defects appeared before shipping a product to customers. Failure costs may be subdivided into internal failure costs and external failure costs. Internal failure costs are incurred when we detect a defect in our product prior to shipment. Internal failure costs include • Rework • Repair • Failure mode analysis External failure costs are associated with defects found after the product has been shipped to the customer. Examples of external failure costs are Complaint resolution Product return and replacement Help line support, Warranty work Quality Assurance: The main objective of quality assurance is to minimize the cost of guaranteeing quality by a variety of activities performed throughout the development and manufacturing processes/stages

8 Continue These activities prevent the causes of errors, and detect and correct them early in the development process. As a result, quality assurance activities substantially reduce the rate of products that do not qualify for shipment and, at the same time, reduce the costs of guaranteeing quality in most cases. Software quality assurance – The IEEE definition Software quality assurance is: 1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. 2. A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with quality control. The objectives of SQA activities The objectives of SQA activities refer to the functional, managerial and economic aspects of software development and software maintenance Software development (process-oriented): 1. Assuring an acceptable level of confidence that the software will conform to functional technical requirements

9 Continue 2. Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements. 3. Initiating and managing of activities for the improvement and greater efficiency of software development and SQA activities. Software maintenance (product-oriented): 1. Assuring with an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements. 2. Assuring with an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements. 3. Initiating and managing activities to improve and increase the efficiency of software maintenance and SQA activities Software Quality Assurance vs. Software Quality Control

10 Software Quality Assurance vs. Software Quality Control
Criteria Software Quality Assurance (SQA) Software Quality Control (SQC) Definition SQA is a set of activities for ensuring quality in software engineering processes (that ultimately result in quality in software products). The activities establish and evaluate the processes that produce products. SQC is a set of activities for ensuring quality in software products. The activities focus on identifying defects in the actual products produced. Focus Process focused Product focused Orientation Prevention oriented Detection oriented Breadth Organization wide Product/project specific Scope Relates to all products that will ever be created by a process Relates to specific product Activities Process Definition and Implementation Audits Training Reviews Testing


Download ppt "Chapter # 1 Overview of Software Quality Assurance"

Similar presentations


Ads by Google