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.

Whereas software quality control is a control of products, software quality assurance is a control of processes.Software quality assurance is related to the practice of quality assurance in product manufacturing.

There are, however, some notable differences between software and a manufactured product. These differences stem from the fact that the manufactured product is physical and can be seen whereas the software product is not visible. Therefore its function, benefit and costs are not as easily measured. What's more, when a manufactured product rolls off the assembly line, it is essentially a complete, finished product, whereas software is never finished. Software lives, grows, evolves, and metamorphoses, unlike its tangible counterparts. Therefore, the processes and methods to manage, monitor, and measure its ongoing quality are as fluid and sometimes elusive as are the defects that they are meant to keep in check.See alsoSoftware AssuranceSoftware: Quality control

............. UNDER DEVELOPMENT ...............................Appendix-DGuidelines* for the application of ISO 9001 : 2000 tthe supply, develoment, installation & maintenance 0computer software.4 Quality management system4.1 General Eequiaements :-The organisation shall define and manage the processes necessary to ensu: ~ that product and/or service confornls to customer requirements. As a means :implementing and demonstrating the defined processes, the organisation s establish a quality management system covering the requirements of . International Standard. The quality management system shall be impIemen maintained and improved by the organisation.The Quality Management System of a software-producing organisa ~ should define and manage activities and tasks related' to the following process;;.:a) The primary life cycle processes of acquisition, supply, developm~ operation and maintenance of software;b) The organisationallife cycle processes of management, infrastructIr:'e improvement and training;c) The supporting life cycle processes of documentation, configurati management, verification, validation, joint review, audit and probl resolution, which are needed to implement the primary 2L:_ organisational;::e cycle processes.The two primary types of software-producing organisations are:a) Organisations that develop software in response to specified custo requirements;ased on ISOllEe 12207; Information technology-software life cycl. 4 ~ I sotoo-J [D"'tt t161:\O[q J +1\.. tooo..pJ~

161Training Manual on ISO 9000 : 2000 and TQMb) Organisations that develop software in anticipation of customer needs.Actual organisations may be a combination of the two types. Oiganisations that develop software in response to specified customer requirements should include processes that define the customer requirements and track their fulfIlment throughout the software life cycle.Organisations that develop software in anticipation of a customer shouldInclude processes that define the software capabilities and control change to the definition throughout the software life cycle. The organisation shall prepare quality management system procedures thatDescribe the processes required to implement the quality management system. The range and ex1:ent of the system procedures shall be dependent upon such factors as the size and type of the organisation, the complexity and interaction of the processes, the methods used and the skllls and training of personnel involved in performing the work. This shall include:a) System level procedures that describe the activities required to implement the quality management system;b) Procedures that describe the sequence and interactive nature of the processes necessary to ensure the conformity ofthe product and/or servIce;c) Instructions that describe the operating practice and control of process activities.A software-producing organisation should define the sequence and interaction ofthe life cycle processes in:a) Procedures that define life cycle models for development, such as waterfall, incremental and evolutionary;b) Development plans, which should be based upon a life cycle model.4.2 Document tion requirements4.2.1 GeneralThe organisation shall establish a quality management system as a meaIls of meeting its quality policy, achieving its quality objectives and ensuring that the product and/or service conform to customer requirements. No further software-specific guidance is provided.4.2.2 Quality manualThe organisation shall prepare a quality mannal. The quality manual shall include:a) A description of the elements of the quality management system and their interaction (and any reduction in scope of this International

Appendix-D162Standard.b) The system level procedures or reference thereto.NOTE The quality manual need not be a stand alone document. The quality manual may be:a) A stand alone document or a set of documents;b) Stored on paper or on computer media. Storage of the quality manual upon computer media offers the following advantages over paper media in most situations:a) Easeofdocumentprodllction, distribution, access, control, withdrawal and archiving;b) Reduced cost of production, distribution and archiving;c) Reduced impact on the environment.4.2.3 Control of documentsThe organisation shall establish quality management system level procedures for controlling documents required for the operation of the quality management system. These procedures shall ensure that:a) Documents are approved for adequacy prior to release;b) Documents are reviewed, updated as necessary and re-approved;c) The relevant versions of docnments are available at locations where activities essential to the effective functioning of the quality management system are performed;d) Obsolete documents are removed from all points of issue and use, or otherwise controlled to prevent unintended use;e) Any obsolete documents retained for legal or knowledge-preservation purposes are suitably identified.A master list or an equivalent document control procedure, identifying the current revision status of documents, shall be established and be readilyavailabl to preclude the use of invalid and/or obsolete documents. Documents shall be legible, readily identifiable and retrievable. Applicable docuinents of externa..origin shall be identified and recorded.NOTE Documents may be in any form or any type of media.4.2.4 Control of RecordsQuality records appropriate to the organisation shall be maintained t demonstrate conformity to the requirements and the effective operation of the quality management system. The organisation shall establish andmaintain qualir;management system level procedures for theidentification, storage, retrie\-a.i...

