数据控制类别(CC1和CC2)
——DO-178B/ED-12B学习笔记之七
为了理解数据控制类别(CC1和CC2)的定义,先看DO-178B的7.3条:
【原文】
Software life cycle data can be assigned to one of two categories: Control Category 1 (CC1) and Control Category 2 (CC2). These categories are related to the configuration management controls placed on the data. Table 7-1 defines the set of SCM process objectives associated with each control category, where ø indicates that the objectives apply for software life cycle data of that category. The tables of Annex A specify the control category for each software life cycle data item, by software level. Guidance for data control categories includes:
a. The SCM process objectives for software life cycle data categorized as CC1 should be applied according to Table 7-1.
b. The SCM process objectives for software life cycle data categorized as CC2 should be applied according to Table 7-1 as a minimum.
【笔者的中译文】
软件生存周期数据可分为两类:控制类别1(CC1)和控制类别2(CC2)。这些类别与对软件生存周期数据所采取的配置管理控制相关。表7-1定义了与每个控制类别对应的一组SCM过程目标,其中“●”表示对某类别的软件生存周期数据采用这组目标。
附件A中的表格按软件等级为各软件生存周期数据项规定了控制类别。对数据控制类别的指南包括:
a. 对分类为CC1的软件生存周期数据,应按表7-1采用SCM过程目标;
b. 对分类为CC2的软件生存周期数据,至少应按表7-1采用SCM过程目标。
按DO-248B中FAQ#12的解释,CC1和CC2的定义包含在DO-178B的7.3条的表7-1中。这就是说,CC1数据是要按表7-1中13个目标来进行配置管理控制的软件生存周期数据,CC2数据是要按表7-1中6个目标来进行配置管理控制的软件生存周期数据。
再看表7-1:
【笔者的中译文】
表7-1 CC1数据和CC2数据对应的SCM过程目标
SCM过程目标 | 参考 | CC1 | CC2 |
配置标识 | 7.2.1 | ● | ● |
基线 | 7.2.2a、b、c、d、e | ● |
|
可追踪性 | 7.2.2f、g | ● | ● |
报告问题 | 7.2.3 | ● |
|
变更控制--完整性和标识 | 7.2.4a、b | ● | ● |
变更控制--追踪 | 7.2.4c、d、e | ● |
|
变更评审 | 7.2.5 | ● |
|
配置状态统计 | 7.2.6 | ● |
|
检索 | 7.2.7a | ● | ● |
防止未经授权的变更 | 7.2.7b(1) | ● | ● |
介质选择、更新、复制 | 7.2.7b(2)、(3)、(4)、c | ● |
|
发布 | 7.2.7d | ● |
|
数据保存 | 7.2.7e | ● | ● |
表7-1中 “报告问题”的原文是“Problem Reporting”,这样翻译是为了不让它与“问题报告(Problem Reports)”混淆。属于CC1的数据要按“报告问题”的目标进行配置管理控制,但“报告问题”中产生的“问题报告”属于CC2。这就是说,对于“问题报告”的缺陷,不需要再形成新的“问题报告”来进行报告、追踪和纠正。
“问题报告”可作为理解CC1与CC2差别的一个例子。
根据附件A,我们在下表中汇总了各项软件生存周期数据在各种软件等级中的数据控制类别。
软件生存周期资料的数据控制类别
序号 | 名称 | 数据控制类别 | ||||
A | B | C | D | |||
1 | 1 | 1 | 1 | 1 | ||
2 | 软件开发计划 | 1 | 1 | 2 | 2 | |
3 | 软件验证计划 | 1 | 1 | 2 | 2 | |
4 | 软件配置管理计划 | 1 | 1 | 2 | 2 | |
5 | 软件质量保证计划 | 1 | 1 | 2 | 2 | |
6 | 软件需求标准 | 1 | 1 | 2 |
| |
7 | 软件设计标准 | 1 | 1 | 2 |
| |
8 | 软件编码标准 | 1 | 1 | 2 |
| |
9 | 软件需求文档 | 1 | 1 | 1 | 1 | |
10 | 软件设计文档 | 1 | 1 | 2 | 2 | |
11 | 源代码 | 1 | 1 | 1 | 1 | |
12 | 可执行目标代码 | 1 | 1 | 1 | 1 | |
13 | 软件验证用例和规程 | 1 | 1 | 2 | 2 | |
14 | 软件验证结果 | 2 | 2 | 2 | 2 | |
15 | 软件生存周期环境配置索引 | 1 | 1 | 1 | 2 | |
16 | 软件配置索引 | 1 | 1 | 1 | 1 | |
17 | 问题报告 | 2 | 2 | 2 | 2 | |
18 | 软件配置管理记录 | 2 | 2 | 2 | 2 | |
19 | 软件质量保证记录 | 2 | 2 | 2 | 2 | |
20 | 软件实施概要 | 1 | 1 | 1 | 1 | |
| ||||||
图例 | 说明 | |||||
A、B、C、D | 软件等级 | |||||
1 | CC1 | |||||
2 | CC2 | |||||
由上表可知,某些软件生存周期数据既可以属于CC1,也可以属于CC2,这要取决于软件等级。例如,软件开发计划对于A级和B级软件属于CC1,但对于C级和D级软件属于CC2。因此,不强制要求对C级和D级软件的软件开发计划建基线、报告问题、追踪变更、评审变更等。然而,DO-178B的7.3条中关于CC2的“至少”一词表明,对属于CC2的软件生存周期数据也实施超出CC2范围的配置管理控制。
CC2是CC1的子集,这意味CC2的目标要比CC1少,而相应的软件配置控制工作量则要少很多。考虑到机载软件的较长的生存周期,工作量及成本的差别比较可观。
DO-248B的2.9和2.11分别指出,DO-178B的7.3条的表7-1和附件A的表-7中有笔误,本文中所引用的相关内容已纠正了这些笔误,而有些中译文(包括中国民航咨询通告AC-21-02)没有予以纠正。
DO-248B中有三个问题与数据控制类别有关:
a) FAQ#12: What are the definition of Control Categories 1 and 2 (CC1 and CC2)?
b) FAQ#13: How is Table 7-1 used to understand Control Categories 1 and 2 (CC1 and CC2)?
c) FAQ#14: What do Control Categories 1 and 2 (CC1 and CC2) mean when applied to the objective of Annex A?
上述问题的解答可帮助我们更好地理解数据控制类别。
SC-205 / WG-71 Information Paper中提出FAQ#12的解答修改为:
Control Categories 1 and 2 (CC1 and CC2) define the Software Configuration Management (SCM) processes and activities for controlling software life cycle data. CC2 objectives are a subset of the CC1 objectives. The definition of CC1 and CC2 is contained in Section 7.3, Table 7-1, of DO-178B/ED-12B.