轨道交通软件功能安全标准解析与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 软件人员能力

标准第5.2条从人员岗位职责方面阐述了产品研发的要求。

3.2.1 标准条款

5.2 Personnel competence

5.2.1 Objectives

5.2.1.1 To ensure that all personnel who have responsibilities for the software are competent to discharge those responsibilities by demonstrating the ability to perform relevant tasks correctly, efficiently and consistently to a high quality and under varying conditions.

5.2.2 Requirements

5.2.2.1 The key competencies required for each role in the software development are defined in Annex B. If additional experience, capabilities or qualifications are required for a role in the software life cycle, these shall be defined in the Software Quality Assurance Plan.

5.2.2.2 Documented evidence of personnel competence, including technical knowledge, qualifications, relevant experience and appropriate training, shall be maintained by the supplier's organisation in order to demonstrate appropriate safety organisation.

5.2.2.3 The organisation shall maintain procedures to manage the competence of personnel to suit appropriate roles in accordance to existing quality standards.

5.2.2.4 Once it has been proved to the satisfaction of an assessor or by a certification that competence has been demonstrated for all personnel appointed in various roles, each individual will need to show continuous maintenance and development of competence. This could be demonstrated by keeping a logbook showing the activity is being regularly carried out correctly, and that additional training is being undertaken in accordance with EN ISO 9001 and ISO/IEC 90003:2004, 6.2.2“Competence, awareness and training”.

5.2人员技能

5.2.1 目标

确保所有对软件负有责任的人员有权利运用他们的职责,并且证明他们有能力在不同条件下正确、高效地完成相关任务,并始终如一追求高质量。

5.2.2 要求

5.2.2.1 软件开发过程中每个角色的主要能力要求见附录B。在软件生命周期中,如果对某个角色有额外的经验、能力或资质方面的要求应该在软件质量保证计划中定义。

5.2.2.2 为了证明具备合适的安全组织管理,供应商应该对人员能力证明(包括技术知识、资格证书、相关经验和合适的培训记录等)进行记录。

5.2.2.3 公司应该根据现行的质量标准维护规程,以保证人员能力与其角色相匹配。

5.2.2.4在个人满足评估员的要求或具备胜任其角色的资格证明的情况下,还必须提供不断维护和提高个人能力的证明。这些可以通过正确实施活动的日志,以及按照EN ISO 9001和ISO/IEC 90003:2004中6.2.2“能力,意识,培训”要求进行的培训记录来证明。

3.2.2 条款理解及应用

标准具体规定了从事安全相关产品研发中需求经理、设计者、执行者、集成者、测试者、验证者和确认者7个角色应履行的职责及技术要求。

1)需求经理

(1)需求经理其职责为:

● 负责定软件需求;

● 应该制定软件需求规格说明书;

● 应该建立和保持系统级需求的可追溯性;

● 应该确保规格说明书、软件需求变更和配置管理材料齐全,包括:状态、版本、授权状态;

● 应该确保软件需求规格说明书的一致性和完整性(参考用户需求和最终的应用环境);

● 应该形成和维护软件需求文档。

(2)其技能要求为:

● 具备需求管理的能力;

● 在应用程序领域具有丰富的经验;

● 在应用程序领域安全性方面具有的丰富经验;

● 应该熟悉整个系统的所有角色和应用环境;

● 应该了解分析技术和成果;

● 应该理解适用的法规。

2)软件设计者

(1)软件设计者其职责为:

● 将具体的软件需求转换成满意的方案;

● 应该制定自己的体系结构和相应的解决方案;

● 应该制定或选择设计方法和支持工具;

● 应该运用适当的设计规则和标准;

● 应该在适当的地方开发组件规范;

● 应该保持具体软件需求的可追溯性;

● 应该开发和维护设计文档;

● 应该确保设计文档的变更和配置管理。

(2)其技能要求为:

● 具备应用领域工程适应的能力;

● 懂得安全设计原则;

● 具备设计分析方法和设计测试方法的能力;

● 能够在给定的环境中遵循设计约束进行工作;

● 具有良好的理解问题的能力;

● 应该了解硬件平台、操作系统和接口系统的强加约束;

● 应该了解标准的相关要求。

3)软件执行者(编码人员)

(1)软件实现者(编码人员)其职责为:

● 将设计方案转换成数据/源代码/其他设计表现;

● 能够将源代码转化成可执行代码/其他设计表现;

● 能够应用安全设计原则;

● 能够运用指定的准备数据/编码标准;

● 能够进行分析来验证中间结果;

● 能够将软件整合到目标机器上;

● 能够开发和维护实施文档,包括应用方法、数据类型和列表;

● 应该保持设计的可追溯性;

● 能够维护产生或修改的数据/代码变更和配置。

(2)其技能要求为:

● 具备应用领域工程适应的能力;

● 具备熟练运用实现语言和支持工具的能力;

● 具备熟练运用指定的编码标准和编程风格的能力;

● 应该了解硬件平台、操作系统和接口系统的强加约束;

● 应该了解标准的相关要求。

4)软件测试者

(1)软件测试者其职责为:

● 应该确保有效地策划测试活动;

● 开发测试规范(目标和用例);

● 确保测试目标在软件需求规格说明书中的可追溯性以及测试用例在指定测试目标中的可追溯性;

● 能够确保计划测试的实施和指定测试的实现;

● 应该识别偏离预期结果的差异并记录在测试报告中;

● 与相关变化管理人员交流差异并进行评估和决策;

● 在报告中捕获结果;

● 能够选择软件测试设备。

(2)其技能要求为:

● 具备实施测试的能力,例如软件需求测试、数据测试、代码测试等;

● 熟悉各种测试和验证方法/理论,并能够在给定内容情况下选择最适合的方法;

● 具备根据给定规范编写测试用例的能力;

● 应该具有分析思考的能力和良好的观察技能;

● 应该了解标准的相关知识。

5)软件验证者

(1)软件验证者其职责为:

● 能够开发软件验证计划(可能包括质量问题),陈述需要验证的内容和需要作为证据的过程(例如回顾、分析等)和测试类型;

● 开发测试规范(目标和用例);

● 确保测试目标在软件需求规格说明书中的可追溯性以及测试用例在指定测试目标中的可追溯性;

● 能够确保计划测试的实施和指定测试的实现;

● 应该识别偏离预期结果的差异并记录在测试报告中;

● 与相关变化管理人员交流差异并进行评估和决策;

● 在报告中分析结果。

(2)其技能要求为:

● 具备实施测试的能力,例如软件需求测试、数据测试、代码测试等;

● 熟悉多种测试和验证方法及理论,并能够在给定内容基础上选择最适合的验证方法;

● 具备根据给定规范编写测试用例的能力;

● 应该具有分析思考能力和良好的观察技能;

● 应该了解和掌握EN 50128的相关要求。

6)软件集成者

(1)软件集成者其职责为:

● 应该能够使用软件标准来管理软件的一体化进程;

● 能够依据软件架构设计规格说明和软件组件设计说明制定软件集成测试规格说明和软件/硬件集成测试规格说明书,说明必要的输入组件、集成活动的顺序和组件的集成结果;

● 能够在集成过程中开发和维护集成记录;

● 能够发现集成异常现象,并记录和传达给相关的变更管理人员进行评估和决策;

● 能够编写组件和整个系统的集成报告并说明集成结果。

(2)其技能要求为:

● 具备组件集成能力,包括相关的程序设计语言、软件接口、操作系统、数据、平台、代码等;

● 熟悉多种集成方法/理论,并能够在给定内容情况下选择最适合的集成方法;

● 能够正确理解不同中间水平的设计和功能要求;

● 能够根据一组集成功能得知集成测试的类型;

● 在系统层次角度有良好的分析思考能力和观察能力;

● 应该了解和掌握EN 50128的相关要求。

7)软件确认者

(1)软件确认者其职责为:

● 应该对预期环境的应用软件有系统的理解;

● 应该确认计划指定软件的基本任务和活动,并经评估者同意;

● 应该针对预期环境/使用检查软件需求;

● 应该根据软件需求对软件进行检查,保证满足软件需求;

● 应该根据欧洲标准包括SIL的要求评估软件进程和开发软件的一致性;

● 应该检查软件的正确性、一致性以及验证和测试的充分性;

● 应该检查软件的正确性、一致性以及测试用例和执行用例的充分性;

● 应该确保所有确认计划的实施;