163Training Manual on ISO 9000: 2000 and TQM,jprotection, retention time, and disposition of quality records,Organisations developing and maintaining software should retain the following types of quality records:a) Review records;b) Test results;c) Audit reports;d) Problem reports,When storing quality records, consideration should be given to:a) The rate of degradation of the media upon which the records are stored;b) The availability of the devices aeeded to access the quality records from the media at possible times when retrieval is required,5 Management responsibility5.1 Manasement commitmentTop management shall demonstrate its commitment to:a) Creating and maintaining awareness of the importance to fulfil customer requirements;b) Establishing the quality policy and the quality objec;tives and planning;c) Establishing a quality management system;d) Performing management reviews;e) Ensuring the availability of resources (see 6),The quality management system of a software-producing organisation should be established by means of a management process that:a) Initiates and defines the scope of the quality management system;b) Plans the execution of each instance of a software life cycle process;c) Ex~cutes and controls each instance of a software life cycle process;d) Reviews and evaluates each instance of a software life cycle process:5.2 Customer FocusIn an organisation that develops software in anticipation of a customer need, top management should ensure that processes are established and enacted to eTJ.sure that information about current, future, explicit and implicit customer needs and expectations is collected, analysed and included in the product requirements, as appropriate, The acquisition process of a customer and the supply process of a software-producing organisation should combine to provide the customer requirements as input to the development and maintenance processes,Appendix-D5.3 Quality PolicyTop management shall establish its quality policy and ensure that it:a) Is appropriate for the needs of the organisation and its customers:b) Includes commitment to meeting requirements and continua.improvement;c) Provides a framework for establishing and reviewing quali _ objectives;d) Is communicated, understood and implemented throughout th;o.organisation;e) Is reviewed for continuing suitability.5.4 Planning5.4.1 ObjectivesThe organisation shall establish quality objectives at each relevant functio and level within the organisation. The quality objectives shallBe consistent with the quality policy and the commitment to contin improvement. Quality objectives shall include those needed to meerequirements for produ~ts andlor services.For software, possible top-level quality objectives are:a) Conformity to customer requirements;b) Conformity to product requirements;c) Conformity to system requirements;d) Conformity to acceptance criteria.For software, lower-level quality objectives should be defined based the quality characteristics of the software product. Examples of such qualJ-:objectives, with their associated quality characteristics in parentheses. area) A specified mean time between failures (reliability);b) A specified number of defects per thousand lines of code (reliabilI-:c) A specified number of discrete operations required to accomp task (usability);d) COnfOffility to a progranlming language standard (portability):e) Specified limits on the amount of computer hardware reSO\l;__ required to execute the software (efficiency);f) A specified mean time to repair (maintainability);g) A specified time to maximum time to rebuild the software aft change to the source code has been made (maintainability)".

165Training Manual on ISO 9000 : 2000 and TQM5.4.2 Quality planningFor a software-producing organisation, quality planning occurs at two levels:a) The organisationallevelb) The project level.Software quality planning at the organisationallevel should result in quality system procedures and instructions.For software, such quality system procedures and instructions should include:a) Descriptions of software life cycle models to be used for the types of projects that the organisation undertakes;b) Descriptions of how the organisation normally implements software life cycle processes;c) Descriptions of the contents of software products, such as software requirements documents, architectural design documents, detailed design documents, source code headers and software user manuals;d) Descriptions of the contents of software management plans, such as software project management plans, software configuration management plans, software verification and validation plans and software quality assurance plans;e) Descriptions of how software engineering methods are tailored for the organisation's projects;f) Descriptions of conventions for the use of programming languages,software libraries and frameworks.Software quality planning at the project level should result in a description of how specific products are to be developed or maintained. In contrast, software devel.opment planning should result in a definition of what products are to be produced, who is to produce them, and when they are to be produced.Software quality planning at the project level should:a) Identify the quality requirements for the product and/or service;b) IdentifY the quality system procedures and instructions to be used;c) Tailor the quality system procedures and instructions to the project by adding, deleting or modifYing material;d) Define product-specific procedures and instructions, such as software test specifications detailing test plans, tests designs, test cases and test procedures;

