IDM UID 2NRS2K VERSION CREATED ON / VERSION / STATUS 17 Nov 2011 / 3.1 / APPROVED EXTERNAL REFERENCE Plan SEQA-45 - Software Engineering and Quality Assurance for CODAC This document describes general rules, practices and recommendations for software engineering and quality assurance in the scope of ITER CODAC activities. Author CoAuthor Reviewers Approver Read Access Name Stepanov D. Approval Process Action 17-Nov-2011:signed Klotz W.- D. Wallander A. Bora D. Affiliation IO/DG/DIP/CHD/CSD/CDC 21-Nov-2011:recommended IO/DG/DIP/CHD/CSD 17-Nov-2011:recommended IO/DG/DIP/CHD/CSD/CDC 22-Nov-2011:approved IO/DG/DIP/CHD Document Security: level 1 (IO unclassified) RO: Stepanov Denis AD: ITER, AD: External Collaborators, AD: Division - Control System Division - EXT, AD: Section CODAC - EXT, AD: Division - Control System Division, AD: Section - CODAC, AD: ITER Management Assessor, project administrator, RO, AD: Section - Plant Control and Instrumentation PDF generated on 23-Nov-2011 Title (Uid) SEQA-45 - Software Engineering and Quality Assurance for CODAC (2NRS2K_v3_1) SEQA-45 - Software Engineering and Quality Assurance for CODAC (2NRS2K_v3_0) SEQA-45 - Software Engineering and Quality Assurance for CODAC (2NRS2K_v2_1) SEQA-45 - Software Engineering and Quality Assurance for CODAC (2NRS2K_v2_0) SEQA-45 - Software Engineering and Quality Assurance for CODAC (2NRS2K_v1_0) Change Log Issue Date 17 Nov 2011 Version v3.1 Latest Status Approved Description of Change The version for the CODAC PDR: - Updated the documentation overview figure; - Implemented comments from J.Poole. v3.0 In Work 20 Oct 2011 Major rewrite in view of ISO/IEC 12207 conformance. Version for internal review. v2.1 Approved 11 Feb 2011 Minor corrections after the internal and external reviews. v2.0 Signed 10 Jan 2011 Updated for the inclusion into the PCDH v6. v1.0 Approved 22 Jul 2009 PDF generated on 23-Nov-2011 Table of contents 1 INTRODUCTION...................................................................................................................3 1.1 1.2 1.3 1.4 1.5 1.6 2 Purpose ...............................................................................................................................3 PCDH Context ...................................................................................................................3 DDD-45 Context.................................................................................................................4 Scope ...................................................................................................................................4 Definitions...........................................................................................................................4 References...........................................................................................................................6 CODAC ISO/IEC 12207 CONFORMITY ............................................................................7 2.1 Approach ............................................................................................................................7 2.2 ISO/IEC 12207 Conformity Statement............................................................................7 2.3 ISO/IEC 12207 Conformity Matrix .................................................................................8 2.4 ISO/IEC 12207 Implementation Details ..........................................................................9 2.4.1 Acquisition Process......................................................................................................10 2.4.2 Supply Process .............................................................................................................10 2.4.3 Life Cycle Model Management Process ......................................................................10 2.4.4 Infrastructure Management Process.............................................................................10 2.4.5 Project Portfolio Management Process ........................................................................11 2.4.6 Human Resource Management Process.......................................................................11 2.4.7 Quality Management Process ......................................................................................11 2.4.8 Project Planning Process..............................................................................................11 2.4.9 Project Assessment and Control Process .....................................................................12 2.4.10 Decision Management Process ....................................................................................12 2.4.11 Risk Management Process ...........................................................................................12 2.4.12 Configuration Management Process ............................................................................13 2.4.13 Information Management Process ...............................................................................13 2.4.14 Measurement Management Process.............................................................................13 2.4.15 Stakeholder Requirements Definition Process.............................................................13 2.4.16 System Requirements Analysis Process ......................................................................14 2.4.17 System Architectural Design Process ..........................................................................14 2.4.18 Implementation Process ...............................................................................................14 2.4.19 System Integration Process ..........................................................................................14 2.4.20 System Qualification Testing Process .........................................................................15 2.4.21 Software Installation Process .......................................................................................15 2.4.22 Software Acceptance Support Process.........................................................................15 2.4.23 Software Operation Process .........................................................................................15 2.4.24 Software Maintenance Process ....................................................................................16 2.4.25 Software Disposal Process ...........................................................................................16 2.4.26 Software Implementation Process................................................................................16 2.4.27 Software Requirements Analysis Process....................................................................16 2.4.28 Software Architectural Design Process .......................................................................17 2.4.29 Software Detailed Design Process ...............................................................................17 2.4.30 Software Construction Process ....................................................................................17 2.4.31 Software Integration Process .......................................................................................17 2.4.32 Software Qualification Testing Process.......................................................................18 2.4.33 Software Documentation Management Process ..........................................................18 Page 1 of 22 2.4.34 2.4.35 2.4.36 2.4.37 2.4.38 2.4.39 2.4.40 2.4.41 2.4.42 2.4.43 Software Configuration Management Process.............................................................18 Software Quality Assurance Process ...........................................................................18 Software Verification Process......................................................................................18 Software Validation Process ........................................................................................19 Software Review Process.............................................................................................19 Software Audit Process................................................................................................19 Software Problem Resolution Process .........................................................................19 Domain Engineering Process .......................................................................................19 Reuse Asset Management Process...............................................................................20 Reuse Program Management Process ..........................................................................20 3 PRINCIPAL DOCUMENTATION.....................................................................................21 4 PROJECT CLASSIFICATION...........................................................................................22 Page 2 of 22 1 INTRODUCTION 1.1 Purpose This document describes general rules, practices and recommendations for software engineering in the scope of ITER CODAC activities. 1.2 PCDH Context The Plant Control Design Handbook (PCDH) [RD1] defines the methodology, standards, specifications and interfaces applicable to ITER plant systems’ instrumentation and control (I&C) system life cycle. I&C standards are essential for ITER to: Integrate all plant systems into one integrated control system; Maintain all plant systems after delivery acceptance; Contain cost by economy of scale. The PCDH comprises a core document which presents the plant system I&C life cycle and recaps the main rules to be applied to the plant system I&Cs for conventional controls, interlocks and safety controls. Some I&C topics will be explained in greater detail in dedicated documents associated with PCDH as presented on Figure 1-1. This document is one of them. Its objective is to describe the software engineering and quality assurance (QA) in more detail. Figure 1-1: PCDH documentation structure Page 3 of 22 1.3 DDD-45 Context The Design Description Document for CODAC (DDD-45, [RD2]) describes CODAC design assumptions and candidate solutions for them. Some of these topics are covered in more detail in the annex documents. This document makes a part of the DDD-45 package focusing on the software engineering and QA topic. 1.4 Scope This document describes general rules, practices and recommendations for software engineering in the scope of ITER CODAC activities. It defines the overall approach; technology-specific topics are described in separate reference documents. The content of this document applies to the development of the CODAC System (PBS 45). Plant system I&Cs prepared in the scope of the PCDH are also subject to these requirements. The Central Interlock System (PBS 46), the plasma control algorithms (PBS 47), and Central Safety Systems (PBS 48) are not addressed yet. This document is primarily focused on the CODAC System (PBS 45). Chapter 2 gives a standard conformity statement for CODAC. Software for control system elements qualified as COTS devices does not have to follow these rules and should follow the engineering and quality assurance guidelines of their respective manufacturers and/or maintainers instead. COTS components will be selected in such a way that their integration does not degrade the overall quality level of CODAC. 1.5 Definitions Many terms and definitions used in this document are explained in the glossary of the ISO/IEC 12207 standard ([RD3]). The ISO/IEC 12207 standard is broken down into two main parts – system engineering and software engineering. By the “system” we understand hereafter a plant system I&C or a central system (central systems are treated as plant systems PBS 45, PBS 46, PBS 47 and PBS 48, with some special control features). The system includes both hardware and software. System engineering in the I&C context is addressed by the PCDH ([RD1]) and this annex document is focused on software engineering. For some processes the system engineering for I&C follows the same life cycle as for its plant system and is thus governed by overall ITER Organization (IO) practices; this is noted specifically in section 2.2. The following abbreviations and acronyms are used in this document (Table 1-1): ADM ADMinistration directorate CIE Central Integration and Engineering directorate CIS Central Interlock System CODAC Control, Data Access and Communication COTS Commercial Off-The-Shelf CWS Cooling Water System D-T Deuterium-Tritium DDD Design Description Document Page 4 of 22 DOORS Dynamic Object Oriented Requirements System DR Document Review DT Document Templates EPICS Experimental Physics and Industrial Control System FDIS Final Draft International Standard FPGA Field Programmable Gate Array GD Generic Document HMI Human-Machine Interface HPN High Performance Networks I&C Instrumentation and Control IDM ITER Document Management IEC International Electrotechnical Commission IO ITER Organization ISO International Standards Organization LCC Local Control Cubicle PBS Plant Breakdown Structure PCDH Plant Control Design Handbook PIS Plant Interlock System PLC Programmable Logic Controller PS Plant System PSS Plant Safety System QA Quality Assurance R&D Research and Development RD Reference Document SADD Software Architecture and Design Description SCC Signal Conditioning Cubicle SCMP Software Configuration Management Plan SCP System Context Processes SDMP Software Documentation Management Plan SDP Software Development Plan SDSD Software Development Standards Description SEQA Software Engineering and Quality Assurance SPMP Software Project Management Plan SQAP Software Quality Assurance Plan SQL Structured Query Language SQS Safety, Quality and Security department SRC SouRCe code SRD System Requirements Document SRS Software Requirements Specification SSP Software Specific Processes Page 5 of 22 STP Software Test Plan STR Software Test Report SUM Software User Manual SVN SubVersioN SW SoftWare TBD To Be Defined -T Template -β Beta- or draft version Table 1-1: Abbreviations 1.6 References [RD1] [RD2] [RD3] [RD4] [RD5] [RD6] [RD7] [RD8] [RD9] [RD10] [RD11] [RD12] [RD13] [RD14] [RD15] [RD16] [RD17] [RD18] [RD19] [RD20] [RD21] [RD22] [RD23] [RD24] [RD25] Plant Control Design Handbook (27LH2V v6.1) CODAC DDD (6M58M9 v1.1) ISO/IEC FDIS 12207:2008(E) (http://www.iso.org/iso/catalogue_detail?csnumber=43447) Plant Systems Factory Acceptance Plan for I&C systems (3VVU9W v1.5) ITER Procurement Quality Requirements (22MFG4 v4.0) IDM Manual (22223J v5.12) Central I&C Systems - Implementation Plan (33HDSA v1.0) CODAC Inventory Management System (4EEDXH) Linux Admin Pages (https://portal.iter.org/departments/CHD/CODAC/Linux%20Admin/1ndex.aspx) SPMP-45 – Software Project Management Plan for CODAC (6SGJKJ, version TBD) ITER Quality Assurance Program (22K4QX v7.3) ITER Templates (2DJT9B) System Requirements Documents (SRDs) (29D6G7) Using DOORS on ITER Technical Baseline Documents (2MR6Z9 v1.1) Design Review Procedure (2832CF v1.12) System Design Description Documents (DDDs) (29D8PA) CODAC Core System Installation Manual (33JNKW v1.17) CODAC Core System Training (4F9M4T) CODAC Core System Support Procedures (34EHTM v1.3) Core Systems Roadmap (2LTB5T v3.0) Bugzilla Tutorial (33KAC4 v1.0) SDP-45 – Software Development Plan for CODAC (6SLYRM v1.0) SDMP-45 – Software Documentation Management Plan for CODAC (6SR4UQ v1.0) SCMP-45 – Software Configuration Management Plan for CODAC (6SNQCR v1.0) SQAP-45 – Software Quality Assurance Plan for CODAC (6SNDEV v1.0) Page 6 of 22 2 CODAC ISO/IEC 12207 CONFORMITY 2.1 Approach CODAC has decided to follow the ISO/IEC 12207 international standard ([RD3]) for its software-related activities. This standard breaks down all the software activities into groups of processes, which are presented in Figure 2-1. Figure 2-1: ISO/IEC 12207 life cycle processes Hereafter, “the International Standard” refers to the ISO/IEC 12207, as defined in the reference [RD3]. 2.2 ISO/IEC 12207 Conformity Statement CODAC claims tailored conformity for all processes defined in the ISO/IEC 12207 International Standard, except for the Project Portfolio Management Process. The tailored conformity claim is based on the zero level analysis executed for existing practices of CODAC and ITER Organization. The ultimate goal of standardization is to go for full conformity for some of the aforementioned processes, subject to thorough analysis, documentation and adjustment of the existing processes. This will be gradually implemented in the future. Page 7 of 22 2.3 ISO/IEC 12207 Conformity Matrix The Table 2-1 summarizes the current conformity level for CODAC. The cell color means the following: green – the process has been implemented (levels 1 to 5 on the process capability scale, as defined in Annex B of the Standard ([RD3])); yellow – the process has been partially implemented (level 0 on the process capability scale); red – the process is missing / not implemented; no color – the process is not applicable. The cell content means the following: “IO” – regular IO procedures apply; “IO + CODAC” – CODAC-specific procedures defined on top of the regular IO procedures; “CODAC” – the procedures defined only in the CODAC context. № Process 1 Acquisition Process 2 Supply Process 3 CODAC implementation Details (see section) IO + CODAC 2.4.1 IO 2.4.2 Life Cycle Model Management Process CODAC 2.4.3 4 Infrastructure Management Process CODAC 2.4.4 5 Project Portfolio Management Process N/A 2.4.5 6 Human Resource Management Process IO + CODAC 2.4.6 7 Quality Management Process IO 2.4.7 8 Project Planning Process IO + CODAC 2.4.8 9 Project Assessment and Control Process IO + CODAC 2.4.9 10 Decision Management Process IO 2.4.10 11 Risk Management Process IO + CODAC 2.4.11 12 Configuration Management Process IO 2.4.12 13 Information Management Process IO 2.4.13 14 Measurement Management Process IO 2.4.14 15 Stakeholder Requirements Definition Process IO 2.4.15 16 System Requirements Analysis Process IO 2.4.16 17 System Architectural Design Process IO 2.4.17 18 Implementation Process IO 2.4.18 19 System Integration Process IO 2.4.19 20 System Qualification Testing Process IO 2.4.20 Page 8 of 22 21 Software Installation Process IO + CODAC 2.4.21 22 Software Acceptance Support Process CODAC 2.4.22 23 Software Operation Process IO + CODAC 2.4.23 24 Software Maintenance Process CODAC 2.4.24 25 Software Disposal Process CODAC 2.4.25 26 Software Implementation Process CODAC 2.4.26 27 Software Requirements Analysis Process CODAC 2.4.27 28 Software Architectural Design Process CODAC 2.4.28 29 Software Detailed Design Process CODAC 2.4.29 30 Software Construction Process CODAC 2.4.30 31 Software Integration Process CODAC 2.4.31 32 Software Qualification Testing Process CODAC 2.4.32 33 Software Documentation Management Process CODAC 2.4.33 34 Software Configuration Management Process CODAC 2.4.34 35 Software Quality Assurance Process CODAC 2.4.35 36 Software Verification Process CODAC 2.4.36 37 Software Validation Process CODAC 2.4.37 38 Software Review Process CODAC 2.4.38 39 Software Audit Process CODAC 2.4.39 40 Software Problem Resolution Process CODAC 2.4.40 41 Domain Engineering Process CODAC 2.4.41 42 Reuse Asset Management Process CODAC 2.4.42 43 Reuse Program Management Process CODAC 2.4.43 Table 2-1: ISO/IEC 12207 conformity matrix for CODAC 2.4 ISO/IEC 12207 Implementation Details CODAC implements the ISO/IEC 12207 processes to a different level of completeness and/or robustness, depending on the current activities and priorities. The following sections provide explanations of process implementation. Page 9 of 22 2.4.1 Acquisition Process Purpose: The purpose of the Acquisition Process is to obtain the product and/or service that satisfy the need expressed by the acquirer. The process begins with the identification of customer needs and ends with the acceptance of the product and/or service needed by the acquirer. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Procurement and Contract Division). The acquirer acceptance activity in the scope of PCDH is defined in reference [RD4]. 2.4.2 Supply Process Purpose: The purpose of the Supply Process is to provide a product or service to the acquirer that meets the agreed requirements. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Procurement and Contract Division). The quality requirements for procurement are defined in reference [RD5]. 2.4.3 Life Cycle Model Management Process Purpose: The purpose of the Life Cycle Model Management Process is to define, maintain, and assure availability of policies, life cycle processes, life cycle models, and procedures for use by the organization with respect to the scope of this International Standard. This process provides life cycle policies, processes, and procedures that are consistent with the organization's objectives, that are defined, adapted, improved and maintained to support individual project needs within the context of the organization, and that are capable of being applied using effective, proven methods and tools. Implementation: This process is implemented selectively for the most important life cycle models, like the I&C life cycle, documented in the PCDH ([RD1]). The working instrument for this process is IDM (see [RD6]). 2.4.4 Infrastructure Management Process Purpose: The purpose of the Infrastructure Management Process is to provide the enabling infrastructure and services to projects to support organization and project objectives throughout the life cycle. This process defines, provides and maintains the facilities, tools, and communications and information technology assets needed for the organization’s business with respect to the scope of this International Standard. Page 10 of 22 Implementation: CODAC has defined a strategy for infrastructure procurement and management which is described in references [RD7] and Error! Reference source not found.. The process is supported by the inventory database [RD8] and is documented in SharePoint [RD9]. 2.4.5 Project Portfolio Management Process Purpose: The purpose of the Project Portfolio Management Process is to initiate and sustain necessary, sufficient and suitable projects in order to meet the strategic objectives of the organization. This process commits the investment of adequate organization funding and resources, and sanctions the authorities needed to establish selected projects. It performs continued qualification of projects to confirm they justify, or can be redirected to justify, continued investment. Implementation: This process is not very applicable in the ITER context. Certain R&D projects could be managed under this process. 2.4.6 Human Resource Management Process Purpose: The purpose of the Human Resource Management Process is to provide the organization with necessary human resources and to maintain their competencies, consistent with business needs. The process assures the providing of a supply of skilled and experienced personnel qualified to perform life cycle processes to achieve organization, project and customer objectives. Implementation: Standard organization practices apply (defined and maintained by the IO Department for Administration, Human Resources Division). Projected profile of CODAC hiring until the ITER D-T phase is available in reference [RD7]. Software management aspects are covered in the CODAC software project management plan [RD10]. 2.4.7 Quality Management Process Purpose: The purpose of the Quality Management Process is to assure that products, services and implementations of life cycle processes meet organizational quality objectives and achieve customer satisfaction. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Safety, Quality and Security, Quality Assurance Division). The general process is described in [RD10]. Software-specific procedures are covered in section 2.4.35. Page 11 of 22 2.4.8 Project Planning Process Purpose: The purpose of the Project Planning Process is to produce and communicate effective and workable project plans. This process determines the scope of the project management and technical activities, identifies process outputs, project tasks and deliverables, establishes schedules for project task conduct, including achievement criteria, and required resources to accomplish project tasks. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Project Management Division). Software management aspects are covered in the CODAC software project management plan [RD10]. 2.4.9 Project Assessment and Control Process Purpose: The purpose of the Project Assessment and Control Process is to determine the status of the project and ensure that the project performs according to plans and schedules, and within projected budgets, and that it satisfies technical objectives. This process includes redirecting the project activities, as appropriate, to correct identified deviations and variations from other project management or technical processes. Redirection may include replanning as appropriate. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Project Management Division). Software management aspects are covered in the CODAC software project management plan [RD10]. 2.4.10 Decision Management Process Purpose: The purpose of the Decision Management Process is to select the most beneficial course of project action where alternatives exist. This process responds to a request for a decision encountered during the system life cycle, whatever its nature or source, in order to reach specified, desirable or optimized outcomes. Alternative actions are analyzed and a course of action selected and directed. Decisions and their rationale are recorded to support future decision-making. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Project Management Division). 2.4.11 Risk Management Process Purpose: The purpose of the Risk Management Process is to identify, analyze, treat and monitor the risks continuously. Page 12 of 22 The Risk Management Process is a continuous process for systematically addressing risk throughout the life cycle of a system or software product or service. It can be applied to risks related to the acquisition, development, maintenance or operation of a system. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Project Management Division). Software management aspects are covered in the CODAC software project management plan [RD10]. 2.4.12 Configuration Management Process Purpose: The purpose of the Configuration Management Process is to establish and maintain the integrity of all identified outputs of a project or process and make them available to concerned parties. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). Software-specific procedures are covered in section 2.4.34. 2.4.13 Information Management Process Purpose: The purpose of the Information Management Process is to provide relevant, timely, complete, valid and, if required, confidential information to designated parties during and, as appropriate, after the system life cycle. This process generates, collects, transforms, retains, retrieves, disseminates and disposes of information. It manages designated information, including technical, project, organizational, agreement and user information. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Document Control and Project Information System Sections). The principal instrument is IDM (see [RD6]). Standard document templates are given in reference [RD12]. 2.4.14 Measurement Management Process Purpose: The purpose of the Measurement Process is to collect, analyze, and report data relating to the products developed and processes implemented within the organizational unit, to support effective management of the processes and to objectively demonstrate the quality of the products. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Administration, Project Management Division). Page 13 of 22 2.4.15 Stakeholder Requirements Definition Process Purpose: The purpose of the Stakeholder Requirements Definition Process is to define the requirements for a system that can provide the services needed by users and other stakeholders in a defined environment. It identifies stakeholders, or stakeholder classes, involved with the system throughout its life cycle, and their needs and desires. It analyzes and transforms these into a common set of stakeholder requirements that express the intended interaction the system will have with its operational environment and that are the reference against which each resulting operational service is validated in order to confirm that the system fulfils needs. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). 2.4.16 System Requirements Analysis Process Purpose: The purpose of System Requirements Analysis is to transform the defined stakeholder requirements into a set of desired system technical requirements that will guide the design of the system. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). System requirements are maintained as set of change controlled documents, available in reference [RD13]. The tool to manage requirements is DOORS (see [RD14]). 2.4.17 System Architectural Design Process Purpose: The purpose of the System Architectural Design Process is to identify which system requirements should be allocated to which elements of the system. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). The design review procedure is described in reference [RD15] and the design description documents are available in reference [RD16]. 2.4.18 Implementation Process Purpose: The purpose of the Implementation Process is to realize a specified system element. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). Page 14 of 22 2.4.19 System Integration Process Purpose: The purpose of the System Integration Process is to integrate the system elements (including software items, hardware items, manual operations and other systems, as necessary) to produce a complete system that will satisfy the system design and the customers’ expectations expressed in the system requirements. Implementation: Standard IO practices apply (defined and maintained by the IO Department for ITER Project, Technical Integration Division). 2.4.20 System Qualification Testing Process Purpose: The purpose of the Systems Qualification Testing Process is to ensure that the implementation of each system requirement is tested for compliance and that the system is ready for delivery. Implementation: Standard IO practices apply (defined and maintained by the IO Department for Safety, Quality and Security, Quality Assurance Division). 2.4.21 Software Installation Process Purpose: The purpose of the Software Installation Process is to install the software product that meets the agreed requirements in the target environment. Implementation: CODAC has defined a specific procedure of software subscription, distribution, installation and updates, described in reference [RD9]. The user documentation is available in reference [RD17]. Otherwise, for Windows-based systems and standard office software, standard IO practices apply (defined and maintained by the IO Department for Administration, Project Information System Section). 2.4.22 Software Acceptance Support Process Purpose: The purpose of the Software Acceptance Support Process is to assist the acquirer to achieve confidence that the product meets requirements. Implementation: CODAC delivers its products in accordance with the software installation process (see section 2.4.21). To support acquirer acceptance the CODAC team runs training sessions for the delivered software (see [RD18] for details). Software problems found in the customer’s environment are resolved in accordance with the software operation process, described in section 2.4.23. Page 15 of 22 2.4.23 Software Operation Process Purpose: The purpose of the Software Operation Process is to operate the software product in its intended environment and to provide support to the customers of the software product. Implementation: The operation strategy will be defined by the Department for ITER Project, Assembly and Operations Division. CODAC contributes to this process by providing conditions for correct operation of the software in its intended environment. A helpdesk is established to react to problems encountered in customer’s environment. Support procedures are defined in reference [RD19]. 2.4.24 Software Maintenance Process Purpose: The purpose of the Software Maintenance Process is to provide cost-effective support to a delivered software product. Implementation: The CODAC maintenance process is described in references [RD7] and [RD20]. The detailed follow-up is done using Bugzilla (see [RD21]). 2.4.25 Software Disposal Process Purpose: The purpose of the Software Disposal Process is to end the existence of a system’s software entity. This process ends active support by the operation and maintenance organization, or deactivates, disassembles and removes the affected software products, consigning them to a final condition and leaving the environment in an acceptable condition. This process destroys or stores system software elements and related products in a sound manner, in accordance with legislation, agreements, organizational constraints and stakeholder requirements. Where required, it maintains records that may be monitored. Implementation: Currently this process is not implemented on its own and exists as part of the Software Installation Process (see section 2.4.21). Knowledge retention and software archive are implemented as a part of the Software Configuration Management Process (see section 2.4.34). 2.4.26 Software Implementation Process Purpose: The purpose of the Software Implementation Process is to produce a specified system element implemented as a software product or service. This process transforms specified behavior, interfaces and implementation constraints into actions that create a system element implemented as a software product or service, otherwise known as a "software item." This process results in a software item that satisfies architectural design requirements through verification and stakeholder requirements through validation. Page 16 of 22 Implementation: This is a principal process implemented by CODAC. It is documented in the CODAC software development plan [RD22]. 2.4.27 Software Requirements Analysis Process Purpose: The purpose of Software Requirements Analysis Process is to establish the requirements of the software elements of the system. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.28 Software Architectural Design Process Purpose: The purpose of the Software Architectural Design Process is to provide a design for the software that implements and can be verified against the requirements. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.29 Software Detailed Design Process Purpose: The purpose of the Software Detailed Design Process is to provide a design for the software that implements and can be verified against the requirements and the software architecture and is sufficiently detailed to permit coding and testing. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.30 Software Construction Process Purpose: The purpose of the Software Construction Process is to produce executable software units that properly reflect the software design. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.31 Software Integration Process Purpose: The purpose of the Software Integration Process is to combine the software units and software components, producing integrated software items, consistent with the software design, that Page 17 of 22 demonstrate that the functional and non-functional software requirements are satisfied on an equivalent or complete operational platform. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.32 Software Qualification Testing Process Purpose: The purpose of the Software Qualification Testing Process is to confirm that the integrated software product meets its defined requirements. Implementation: This process is a lower-level process of the Software Implementation Process (see section 2.4.26). 2.4.33 Software Documentation Management Process Purpose: The purpose of the Software Documentation Management Process is to develop and maintain the recorded software information produced by a process. Implementation: This process is a specialization of the Information Management Process from the Project Process Group (see section 2.4.13). The software-specific guidelines are given in CODAC software documentation management plan [RD23]. CODAC software documentation templates (see chapter 3) are based on general ITER templates. 2.4.34 Software Configuration Management Process Purpose: The purpose of the Software Configuration Management Process is to establish and maintain the integrity of the software items of a process or project and make them available to concerned parties. Implementation: This process is a specialization of the Configuration Management Process from the Project Process Group (see section 2.4.12). The software-specific guidelines are given in the CODAC software configuration management plan [RD24]. The principal working tool is Subversion. 2.4.35 Software Quality Assurance Process Purpose: The purpose of the Software Quality Assurance Process is to provide assurance that work products and processes comply with predefined provisions and plans. Implementation: This process is executed in accordance with the CODAC software quality assurance plan [RD25]. The principal tracking tool is Bugzilla. Page 18 of 22 2.4.36 Software Verification Process Purpose: The purpose of the Software Verification Process is to confirm that each software work product and/or service of a process or project properly reflects the specified requirements. Implementation: This process is executed in accordance with the CODAC software quality assurance plan [RD25]. 2.4.37 Software Validation Process Purpose: The purpose of the Software Validation Process is to confirm that the requirements for a specific intended use of the software work product are fulfilled. Implementation: This process is executed in accordance with the CODAC software quality assurance plan [RD25]. 2.4.38 Software Review Process Purpose: The purpose of the Software Review Process is to maintain a common understanding with the stakeholders of the progress against the objectives of the agreement and what should be done to help ensure development of a product that satisfies the stakeholders. Software reviews are at both project management and technical levels and are held throughout the life of the project. Implementation: This process is executed in accordance with the CODAC software quality assurance plan [RD25]. 2.4.39 Software Audit Process Purpose: The purpose of the Software Audit Process is to independently determine compliance of selected products and processes with the requirements, plans and agreement, as appropriate. Implementation: This process is executed in accordance with the CODAC software quality assurance plan [RD25]. 2.4.40 Software Problem Resolution Process Purpose: The purpose of the Software Problem Resolution Process is to ensure that all discovered problems are identified, analyzed, managed and controlled to resolution. Implementation: Page 19 of 22 This process is executed in accordance with the CODAC software quality assurance plan [RD25]. 2.4.41 Domain Engineering Process Purpose: The purpose of the Domain Engineering Process is to develop and maintain domain models, domain architectures and assets for the domain. Implementation: The processes 2.4.41, 2.4.42, 2.4.43 have currently only been partially implemented and have not yet been documented properly; a more formalized approach and better implementation are planned for the future. 2.4.42 Reuse Asset Management Process Purpose: The purpose of the Reuse Asset Management Process is to manage the life of reusable assets from conception to retirement. Implementation: See section 2.4.41. 2.4.43 Reuse Program Management Process Purpose: The purpose of the Reuse Program Management Process is to plan, establish, manage, control, and monitor an organization’s reuse program and to systematically exploit reuse opportunities. Implementation: See section 2.4.41. Page 20 of 22 3 PRINCIPAL DOCUMENTATION The Software Documentation Management Process (see section 2.4.33) defines documentation to support the CODAC software life cycle. An overview of the documentation is shown in Figure 3-1. CODAC-specific PBS-neutral DDD-45 (6M58M9) PCDH (27LH2V) Other IO documents (ADM, SQS, CIE procedures) ISO/IEC 12207 System Context Processes (SCP) (annex) (annex) ISO/IEC 12207 Software Specific Processes (SSP) SEQA-45 (2NRS2K) SSP-45 - Software Specific Processes DT - Document Templates SDP-45 (6SLYRM) SDP-T (6SBM8H) SRS-T (6SBM8H) SQAP-45 (6SNDEV) SQAP-T (6SCS8T) SADD-T (6S6B8E) SCMP-45 (6SNQCR) SCMP-T(6SHDUZ) STP-T (3PD8H3) SPMP-45 (6SGJKJ) SPMP-T(6SLABB) STR-T (6SBGVY) SDMP-45 (6SR4UQ) SDMP-T(6SHSCD) SUM-T (3QSXSE) GD-T (33ZDG3) SDSD-T (6SJPHF) SDSD – Development Standards Language Standards (Java, Python, C, SQL, …) Development Tool Guidelines (SVN, Bugzilla, Maven, …) Device Development Methods (EPICS, PLC, FPGA, …) DR-T (6S7242) Figure 3-1: Software-related documentation The documentation is organized as follows: 1) SCP-45 – system context processes for CODAC. These include the CODAC DDD ([RD2]), the PCDH ([RD1]) for plant system-specific processes and a number of ITER Organization documents mentioned in section 2.4. 2) SEQA-45 – this document, summarizing CODAC approach to software engineering and quality assurance; 3) SSP-45 – supporting documentation for the CODAC software specific processes. These include in particular: a. SDP-45 – CODAC software development plan, [RD22] ; b. SQAP-45 – CODAC software quality assurance plan, [RD25]; c. SCMP-45 – CODAC software configuration management plan, [RD24]; d. SPMP-45 – CODAC software project management plan, [RD10]; e. SDMP-45 – CODAC documentation management plan, [RD23]; 4) DT – various document templates, which must be used to implement projects and processes in the scope of CODAC activities. 5) SDSD – software development standards descriptions. This is a collection of projectindependent manuals, how-to’s and guidelines, intended to describe software development practices which facilitate development, integration and maintenance of software. More information about the documentation is available in the software documentation management plan [RD23]. Page 21 of 22 4 PROJECT CLASSIFICATION Projects executed in the scope of CODAC activities are classified using project levels. The aim of this classification is to apply rigorous quality control procedures for critical projects and to relieve non-critical projects from unnecessary time-consuming bureaucracy. Three levels of projects are defined, as shown in Table 4-1; the evaluation depends on project complexity and confidence in implementation. Complexity \ Risk High risk Medium risk Low risk Complex L1 L1 L2 Medium L1 L2 L3 Easy L2 L3 L3 Table 4-1: Project classification Apart from complexity and risk analysis, other factors may influence project classification (e.g., a fixed level of quality assurance for a given task or contract). Once the project level is defined, the key development milestones and deliverables are applied as follows (Table 4-2): Milestones & Deliverables L1 L2 L3 Software Requirements Review SRS SRS SRS Preliminary Software Design Review SADD-β, STP-β – – Final Software Design Review SADD, STP SADD, STP – Preliminary Software Implementation Review SRC-β, STR-β, SUM-β – – Final Software Implementation Review and Acceptance SRC, STR, SUM SRC, STR, SUM SRC, STR, SUM Table 4-2: Key milestones and deliverables for different project levels More details on the metrics of project classification are given in the CODAC software project management plan ([RD10]). With regard to ISO/IEC 12207 processes, the projects executed in the scope of CODAC activities should rely on and follow the processes described for the CODAC system (see chapter 2). Page 22 of 22