OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
OHT 2.2 Galin, SQA from theory to implementation © Pearson Education Limited 2004 What Are Standards A standard might simply be defined as 'a set of rules for ensuring quality'. A standard is an agreed way of doing something. It could be about making a product, managing a process, delivering a service or supplying materials – standards can cover a huge range of activities undertaken by organizations and used by their customers.
OHT 2.3 Galin, SQA from theory to implementation © Pearson Education Limited 2004 What Are Standards Tasks performed from a standard are know to use proved way of achieving quality Standards set out what are widely accepted as good principles, practices, or guidelines in a given area Usually standards are published documents setting out specifications and procedures designed to ensure products, services and systems are safe, reliable and consistently perform the way they were intended to. They establish a common language which defines quality and safety criteria.
OHT 2.4 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Benefits of standards to software quality The ability to apply methodologies and procedures of the highest professional level Better mutual understanding and coordination among development teams and also between development and maintenance teams. Greater cooperation between the software developer and external participants in the project based on the adoption of standards as part of the contract.
OHT 2.5 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Benefits of standards to software quality Decreased number of defects and errors in software Less rework as a result of less software defects Reduced development and maintenance cost Increased software reliability Increased customer satisfaction Happier software practitioners
OHT 2.6 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Organizations involved in SQA Standards Development Most prominent developers of SQA standards: IEEE (Institute of Electric and Electronic Engineers) Computer Society ISO (International Standards Organization) DOD (US Department of Defense) ANSI (American National Standards Institute) IEC (International Electrotechnical Commission) EIA (Electronic Industries Association) 6
OHT 2.7 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality assurance standards Several standards that are related to software quality assurance are available. Examples are: IEEE: Institute of Electrical and Electronics Engineers Computer Society –Software Engineering Standards Committee (e.g. –IEEE Std Standard for Software Safety Plans) –Quality measurement: IEEE Std Standard for Software Quality Metrics Methodology ISO: International Organization for Standardization (e.g. –ISO/IEC :1989 Vocabulary-Part 7: Computer Programming) –ISO Quality Management and Quality Assurance Standards - Part 3: Guidelines for the application of 9001 to the development, supply, installation and maintenance of computer software DOD: Department of deffence – USA –CMMi: Capability maturity level IEC: International Electrotechnical Commission (e.g. IEC –Functional Safety - Safety-Related Systems)
OHT 2.8 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality assurance standards by tasks General project management: IEE Std –Standard for Software Project Management Plans Producing plans: IEEE Std Guide for –Software Verification and Validation Plans Lifecycle: ISO/IEC WD –System Life Cycle Processes Requirements: IEEE Std –Guide for developing System Requirements Specifications
OHT 2.9 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software quality assurance standards by tasks Maintenance: IEEE Std –Standard for Software Maintenance Productivity: IEE Std –Standard for Software Productivity Metrics
OHT 2.10 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Certification of Standards Why organizations needs certification for standards they apply ? –To enable a software development organization to demonstrate consistent ability to assure acceptable quality of its software products or maintenance services. –In other words, Certification is a meaning that standards are applied correctly and completely
OHT 2.11 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Certification of Standards –Certification also help to obtain more business because many customers require that organizations obtain certain standards. –Certification is granted by an external body.Third party certification bodies provide independent confirmation that organizations meet the requirements of a certain standard and hence a certificate is given to that organizations
OHT 2.12 Galin, SQA from theory to implementation © Pearson Education Limited 2004 ISO 9000 ISO 9000 is one of the popular standards. It is a written set of standard which describe and define the basic elements/clauses of the quality system needed to ensure that an organization’s products/or services meet or exceed customer needs and expectations ISO 9000 deals with the fundamentals of quality management systems ISO 9000 is based on documentation and is based on the following: -Document what you do; -Do what your document; -Prove it and improve it 12
OHT 2.13 Galin, SQA from theory to implementation © Pearson Education Limited 2004 ISO 9000 Any organization wishing to adopt ISO standrds should start be using ISO 9000 and then select the appropriate standard according to the type of their business The ISO 9000 standard is continually being revised by standing technical committees and advisory groups, who receive feedback from those professionals who are implementing the standard. The last version Is ISO
OHT 2.14 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Other ISO Standards ISO 9001 is the broadest standard and provides a model for design, development, production, installation and servicing ISO 9002 is limited to production, installation and servicing ISO 9003 is further limited to inspection and testing ISO is further limited for software quality A company should first use ISO 9000 to design and to implement a quality system. Once the quality has been installed, the company may use the quality assurance models of ISO 9001, ISO 9002, or ISO 9003 to demonstrate the adequacy of the quality system. 14
OHT 2.15 Galin, SQA from theory to implementation © Pearson Education Limited 2004 ISO ISO , the guidelines offered by ISO, represent implementation of the ISO 9000 standards to the special case of software development and maintenance. ISO is a standard for quality software systems. It is very short (approximately 30 pages) and very high level (abstraction). It explains what to do and not how to do !! It can not be implemented until ISO 9000 is succesfully implemented 15
OHT 2.16 Galin, SQA from theory to implementation © Pearson Education Limited 2004 ISO : Requirements The ISO includes about 20 requirements that relate to various aspects of software quality management classified into the following five groups: –Quality management system –Management responsibilities –Resource management –Product realization –Measurement, analysis and improvement 16
OHT 2.17 Galin, SQA from theory to implementation © Pearson Education Limited 2004 ISO : Principal areas of quality focus management responsibility quality system requirements contract review requirements product design requirements document and data control purchasing requirements customer supplied products product identification and traceability process control requirements inspection and testing 17 control of inspection, measuring, and test equipment inspection and test status control of nonconforming products corrective and preventive actions handling, storage, and delivery control of quality records internal quality audit requirements training requirements servicing requirements statistical techniques
OHT 2.18 Galin, SQA from theory to implementation © Pearson Education Limited 2004 IEEE 730:2002 Standard for software quality Plan This is another example of a standard that is used widely in software quality assurance The standard specifies the format and content of software quality assurance plans It descries in details how a software quality assurance plan can be implemenred
OHT 2.19 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Other IEEE standards Quality measurement: IEEE Std Standard for Software Quality Metrics Methodology IEEE Std Guide for Software Verification and Validation Plans IEEE Std Guide for Developing System Requirements Specifications And Much more
OHT 2.20 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Summary A standard might simply be defined as 'a set of rules for ensuring quality'. Standards improve software quality by adopting highest professional procedures There are several benefits for using standards Several organizations produce different standards Certification is important to ensure that standard has been applied correctly and adequately