Appendix-De) Specify methods, tools, programming language conventions, librane5 and franleworks to be used in the project;f) Identify who is responsible for approving the outputs ofproces es for subsequent use.Software project quality requirements should be stated as:a) Product quality objectives;b) Process requirements, such as the use of software inspections ~ independent testing.The exit criteria for processes, such as inspections and testing, sho include product quality objectives such "no defects detected" and "all t passed".Software quality planning should also define the measurement, monitorin.:. analysis and improvement processes to be used by the organisation or proj ~ Quality planning should define the type, location, timing and frequency :measurements and the requirements for records of the measurement, monito - _ analysis and improvement processes.5.5 Responsibility authority & communication.5.5.1 Responsibility and authorityRoles and their interrelations, responsibilities and authorities shall defined in order to facilitate effective quality management and shah communicated to relevant levels ofthe organisation. Organisational freeCJ:~ necessary to perform tasks that affect quality shall be defined. No fur.:software-specific guidance is provided.5.5.2 Management representativeTop management shall appoint member( s) of the management irrespective of other responsibilities, shall have defined authority that ina) Ensuring that a quality management system is implemented and maintained in accordance with the requirements of this Internan.Standard;b) Reporting to top management on the performance of the management system, including needs for improvement;c) Ensuring awareness of customer requirements througho organisation.NOTE The responsibility of a management representative normally' liaison with external parties on matters relating to the ~ management system.5.5.3 Internal Communication

167Training Manual on ISO 9000 : 2000 and TQMThe organisation shall establish and maintain procedures for internal communication between the various levels and functions regarding the qualio/ management system and its effectiveness.5.6 Management reviewThe organisation shall establish a quality management system level procedure for management review. Top management, at intervals it determines, shall review the quality management system to ensure its continuing suitability, adequacy and effectiveness. The review shall evaluate the need for changes to the organisation's quality management system, including policy and objectives.Management review shall include periodic review of current performance and improvement opportunities related to:a) Results of audits;b) Customer feedback;c) Process perfornlance and product conformity analyses;d) Status of preventive and corrective actions;e) Follow-up actions from earlier management reviews;f) Changing circumstances. The outputs from the management review shall be actions related to:g) Improvement of the quality management system;h) Process, product and/or service audits;i) Resource needs. Results of management reviews shall be recorded.The results of software process assessments should be considered at Management Reviews.6 Resource Management6.1 Provision of ResourcesThe organisation shall determine and provide in a timely manner, the resources needed to establish and maintain the quality management system.6.2 Human resources6.2.1 GeneralThe organisation shall assign personnel to ensure that those who have responsibilities defined in the quality management system are competent on the basis of applicable education, training, skills and experience.6.2.2 Competence, awareness and training.The organisation shall establish and maintain system level procedures to:a) Determine competency and training needs;

Appendix-Db) Provide training to address identified needs;c) Evaluate the effectiveness of training at defined intervals;d) Maintain appropriate records of education, training, skills, and expenence.The organisation shall establish and maintain procedures to make its employees at each relevant function and level aware of:a) The importance of confonnity with the quality policy, and with therequirements of the quality management system;b) The significant impact of their work activities on quality, actual or potential;c) The benefits of improved personal performance;d) Their roles and responsibilities in achieving conformity with the quality policy and procedures and with the requirements of the quality management system;e) The potential consequences of departure from specified procedures. A software-producing organisation should establish a training process that ensures the continual capability of its staff.6.3 InfrastructureThe organisation shall define, provide and maintain the infrastructure needed to achieve the confonnity of product and/or service. This shall include:a) Workspace and associated facilities;b) Equipment, hardware and software;c) Suitable maintenance;d) Supporting services.The infrastructure should include hardware, software, tools, techniques. standards, and facilities for development, operation, or maintenance. At minimum, the infrastructure should contain software tools that:a) Enable the creation of documents and source code;b) Convert source code to executable code.The probability of inserting defects into software can be reduced by use of tools that:a) Detect software defects, such as non-confonnities to programmin= language rules;b) Measure software metrics, such as cyc10matic complexity and t ::coverage, that can be used to estimate the number of defects pc) Enable the version history of a software item to be traced;168