● 应该检查和分类所有的偏差风险(影响),并记录和提交给负责变更管理并做决定的人员;

● 应该对预期应用软件的适应性做出评价,并说明应用约束;

● 应该根据确认计划寻找差异;

● 应该在不同阶段适当地对整个项目进行审计、检查或审查(作为正常开发进程的实例化);

● 应该适当地结合以前的应用软件检查和分析确认报告;

● 应该检查开放方案在软件需求中是否可追溯;

● 应该确保对相关的风险日志和遗留的风险进行检查,并确保通过适当的风险控制或转移方法能使得所有的风险得到避免;

● 应该形成确认报告;

● 应该对软件的发布给出结论。

(2)其技能要求为:

● 具备验证实施能力;

● 在应用软件的安全性方面有丰富的经验;

● 熟悉多种确认方法/理论,能够在给定内容基础上选择最适合的确认方法;

● 能够根据预期应用软件给定的规格书获得确认信息的类型;

● 能够结合不同的来源和证据类型对应用的适用性或应用的约束和限制形成一个整体的观点;

● 具有良好的分析思考能力和良好的观察技能;

● 具有对软件整体角度的理解能力,包括对应用环境的理解;

● 应该了解和掌握EN 50128的相关要求。

8)软件评估者

(1)软件评估者其职责为:

● 应该对预期环境的应用软件有系统的理解;

● 应该编写评估计划,并与安全权威部门和用户组织(与评估者签订合同)进行沟通;

● 应该根据欧洲标准包括SIL的要求评估软件进程和开发软件的一致性;

● 应该对软件开发阶段项目策划人员和组织的能力进行评估;

● 应该对验证和确认过程以及支撑的证据进行评估;

● 应该对软件开发采纳的质量管理系统进行评估;

● 应该对配置和变更管理系统及其使用证据进行评估;

● 在评估报告中识别和评估任何与软件需求有差异的风险(影响);

● 确保评估计划的实施;

● 在开发过程的不同阶段,适当对整个开发过程进行安全审计和检查;

● 对开发软件的适应性给出专业评价观点,包括预期使用细节约束、应用状态和风险控制角度;

● 形成测试报告并在测试过程中维护记录。

(2)其技能要求为:

● 具备良好的评估技术和评估实施能力;

● 有安全权威部门认可的注册证书;

● 具有不断获得提高安全规范和应用规范领域经验水平的能力;

● 能够检查已经应用内容的方法或方法的组合;

● 能够理解相关的安全性、人力资源、技术和质量管理进程是否满足IEC 62279的要求;

● 熟悉评估方法/理论;

● 具有良好的分析思考能力和良好的观察技能;

● 能够结合不同的证据来源和证据类型对应用的适用性或应用的约束、限制形成一个整体的观点;

● 具有对软件整体角度的理解能力,包括对应用环境的理解;

● 能够判断所有开发过程的充分性(如质量管理、配置管理、验证和确认过程);

● 应该了解和掌握EN 50128的相关要求。

9)项目经理

(1)项目经理其职责为:

● 应该确保在项目和进度按计划核查过程中质量管理系统及相关角色能够各自发挥作用;

● 应该收集充足的优秀资源以实现项目中包含的基本任务,包括安全性活动以及必要的角色独立性;

● 应该确保遵循IEC 62279要求,任命合适的项目验证者;

● 应该对软件的交付和部署负责,并确保从利益相关者角度出发安全性需求得到满足;

● 应该允许充足的时间来正确实现安全任务;

● 应该在整个开发过程中支持部分和完全的安全交付;

● 确保安全性相关的大量结论记录和可追溯性得到维护。

(2)其技能要求为:

● 应该理解IEC 62279中质量、能力、组织、管理的需求;

● 懂得安全性进程需求;

● 能够权衡不同的观点并理解一个决定或观点执行后对安全性的影响;

● 了解软件开发进程的需求;

● 应该了解其他相关标准的要求。

10)配置经理

(1)配置经理其职责为:

● 应该负责制订软件配置管理计划;

● 应该拥有自己的配置管理系统;

● 应该设置所有的软件组件在配置管理系统中是清晰独立的版本;

● 应该准备发布声明,包括软件组件的不兼容版本。

(2)其技能要求为:

● 具备软件配置管理能力;

● 应该了解和掌握EN 50128的相关要求。