A Spice
A Spice
A Spice
Copyright Notice This document reproduces relevant material from ISO/IEC 15504:2003 Information Technology Process Assessment Part 2: Performing an assessment and ISO/IEC 15504:2006 Information Technology Process Assessment Part 5: An exemplar Process Assessment Model ISO/IEC 15504 Part 2 provides the following copyright release: Users of this part of ISO/IEC 15504 may freely reproduce relevant material as part of any Process Assessment Model, or as part of any demonstration of conformance with this international standard, so that it can be used for its intended purpose. ISO/IEC 15504 Part 5 provides the following copyright release: Users of this part of ISO/IEC 15504 may freely reproduce the detailed descriptions contained in the exemplar assessment model as part of any tool or other material to support the performance of process assessments, so that it can be used for its intended purpose. Permission has been obtained from ISO to incorporate the relevant material under the copyright release notice.
The SPICE User Group 2005-2010
Distribution The Automotive SPICE PAM may be distributed under the following conditions: Distribution: The document must be distributed in whole as-is and at no cost. Derivative Works Derivative works: You may not alter, transform, or build upon this work without the prior consent of The SPICE User Group. Such consent may be given provided ISO copyright is not infringed. The detailed descriptions contained in this document may be incorporated as part of any tool or other material to support the performance of process assessments, so that this Process Assessment Model can be used for its intended purpose, provided that any such material is not offered for sale. Trademarks Automotive SPICE is a registered trademark of the Verband der Automobilindustrie e.V. (VDA).
For further information about Automotive SPICE visit www.automotivespice.com or contact automotivespice@spiceusergroup.com .
The SPICE User Group 6 Wilmslow Road, Unit 50 Manchester M14 5TD United Kingdom
Jaguar/Land Rover Banbury Road Gaydon WARWICK CV35 0RR United Kingdom
Document History
Version: Date: 4.0 4.1 4.2 4.3 4.4 4.5 2005-05-02 2005-06-24 2005-08-21 2007-05-05 2008-08-01 2010-05-08
By: AD AD AD AD AD AD
Notes: DRAFT RELEASE pending final editorial review Editorial review comments implemented Final checks implemented FORMAL RELEASE Revision following CCB FORMAL RELEASE Revision following CCB FORMAL RELEASE Revision following CCB FORMAL RELEASE
Release Notes Version 4.5 of the Process Reference Model incorporates changes regarding emphasising the use of this document in conjunction with the terminology in ISO/IEC 15504-1 significant editorial changes to the Software construction process (ENG.6) registered trademark notice. Version 4.5 of the Process Reference Model replaces version 4.4 of the Process Reference Model with immediate effect. Version 2.5 of the Process Assessment Model has been released at the same time and is aligned with Version 4.5 of the Process Reference Model. Any problems or change requests should be reported through the defined mechanism at the www.automotivespice.com web site. These will be addressed by the Change Control Board which meets every 6 months.
ENG.7 Software integration test ............................................ 28 ENG.8 Software testing .......................................................... 29 ENG.9 System integration test .............................................. 30 ENG.10 System testing .......................................................... 31
3.4 Supporting Process Group (SUP) ............................................................. 32 3.4.1 SUP.1 Quality assurance ....................................................... 32 3.4.2 SUP.2 Verification................................................................... 32 3.4.3 SUP.3 Joint review ................................................................. 33 3.4.4 SUP.7 Documentation ............................................................ 34 3.4.5 SUP.8 Configuration management........................................ 35 3.4.6 SUP.9 Problem resolution management .............................. 35 3.4.7 SUP.10 Change request management .................................. 36 3.5 Management Process Group (MAN) ......................................................... 37 3.5.1 MAN.3 Project management .................................................. 37 3.5.2 MAN.5 Risk management ....................................................... 38 3.5.3 MAN.6 Measurement .............................................................. 39 3.6 Process Improvement Process Group (PIM) ........................................... 40 3.6.1 PIM.3 Process improvement .................................................. 40 3.7 Reuse Process Group (REU) ..................................................................... 41 3.7.1 REU.2 Reuse program management..................................... 41
Annex A - Terminology ....................................................................... 42 Annex B - Key Concepts Schematic .................................................. 47 Annex C - Reference Standards ......................................................... 48
1
1.1
Scope
Introduction
The Automotive SPICE Process Reference Model (PRM) has been developed by consensus of the car manufacturers within the Automotive Special Interest Group (SIG) of the joint Procurement Forum/SPICE User Group under the Automotive SPICE initiative. The Automotive SPICE PRM defined in this document is derived from Annex F and H of ISO/IEC 12207 AMD1: 2002 and ISO/IEC 12207 AMD2: 2004. It contains a sub set of the total processes with minor editorial changes together with a number of other changes to reflect consistency in use of terminology and application in the automotive sector. The FULL scope of Automotive SPICE contains ALL the processes from the ISO/IEC 15504 Process Reference Model (PRM). The fact that some processes have not been included within the Automotive SPICE PRM does not mean that they are not valid. Supplier organisations should address all processes relevant to their business needs within their organisation. Where a process is not included within the Automotive SPICE Process Reference Model (PRM) then the relevant process should be included from the ISO/IEC 15504 exemplar Process Assessment Model. The manufacturers will however focus on the set of process defined within the Automotive SPICE PRM when performing supplier capability assessments. 1.2 Purpose
The Automotive SPICE PRM, used with the process capability attributes and rating scheme defined in ISO/IEC 15502-2, provides a common framework for assessing the software process capability of automotive suppliers. The Automotive SPICE PRM is used in conjunction with the Automotive SPICE Process Assessment Model (PAM) when performing an assessment. The Automotive SPICE PAM provides additional indicators of process performance and process capability tailored to the needs of performing assessments of software process capability of automotive suppliers.
Definitions Process Assessment Model Process Reference Model Special Interest Group Software Process Improvement and Capability dEtermination Terminology
Automotive SPICE follows the following precedence for use of terminology: a. English dictionary for common terms b. ISO/IEC 15504-1 :2004 for assessment related terminology c. IEEE 630 and BS 7925-1 terminology (as contained in Annex A) This document should be read in conjunction with ISO/IEC 15504-1 :2004. Many terms from ISO/IEC 15504-1 :2004 are used throughout the document. Other terminology used is defined below Element One of the parts that makes up a system. An element may comprise hardware, software, mechanical or manual operations. A set of components that are integrated into a larger assembly for the purpose of integration testing. A model comprising definitions of processes in a life cycle described in terms of process purpose and outcomes, together with an architecture describing the relationships between the processes
1.5
Applicable Documents
a. ISO/IEC 12207 AMD 1: 2002, Software Engineering - Software life cycle processes. b. ISO/IEC 12207 AMD2: 2004, Information Technology - Software life cycle processes. c. ISO/IEC 15504-1: 2004, Software Engineering - Process assessment Part 1: Concepts and Vocabulary d. ISO/IEC 15504-2: 2003, Information Technology - Process assessment Part 2: Performing an Assessment e. ISO/IEC 15504-5: 2006, Information Technology - Process assessment Part 5: An Exemplar Process Assessment Model f. IEEE 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology g. BS 7925-1, Glossary of Terms used in Software Testing h. Automotive SPICE Process Assessment Model 1.6 Warning
10
2
2.1
Statement of compliance
Introduction
ISO/IEC 15504-2 requires that processes included in a PRM satisfy the following:
"The fundamental elements of a process reference model are the set of descriptions of the processes within the scope of the model. These process descriptions shall meet the following requirements: a) A process shall be described in terms of its Purpose and Outcomes. b) In any description the set of process outcomes shall be necessary and sufficient to achieve the purpose of the process. c) Process descriptions shall be such that no aspects of the measurement framework as described in clause 5 of this International Standard beyond level 1 are contained or implied."
As processes are derived directly from ISO/IEC 12207 AMD 1 Annex F and H supplemented by the ISO/IEC 12207 AMD 2, these requirements are satisfied. The PRM includes processes, which are grouped in three process categories, identical to the process categories defined in ISO/IEC 12207 AMD 1, which are: the Primary life cycle processes category; the Supporting life cycle processes category; the Organizational life cycle processes category. Within a process category, processes are grouped at a second level according to the type of activity they address. The processes included in the same group have a logical relationship as their capabilities are related and contribute to a complementary problematic.
11
2.2
The Primary life cycle processes category consists of processes in the PRM that may be used by the customer when acquiring products from a supplier, and by supplier when responding and delivering products to the customer including the engineering processes needed for specification, design, development, integration and testing. The primary life cycle processes category consists of the following groups: the Acquisition process group; the Supply process group; the Engineering process group; The Acquisition process group (ACQ) consists of processes that are performed by the customer, or by the supplier when acting as a customer for its own suppliers, in order to acquire a product and/or service. Any contract performed will be managed by processes in the Management process group (MAN) and executed by the processes in the Engineering process group (ENG).
Table 1 Primary Life Cycle Processes ACQ process group Process Identification ACQ.3 ACQ.4 ACQ.11 ACQ.12 ACQ.13 ACQ.14 ACQ.15 PRM Process name Contract agreement Supplier monitoring Technical requirements Legal and administrative requirements Project requirements Request for proposals Supplier qualification Source ISO/IEC 12207 Amd.2 (F1.2.2) ISO/IEC 12207 Amd.1 (Annex F; F.1.1.3) ISO/IEC 12207 Amd.1 (Annex H; H1.4) ISO/IEC 12207 Amd.1 (Annex H; H1.5) ISO/IEC 12207 Amd.1 (Annex H; H1.7) ISO/IEC 12207 Amd.1 (Annex H; H1.8) ISO/IEC 12207 Amd.1 (Annex H; H1.9)
The Supply process group (SPL) consists of processes performed by the supplier in order to supply a product and/or a service.
12
Table 2 Primary Life Cycle Processes SPL process group Process Identification SPL.1 SPL.2 PRM Process name Supplier tendering Product release Source ISO/IEC 12207 Amd.2 (F1.2.1) ISO/IEC 12207 Amd.2 (F1.2.3)
The Engineering process group (ENG) consists of processes that directly elicit and manage the customer's requirements, specify, implement, or maintain the software product, its relation to the system.
Table 3 Primary Life Cycle Processes ENG process group Process Identification ENG.1 ENG.2 ENG.3 ENG.4 ENG.5 ENG.6 ENG.7 ENG.8 ENG.9 ENG.10 PRM Process name Requirement elicitation System requirements analysis System architectural design Software requirements analysis Software design Software construction Software integration test Software testing System integration test System testing Source ISO/IEC 12207 Amd.1 (Annex F; F.1.3.1) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.2) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.3) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.4) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.5) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.6) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.7) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.8) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.9) ISO/IEC 12207 Amd.1 (Annex F; F.1.3.10)
13
2.3
The Supporting life cycle processes category consists of processes in the PRM that may be employed by any of the other processes at various points in the life cycle.
Table 4 Supporting Life Cycle processes - SUP process group Process Identification SUP.1 SUP.2 SUP.4 SUP.7 SUP.8 SUP.9 SUP.10 PRM Process name Quality assurance Verification Joint review Documentation management Configuration management Problem resolution management Change request management Source ISO/IEC 12207 Amd.1 (Annex F; F.2.3) ISO/IEC 12207 Amd.1 (Annex F; F.2.4) ISO/IEC 12207 Amd.1 (Annex F; F.2.6) ISO/IEC 12207 Amd.1 (Annex F; F.2.1) ISO/IEC 12207 Amd.2 (F2.2) ISO/IEC 12207 Amd.2 (F2.8) ISO/IEC 12207 Amd.2 (F2.11)
14
2.4
The Organizational life cycle processes category consists of processes in the PRM that establish the business goals of the organization and develop process, product, and resource assets which, when used by projects in the organization, will help the organization achieve its business goals. The organizational life cycle processes category consists of the following groups: the Management process group; the Process Improvement process group; the Reuse process group. The Management process group (MAN) consists of processes that contain practices that may be used by anyone who manages any type of project or process within the life cycle.
Table 5 Organizational Life Cycle Processes - MAN process group Process Identification MAN.3 MAN.5 MAN.6 PRM Process name Project management Risk management Measurement Source ISO/IEC 12207 Amd.1 (Annex F; F.3.1.3) ISO/IEC 12207 Amd.2 (F3.1.5) ISO/IEC 12207 Amd.1 (Annex FF.3.1.6)
The Process Improvement process group (PIM) consists of processes performed in order to define, deploy and improve the processes performed in the organizational unit.
Table 6 Organizational Life Cycle Processes - PIM process group Process Identification PIM.3 PRM Process name Process improvement Source ISO/IEC 12207 Amd.2 (F3.3.3)
The Reuse process group (REU) consists of processes performed in order to systematically exploit reuse opportunities in organizations reuse programs.
Table 7 Organizational Life Cycle Processes - REU process group Process Identification REU.2 PRM Process name Reuse program management Source ISO/IEC 12207 Amd.2 (F3.6)
15
3
3.1 3.1.1
Process descriptions
Acquisition Process Group (ACQ) ACQ.3 Contract agreement
Process ID Process Name Process Purpose Process Outcomes ACQ.3 Contract agreement The purpose of Contract agreement process is to negotiate and approve a contract/agreement with the supplier. As a result of successful implementation of this process: 1) a contract/agreement is negotiated, reviewed, approved and awarded to the supplier(s); 2) the contract/agreement clearly and unambiguously specifies the expectations, responsibilities, work products/deliverables and liabilities of both the supplier(s) and the acquirer; 3) mechanisms for monitoring the capability and performance of the supplier(s) and for mitigation of identified risks are reviewed and considered for inclusion in the contract conditions; and 4) proposers/tenderers are notified of the result of proposal/tender selection.
3.1.2
16
3.1.3
Process Purpose
Process Outcomes
17
3.1.4
Process Purpose
Process Outcomes
18
3.1.5
Process Purpose
Process Outcomes
19
3.1.6
Process Purpose
Process Outcomes
3.1.7
Process Purpose
Process Outcomes
20
3.2 3.2.1
Process Outcomes
3.2.2
21
3.3 3.3.1
Process Outcomes
22
3.3.2
Process Purpose
Process Outcomes
23
3.3.3
Process Purpose
Process Outcomes
24
3.3.4
25
3.3.5
Process Purpose
Process Outcomes
26
3.3.6
27
3.3.7
Process Purpose
Process Outcomes
28
3.3.8
29
3.3.9
Process Purpose
Process Outcomes
30
3.3.10
Process Purpose
Process Outcomes
31
3.4 3.4.1
Process Outcomes
3.4.2
SUP.2 Verification
Process ID Process Name SUP.2 Verification The purpose of the Verification process is to confirm that each work product of a process or project properly reflects the specified requirements. As a result of successful implementation of this process: 1) a verification strategy is developed, implemented and maintained; 2) criteria for verification of all required work products are identified; 3) required verification activities are performed; 4) defects are identified, recorded and tracked; and 5) results of the verification activities are made available to the customer and other involved parties.
Process Purpose
Process Outcomes
32
3.4.3
Process Purpose
Process Outcomes
33
3.4.4
SUP.7 Documentation
Process ID Process Name SUP.7 Documentation The purpose of the Documentation process process is to develop and maintain the recorded information produced by a process. As a result of successful implementation of this process: 1) a strategy identifying the documentation to be produced during the life cycle of the product or service is developed; 2) the standards to be applied for the development of the documentation are identified; 3) documentation to be produced by the process or project is identified; 4) the content and purpose of all documentation is specified, reviewed and approved; 5) documentation is developed and made available in accordance with identified standards; and 6) documentation is maintained in accordance with defined criteria. NOTE: Careful attention should be paid to the customer - supplier relationship and its documents.
34
3.4.5
Process Purpose
Process Outcomes
3.4.6
Process Purpose
Process Outcomes
35
3.4.7
36
3.5 3.5.1
Process Outcomes
37
3.5.2
38
3.5.3
MAN.6 Measurement
Process ID Process Name MAN.6 Measurement The purpose of the Measurement process is to collect and analyze data relating to the products developed and processes implemented within the organization and its projects, to support effective management of the processes and to objectively demonstrate the quality of the products. As a result of successful implementation of this process: 1) organizational commitment is established and sustained to implement the measurement process; 2) the measurement information needs of organizational and management processes are identified; 3) an appropriate set of measures, driven by the information needs are identified and/or developed; 4) measurement activities are identified and performed; 5) the required data is collected, stored, analyzed, and the results interpreted; 6) information products are used to support decisions and provide an objective basis for communication; and 7) the measurement process and measures are evaluated and communicated to the process owner. NOTE: Information products are produced as a result analysis of data in order to summarise and communicate information.
Process Purpose
Process Outcomes
39
3.6 3.6.1
Process Outcomes
40
3.7 3.7.1
Process ID
Process Outcomes
41
Annex A - Terminology
Annex A lists the applicable terminology references from IEEE 630, BS 79251 and notes from the FDA General principles of software validation. Annex B provides a schematic of key concepts used in the terminology.
Baseline
IEEE610
BS7925-1
IEEE610
Coding
IEEE610
Component
BS7925-1
Detailed design
IEEE610
Formal testing conducted to enable a user, customer, or authorised entity to decide whether to accept a system or component The process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of the system A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and can be changed only through formal change control procedures. Test case selection based on an analysis of the specification of the component without reference to its internal workings A meeting at which software code is presented to project personnel, mangers, users, customers, or other interested parties for comment or approval The transforming of logic and data from design specifications (design descriptions) into programming language A minimal software or hardware item for which a separate specification is available One of the parts that makes up a system. A component may be hardware or software and may be subdivided into other components Testing of individual components or groups of related components See fault The process of defining the architecture, components, interfaces, and other characteristics of a system or component. The process of refining and expanding the preliminary design of a system or component to the extent that the design is sufficiently complete to be implemented
42
Development testing
IEEE610
Dynamic testing / Dynamic analysis Embedded software Embedded system Error Failure Fault Functional requirement Functional specification Functional testing
BS7925-1 / IEEE610
Formal or informal testing conducted during the development of a system or component, usually in the development environment by the developer A process of evaluating a system or component based on its behaviour during execution Software in an embedded system, dedicated to controlling the specific hardware of the system A system that interacts with the real physical world using actors and sensors A human action that produces an incorrect result A deviation of the system from its expected delivery or service A manifestation of an error in software. A fault, if encountered, may cause a failure The required functional behaviour of a system A document that specifies the functions that a system or component must perform. Often part of a requirements specification Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions Physical equipment used to process, store, or transmit computer programs or data A process of testing whole, complete products A test level where real hardware is used and tested in a simulated environment A process combining components into larger assemblies Performed to expose faults in the interfaces and in the interaction between integrated components A process of testing individual components one at a time or in combination A test level where the simulation model of the system is tested dynamically in a simulated environment
BS7925-1
IEEE610
Hardware High level testing HiL Hardware in the loop Integration Integration testing Low-level tests MiL Model in the loop
BS7925-1 BS7925-1
43
BS7925-1
IEEE610
Preliminary design
IEEE610
BS7925-1
BS7925-1
Requirement
IEEE610
Requirements specification
IEEE610
Simulator
BS7925-1
BS7925-1
IEEE610
A development method where the system is first described as a model. The code is then generated automatically from the models. A program unit that is discrete and identifiable with respect to compiling, combining with other units, and loading. The process of analysing design alternatives and defining the architecture, components, interfaces and timing and sizing estimates for a system or component A test level where a simulated embedded system is tested while connected to the real environment Regression of a previously tested object following modification to ensure that faults have not been introduced or uncovered as a result of the changes made A condition that must be met or possessed by a system or component to satisfy a contract, standard, specification, or other formally imposed documents A document that specifies the requirements for a system or component. Typically included are functional requirements, performance requirements, interface requirements, design requirements, and development standards A device, or computer program, or system used during software verification that behaves or operates like a given system when provided with a set of controlled inputs A test level where the real software is used and tested in a simulated environment or with experimental hardware Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Source code, object code, job control code, control data, or a collection of these items A process of evaluating a system or component without executing the test object A collection of components organised to accomplish a specific function or set of functions
44
Traceability
IEEE610
Quality assurance
IEEE610
Software validation
A process of testing an integrated system to verify that it meets specified requirements A system (or part of it) to be tested A set of processes, transactions and/or functions which are tested collectively The process of planning, preparation, execution and analysis aimed at establishing the quality level of a system The degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or master-subordinate relationship to one another A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements The process of verifying ones own work with that of a co-worker A software component that is not subdivided into other components The testing of individual software components The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements (note) Software validation activities may occur both during, as well as at the end of the software development life cycle to ensure that all requirements have been fulfilled. Since software is usually part of a larger hardware system, the validation of software typically includes evidence that all software requirements have been implemented correctly and completely and are traceable to system requirements. A conclusion that software is validated is highly dependent upon comprehensive software testing, inspections, analyses, and other verification tasks performed at each stage of the software development life cycle. Testing of device software functionality in a simulated use environment, and user site testing are typically included as components of an
45
Verification
IEEE610
Software verification
White-box testing
BS7925-1
overall design validation program for a software automated device. In large measure, software validation is a matter of developing a "level of confidence" that the device meets all requirements and user expectations for the software automated functions and features of the device. Measures such as defects found in specifications documents, estimates of defects remaining, testing coverage, and other techniques are all used to develop an acceptable level of confidence before shipping the product. The process of evaluating a system or component to determine whether products of a given development phase satisfy the conditions imposed at the start of that phase (note) Software verification looks for consistency, completeness, and correctness of the software and its supporting documentation, as it is being developed, and provides support for a subsequent conclusion that software is validated. Software testing is one of many verification activities intended to confirm that software development output meets its input requirements. Other verification activities include various static and dynamic analyses, code and document inspections, walkthroughs, and other techniques. Test design techniques that derive test cases from the internal properties of an object, using knowledge of the internal structure of the object
46
customer requirements 1.. elicit Are derived 1.. elicit Requirements elicitation System architectural design
Are allocated to
System Integration
proces
Acceptance Testing validates Specifies requirements System 1.. 1.. 1.. 1.. integrates integrates System Integration Are derived from verifies System Testing
verification criteria
elicit
uses
Are allocated to
1.. 1 specify 1
1..
Hardware
Hardware requirement s
Validates SW-only systems Are allocated to 1.. Software requiremen 1 specify 1 1.. verifies Software 1 Are derived Software Testing verification criteria
Software design
1.. SoftwareComponent
uses
47
48