169Training Manual on ISO 9000 : 2000 and TQMd) Enab~e source code to be traced to its design;e) Enabl~ designs to be traced to requirements; 'ttf) Enable the accessibility, security and integrity of software items to be preserved.6.4 Work environmentThe organisation shall define and implement those human and physical factors of the work environment needed to achieve conformity of product and/ or service. This shall include:a) Health and safety conditions;b) Work methods;c) Work ethics;d) Ambient working conditions.The following aspects should be considered for people developing or maintaining software:a) Concerning work ethics, the probability of introducing non-conformity into software is reduced by the adoption of a culture that encourages the people to check their own work products and that of their colleagues for errors before they are input to the next stage of a development or maintenance process;b) Concerning ambient working conditions, Lhe probability of introducing non-conformity into software increases with the background noise level and the frequency of interruption.7 Product Realization1'\\4Y\o..~C o~ 'o~ ~hA--'J~.7.1 Planning ...:J.J I I\Jl..1 r - ~Processes that are necessary to realize the required product and/or service and their sequence and interaction shall be determined, planned and implemented. In determining such processes, the organisation shall consider the outputs from quality planning (see 5.4).In a software-producing organisation, the following software life cycle processes defined in I~O/IEC 12207:1995 should be tailored to realise the required product and/or service:a) Development process, which defines the activities of an organisation that defines and develops the software product;b) Operation process, which defines the activities of an organisation that provides the service of operating a computer system in its live environment for its users;c) Maintenance process, which defines the activities of an organisation

Appendix-Dthat provides the service of maintaining the software product; that is, managing modifications to the software product to keep it current and in operational fitness;d) Documentation process, which defines the activities for recording the infomlation produced by a life cycle process;e) Configuration management process, which defines the activities that identify, define, and baseline software items in a system; control modifications and releases of the items; record and report the status of the items and modification requests; ensure the completeness, consistency, and correctness of the items; and control storage handling, and delivery of the items;f) Quality assurance process, which defines the activities, such as joint reviews, audits, verification and validation, for objectively assuring that the software products and processes are in conformity with their specified requirements and adhere to their established plans;g) Verification process, which defines the activities for determining whether the software products of an activity fulfil the requirements or conditions imposed on them in the previous activities;h) Validation process, which defines the activities for detemrining whether the requirements and the final, as-built system or software product fulfils its specific intended use;i) Joint review process, which defines the activities for a multi-party evaluation of the status and product of an activity.The organisation shall ensure these processes are operated under controlled conditions and produce outputs that meet customer requirements.Methods and practices relevant to the consistent operation of software life cycle processes are:a) Methods for software development that describe the techniques for software requirements analysis, softwa:e design, software inspection and software testing;b) Practices defining how software development tools are to be used to support methods.The criteria and methods to control processes needed to achieve produ and/or service conformity with the customer requirements should include:a) Entry and exit criteria for each activity that are based upon metri ~m software quality characteristics1e.g. an exit criterion for the coding activity might be that the number oflines of code does not exceed a specified limit);170

171Training Manual on ISO 9000 : 2000 and TQMb) Methods for the measurement of the software product or services attributes that are needed to verify conformity to the criteria (e.g. an attribute of a source code module might be the number of lines of code; methods need to be defined for counting number of lines of code in the selected programming language).7.2 Customer-related Processes7.2.1 Determination of Requirements Related to Product.This process shall determine the :a) Completeness of the customer's product and/or service requirements;b) Requirements not specified by the customer but necessary for fitnessfor purpose; _____~ S to- t tA. h~ A R.er;!:.;;.c) Obligations related to product and/or service, including regulatory and legal requirements; --"'? ':r,-r A c-I.(, fn.,erL /)0>' k) .d) Customer requirements for availability, delivery and support of product and/or service.The acquisition process of a customer and the supply-process of a softwareproducing organisation should combine to provide the customer requirements as input to the development and maintenance processes.The process for identifying the customer requirements should:a) Include activities for capturing customer requirements, such as interviews, surveys, workshops and prototyping;b) Define ror each customer requirement:1. A unique identifier, to facilitate tracing of the implementation of the requirement during the development process;11. A description of a capability required of the software or a constraint that applies to the software;ill. The level of need, to indicate whether implementation the requirement is essential for the product or service to be acceptable;IV. The priority of the requirement, to indicate in which release of the software the requirement must be implemented.The customer requirements are the primary inputs to the development process, and the level of detail of the customer requirements should be sufficient for:a) Controlling the development process;b) The effective use of analysis and design techniques needed during development.

Appendix-D7.2.2 Review of Requirements Releted to the Product.The customer requirements, including any requested changes, shall be reviewed before a commitment to supply a product and/or service is provided to the customer (e. g. submission of a tender, acceptance of a contract or order) to ensure that:a) Customer requirements are clearly defined for product and/or service;b) Where the customer provides no written statement of requirement, the customer requirements are confirmed before acceptance;c) Contract or order requirements differing from those previously expressed, e.g. in a tender or quotation, are resolved;d) The organisation has the ability to meet the customer requirements for the product and/or service. The results of the review and subsequent follow-up actions shall be recorded.When the product/or service includes computer software, the process for reviewing the customer requirements should:a) Identify the required software quality characteristics (functionality, reliability, usability, maintainability, portability and efficiency);b) Establish the verifiability of the required software quality characteristics;c) Relate the acceptance criteria to the required software quality characteristics;d) identify applicable regulatory and legal requirements;e) identify applicable environmental requirements;f) include joint reviews with the customer.7.2.3 Customer communicationA software-producing organisation should communicate product and service information in the form of:a) Interim products of the development and maintenance processes, such as design documents;b) Demonstrations of interim products of the development and maintenance processes, such as prototypes;c) Reports on the progress of the development project;d) Reports on the performance of the product or service.The joint review process should be used to get information from the customer about interim products, demonstrators and reports.172

173Training Manual on ISO 9000 : 2000 and TQMp~J~«- ~6~~~Po'1l: ~l! f7.3. Design and Development 7.3.1 Design & Development PlanningIn software engineering, design is a development activity, and therefore this clause refers to 'development' instead of 'design and/or development'.The software development plan may be defined by:I) Identifying the components of the product or service that need to be developed;2) Identifying software life cycle activities that are needed to produce the components of the product or service;3) Estimating the resources and duration of the activities needed to produce the components of the product or service;4) Constructing the network of activities, by taking account of the dependencies between the components;5) Assigning resources, start and end time to each activity.An alternative approach to steps (1) and (2) above is to select a software life cycle model that is suitable for the project and to use itas the framework for defining the components and activities. Example software life cycle models are:rir]a) Waterfall;b) Incremental;c) Evolutionary.Stages of the software development plan may be identified by milestones, each of which marks significant progress in the development. Example milestones are:a) Hhe approval of the customer requirements document;b) The approval of the software requirements document;c) The approval of the architectural design document;d) The approval of the detailed design document;e) The successful completion of unit tests;f) The successful completion of integration tests;g) The successful completion of qualification tests;h) Acceptance of the software.The software life cycle model may define stages and milestones. The software development plan may include the following review, verification and validation activities:a) Inspections of the software requirements document;

Appendix-D174b) Joint review of the software requirements document with the customer,c) Inspections of the architectural design document;d) Demonstrations of prototypes;e) Tracing of requirements to design and vice-versa;f) J oint review of the architectural design document with the customer;g) Inspections of the detailed design document;h) Inspections of the source code;i) Formal proof of the correctness of code;j) Unit tests, i.e. standalone tests of software components;k) Integration tests, i. e. tests of aggregations of software components;1) Qualification tests, i. e. tests of the complete software product prior to delivery;m) Acceptance tests, i.e. tests of the complete software product after delivery.A software-producing organisation should include within the software development plan:a) Definitions of quantities that will be used to measure progress against cost, schedule and quality goals;b) The initial list of risks that have been identified, with estimates of the residual risk after planning Risks that should be considered in software development are:c) Low capabilities of the organisation or its suppliers;d) Low accuracy of the estimates of resources and duration required for each activity;e) Significant differences betw~en the times that delivery of products or services are required and the times that results from optimising plans to meet cost and quality goals;f) Significant geographical dispersion of the organisation, customers and suppliers;g) High technical novelty, including novel methods, tools and supplied software;h) Low quality or availability of supplied software and tools;i) Low precision, accuracy and stability of the definition of the customer requirements and external interfaces.A software-producing organisation should control development (including design) of a product or service by:

175Training Manual on ISO 9000: 2000 and TQMa) Reviewing and agreeing the development plan before development starts;b) continuously monitoring and regularly reporting on progress-towards cost, schedule and quality goals;c) continuously monitoring for risks to the project and taking appropriate action (i.e. contingency planning, pre-emptive action).7.3.2 Design and Development InputsThe software-producing organisation should perform software requirements analysis upon the design and development inputs with the objective of producing a complete and consistent software requirements specification that defines the:r---a) Functional requirements;b)· Reliability requirements;c) Usability requirements;d) Maintainability requirements;e) Portability requirements;f) Efficiency requirements.Software requirements analysis should be performed using software engineering methods and tools. Environmental requirements define the permitted impact of the product or service on a third party. An environmental requirement may also be a legal or regulatory requirement. Examples of environmental requirements for computer software are:a) The software must be free of computer viruses;b) Normal operation of the software must not result in accidental damage to people or property;c) After a software failure, the behaviour of the software must not result in accidental damage to people or property.An organisation should always produce software that is free of computer viruses. The organisation should operate systems to prevent the spread of computer viruses.An organisation should never produce software that results in accidental danlage to people or property, including after a software failure. When customer requires a system containing hardware, software and people, the organisation should perform the following activities before software requirements analysis:a) System requirements analysis, which should transform the customer requirements into a complete and consistent system requirements specification;b) System architectural design, which should result in a feasible system~,

Appendix-D176architectural design that implements all the system requirements.In system architectural design, system requirements are allocated to hardware, software components and manual operations. The inputs to software requirements analysis are:a) The system requirements allocated to software;b) Specifications of the interfaces between the system components.7.3.3 Design and development outputsSoftware development outputs may include:a) Architectural design specifications; ~b) Detailed design specifications;c) Source code;d) Executable code;e) Guides for installation, operation and maintenance;o Software test specifications.A software product should consist of one or more of the above software development outputs. A software product delivered to a customer for operational use should as minimum, contain:a) Verified and validated executable code;b) A guide to the installation and operation of the software.A software-producing organisation should perform the following activities to produce the development outputs:a) Software architectural design;b) Software detailed design:. .--51c) Software coding and testing;-d) Software integration.A software-producing organisation should produce development outputs using methods and tools that have been validated and approved for the application. Techniques for valicating methods and tools include:a) Successful application by the organisation for a similar software product and/or service;b) Successful outcome of proto typing the product and/or service;c) Research of methods and tools used for producing similar products and/or services.Software test specifications should contain, or refer to, the product and/or service acceptance criteria.

177Training Manual on ISO 9000 : 2000 and TQMSoftware design specifications and user guides should define the characteristics of the product and/or service that are essential to its s,afe and proper use.The organisation should verifY each software specification or component before approving it for release to the customer or for use in subsequent development and maintenance activities. i H-- iSoftware development reviews should include:a) Architecturaldesignrevie~lVb) Detailed design review; --c) Source code review; () -d) Review of software test specifications; 2C)v-b e) Rser guides review.Members of the development team should review and agree:a) The architectural design, before starting detailed design;b) Detailed designs of assemblies of software components, before the source code is written;c) The source code and software test specifications, prior to testing;d) User guides, prior to delivery of the software.An architectural design review and user guide review may be performed jointly with the customer.Software review techniques include, in order of increasing rigour:a) Peer review;b) Walkthrough;,c) Inspection.The software reliability requirements should be considered when selecting software review techniques and allocating resources to software review activities.7.3.5 Design and development verificationDesign and/or development verification shall be plann~d and performed to ensure the output meets the input requirements. The results ofthe verification and subsequent follow-up actions shall be recorded.The following software development outputs should be verified:a) Requirements;,b) Design;

Appendix-D178c) Code;d) The software product at each stage of integration;e) Documentation.Development outputs should be demonstrated to meet the development input requirements by one or more ofthe following verification techniques:a) Review (i.e. peer review, walkthrough, inspection);'-b) Tracing of software requirements to software components and viceversa;c) Formal proof of correctness of the development output;d) Test, for example:1. Unit tests of a software component to verify that it meets its detailed design specification;11. Integration tests of an aggregate of software components to verify that it meet its architectural design specification;l1l. Qualification tests of a software product to verifY that it meets its software requirements specification.The record of any non-conformity in the software detected during verification should:a) IdentifY the input requirement that has not been met;b) IdentifY the software compollent, or part of that is non-conformant;c) Describe the nature of the non-conformity, such as the error in a document or source code module, or the behaviour of executable code.7.3.6 Design and development validationBefore delivery and installation of the software, the software development organisation should performed software validation:a) Tracing customer requirements to software requirements and \ice-versa; v~·c£..;t.:.~ vi ~b) Joint reviews of the software requirements with the customer;c) Joint reviews of the software architecturaJ:desig~ with the customer.d) Demonstrations of prototypes to the customer;. .e) Simulating acceptance tests in qualification testing.After delivery and installation of the software, the customer should perfo software validation by conducting acceptance tests of the software. Where feasible, the acceptance tests should be performed before the software is rn.aC= available for operational use. However, some acceptance tests, such as th =~

179Training Manual on ISO 9000 : 2000 and TQMrequired to demonstrate reliability, may require operational use of the sofuvare.7.3.7 Control of Design & Develupment Changes.In software engineering, control of design change is a configuration management activity. Design change may occur in both software development and software maintenance.The organisation should establish and maintain procedures for controlling design changes, which may arise at any time during the software product life cycle, in order to:a) Document and justify the change;b) Evaluate the consequences of any change;c) Approve or disapprove the change;d) Implement and verifY the change.Control of design change should be performed upon each software specification or component that has been approved for use in subsequent development and maintenance activities or for release to the customer.Changes to a software specification or component should maintain consistency between requirements specifications, design specifications, code, tests specifications and user manuals.Tests to verify or validate that the capabilities of the software have not been reduced by a change are called "regressions tests". Regressions tests of software should always be performed when the interface to a software component has been changed, with objective of verifying that all the components that use the modified component still function correctly. - f> h..G ~- tt.....t;,7.4 Purchasing . - j}e-t.::.~ .''V - At f7.4.1 Purchasing Process ~4.'"l..b Nt 1)v./1.~oJyt ~. -- fJh'·u.In developing and maintaining software products, purchased products mayinclude' . t " ~ t-. ~ ~~~~~a) Commercial off-the-shelf software; A-~~ d.A- ~ .f\t>-t ~ .' Vb) Software acquired free from a third party;c) Tools for the development and maintenance of the software product;d) Training courses and materials.Considering that products (b), (c) and (d) may be obtained without a financial transaction, the term "acquisition" is preferred to "purchasing".A software development or maintenance organisation should implement procedures for the acquisition of software products and services.i V-e:f\d D 11. ~co n.di:I, ~ M. U'c..'I.' 1.1 J-.c.')b ~ i'\,.b .

Appendix-D7A.2 Purchasing informationPurchasing documents shall contaffi information clearly descnbing the product and/or service ordered, including where appropriate:a) Requirements for approval or qualification of product and/or service.procedures, processes, equipment and personnel;b) Any management system requirements. The organisation shall ensure the adequacy of purchasing documents for the specification of requirements prior to release.When acquiring software products and services, the organisation is acting in the role of the customer, and the guidance on requirements specification provided in clauses 7.2 and 7.3.2 should be considered.7.4.3 Verification of purchased productThe organisation shall determine and implement the arrangements necessary for verification of purchased product and/or service.Where the organisation or its customer proposes to perform verificati activities at the supplier's premises, the organisation shall specify the required verification arrangements and method of product and/or service release in the purchasing documents.When acquiring software products and services, the organisation is acting in the role of the customer, and the guidance on verification and validati provided in clauses 7.3.5 and 7.3.6 should be considered.7.5 Production and service Prsvision7.5.1 Control of Production & Service ProvisionA software-producing organisation should plan and control producti operations by: .a) Specifying the version of the software product or software compo to be released;b) Defining procedures for the replication of the software;c) Providing equipment that exactly reproduces the software;d) Defining procedures for the packaging, including labelling, of a ~ of the software;e) Providing equipment for packaging the software;f) Defining procedures for the delivery of a copy of the software packa.::Replication of software may involve:a) Copying the master copy of the software product to distnbution180

181Training Manual on ISO 9000 : 2000 and TQMb) Copying the master copy of the software product to the customer's computer by means of a computer network.The software product may include a copy of the legal agreement (i.e.license) for the use of the product.A software-producing organisation should plan and control service operations by:a) Establishing a software operations process;b) Establishing a software maintenance process;c) Producing a plan for the organisation, work breakdown and schedule of operations and maintenance activities;d) producing a quality plan for software operations and maintenance activities (see 5.4.2).Software maintenance includes the following tasks:a) Diagnosis of problems;b) Design and implementation of:1. Changes that correct problems and prevent future occurrences of similar or related problems;11. Interface modifications, which maybe required when additions or changes are made to the hardware or software that the software product controls or exchanges data with;111. Enhancements, such as additional functions or performance improvements.Major interface modifications and enhancements to the software should be implemented using the software development process instead of the software maintenance process.7.5.2 Validation of Processes for Production & Service ProvisionAny software development production and/or service processes where the resulting output cannot be readily or economically verified by subsequent monitoring, inspection and/or testing should not be used in software development, production or servicing. Alternative software development production and/or service processes where the resulting output can be readily 0f economically verified by subsequent monitoring, inspection and/or testing should be used.7.5.3 Identification and traceabilityA software-producing organisation should establish procedures for identifying software products during development, production and servicing.Appendix-D182Considering that the interaction or software items affects the conformity of a software product with customer requirements, a software-producing organisation should establish procedures for identifying the constituent software items of a software product during development, production and servicing.Software items that should be identified include:a) Requirements;b) Documents;c) Software components;d) Test cases;e) Development tools;f) Records, e.g.:1. Verification and validation records;11. Problem reports;11I. Change proposals.Traceability is a requirement that is necessary for fitness for purpose (see clause 72.1). A software-producing organisation should control and record the unique identification of product and/or service by means of a configuration management system that provides for:a) Configuration identification;b) Configuration control;c) Configuration status accounting;d) Configuration evaluation;e) Release management and delivery.The configuration id~ntification information should include:a) The name of each software item;b) The version of each software item;c) The type of each software item;d) The version of each software item within a version of a softwareproduct (therefore defining the configuration of a software product). The configuration control information should include:a) The details of problem5 reported upon, or changes proposed to, a software item or software product;b) The person or persons with the authority to decide upon actions to problems or changes to each software item or software product;

183,d, mJ :n Ib ria :b d, 01Training Manual on ISO 9000 : 2000 and TQMc) The person or persons with the authority to decide on changes to the verification and validation status of each software-item or software product.The configuration status accounting information should include the status of all changes proposed for a software item or a software product.The configuration evaluation information should include the verification and validation status (e.g. successfully reviewed, unit tested, integration tested, qualification tested, or accepted) of each software item and software product.The release management and delivery information should include the version of the software product and details of changes since the last release.7.5.4 Customer property C~~)The organisation shall exercise care with customer property while it is under the organisation's supervision or being used by the organisation. The organisation shall ensure identification, verification, storage and maintenance of customer property provided for use or incorporation. Any customer property that is lost, damaged or otherwise found to be unsuitable for use shall be recorded and reported to the customer.A software-producing organisation should validate software products provided by the customer for use either as part of the software product or as tools for developing the product. Validation should be performed before use of the customer-supplied software product by:a) VerifYing the identity of the product;b) Integration testing of a product component;c) Testing of a customer-supplied tool against its specification or user manual.A software-producing organisation should establish procedures for identifying and storing software products provided by the customer during development, production and servicing. The procedures should be part of the configuration management system for the product.7.5.5 Preservation of Productat u~ Inn~ l[JO el,kar 0),.1 1 itr'<>)(nl Ii Ie hbD jThe organisation shall ensure that during internal processing and final delivery of product and/or service to the intended destination that the identification, packaging, storage, preservation, and handling do not affect confornlity with product andlor service requirements.A software-producing organisation should ensure that its software products are not altered between the point of production and the point of delivery.Software product identification information should be preserved to ensure traceability. In particular: . liJ.ft_ ~l~"':l ~d../ &-if - (j5~t~. ~~j u ".-j~' \) I. . Ire , fo,,.- 4 l.,V\A..L JThe measurement, monitoring, analysis and improvement processes, and .the type, location, timing and frequency of measurements and the requirements for records, should be identified as part of the quality planning (see 5.4.2). In software engineering, measurable characteristics of products, services and processes are called "metrics".Types of software product metrics include:a) Testability;

Appendix-D186b) Usability;c) Reliability;d) Maintainability;e) Availability.Types of software process metrics include:a) Process maturity;b) _ Number and types of defects in process outputs;c) Defect removal efficiency;d) Milestone slippage.The effectiveness of metrics should be evaluated by estimating their capability: 'a) To predict customer satisfaction with the product and/or service, or;b) To report the probable number of defects present in the product, or;c) To report the degree of progress towards cost, schedule and quality objectives.When the size and complexity of a software product implies that complete verification that a software product meets its requirements is not economically practical, statistical techniques should be used to estimate the:a) The proportion of software product parts that need to be processed by each verification activity (e.g. the proportion of lines of code that should be covered in testing, the proportion of code that should be inspected);b) The number of outstanding defects in the software product after each stage of verification (e.g. the number of defects per hundred lines of code after qualification testing). Statistical techniques may also be used to estimate the reliability and maintainability of the software product from data collected during development, operations and maintenance (e.g. mean time between failure, mean to time to repair).8.2 Measurement and monitoring ). J ~ ~.h,.,,J- 6hd..e-v..8.2.1 Customer satisfaction ( ~'b' ) ~ b " -' 'r-The organisation shall monitor information on customer satisfaction and/ or dissatisfaction. The methods and measures for obtaining and utilizing such infoffilation and data shall be defined. -A software development and maintenance organisation should evaluate customer satisfaction by analysing: , . .J.1) .Nt o~ {1:>tto1'(j (;.M ~ ~ 5.vt,Vl b~-hcYI ·l YIP t ~

187Training Manual on ISO 9000 : 2000 and TQMa) All non-conformities detected by customers during development, operation and maintenance;b) All complaints received from customers during development, operation and maintenance;c) All expressions of satisfaction with the software product and/or service;d) The costs and benefits of the software product and/or service to customers.Note that:a) All non-conformities are complaints, but not all complaints are related to non-conformities;b) A complaint is an expression of dissatisfaction;c) Analysis of non-conformities and complaints should identify the number, type and severity of each non-conformity or complaint;d) The methods and measures for obtaining and utilizing such information and data should be defined in the quality plan.8.2.2 Internal audit ( / ~d r