1、1军用嵌入式软件技术状态管理思索摘 要:介绍了军用嵌入式产品技术状态管理和软件配置管理的基本概念,分析了软件技术状态管理过程中存在的问题,给出了解决思路,并从软硬件融合的角度阐述了如何对军用嵌入式软件进行技术状态管理。关键词:软件配置管理;技术状态管理;技术状态控制;技术状态标识;技术状态项 0 引言 目前国内军用嵌入式软件研制相关单位对硬件技术状态管理主要依据 GJB3206A-2010技术状态管理 (其中 GJB3206A-2010 中明确说明软件按照 GJB5235-2004军用软件配置管理进行管理) ,目前军用嵌入式软件研制相关单位对软件技术状态管理主要依据 GJB5235-2004。
2、其中Configuration Management 被翻译为技术状态管理(用于硬件技术状态管理)和配置管理(用于软件技术状态管理) 。因此,从本质上说,两个标准的含义是一样的,只是翻译的不同。鉴于软件属于系统的一部分,因此在软件研制的过程中,可以借鉴硬件技术状态管理的相关要求并应用到软件配置管理过程中,并最终达到两者融合,以一个标准的形式对软硬件技术状态进行管理(目前国内基本上没有两者融合的相关文章) 。 1 技术状态管理与软件配置管理基本概念解读 (一)Configuration 2Configuration 在相关标准中的定义为: (1)在 MIL-STD-2549 中被翻译为技术状态。
3、现有或计划产品,或产品组合的特性、功能和物理属性; (2)在 GB/T 11457-2006 中:在配置管理中,在技术文档中制定的并在产品中体现的硬件、软件的功能和(或)物理特性; (3)在 GJB3206A-2010 中,被翻译为技术状态。在技术文件中规定的并且在产品中达到的功能特性和物理特性; (4)在 GJB5235-2004 中,被翻译为配置。在软件生存周期中各阶段产生的各种形式和各种版本的文档、程序、数据和环境的集合。 在 GJB5000A-2008军用软件研制能力成熟度模型中指定每个配置项的重要特性主要指的是作者、文档或文件的类型、以及软件代码、文件的编程语言等。 通过 GJB50
4、00A 对配置项重要特性的描述,我们可以将这些重要特性定为软件的物理特性。也就是说,软件是有功能特性和物理特性的。 鉴于 GJB5235 引用了 GB/T 11457,因此在软件配置管理中对Configuration 的定义应参照 MIL-STD-2549、GJB3206A 或 GB/T 11457 的定义较合适。 (二)Configuration management(CM) Configuration management(CM)在相关标准中的定义为: (1)在 MIL-STD-2549 中,被翻译为技术状态管理。建立并维持产品特性、功能和物理属性一致性的管理过程; (2)在 GB/T 1
5、1457-2006 中被定义为:应用技术和管理的指导和监3控方法以标识和说明配置项的功能和物理特征,控制这些特征的变更,记录和报告变更处理和实现状态并验证与规定的需求的遵循性; (3)在 GJB3206A 中,被翻译为技术状态管理。在产品寿命周期内,为确立和维持产品的功能特性、物理特性与产品需求、技术状态文件规定保持一致的管理活动; (4)在 GJB5235 中,被翻译为配置管理。为保证软件配置项的完整性和正确性,在整个软件生存周期内应用配置管理的过程; GJB5235 中对配置管理定义的最后使用了“应用配置管理“这几个字,其并未说明配置管理具体指什么,该标准对 Configuration m
6、anagement的定义是不准确的。因此,Configuration management 在软件中的定义采用 GB/T 11457-2006 或 GJB3206A 等的定义比较妥当。 (三)Configuration item(CI) Configuration item(CI)在相关标准中的定义为: (1)在 MIL-STD-2549 中,被翻译为技术状态项。技术状态项是指为单独的技术状态管理所指派的、能满足某一最终功能的任何硬件、软件或两者的组合; (2)在 GB/T11457 中,被定义为配置管理设计的硬件、软件或两者的集合,它在配置管理过程中作为一单个实体来对待; (3)在 GJB3
7、206A 中,被翻译为技术状态项。能满足最终使用功能,并被指定作为单个实体进行技术状态管理的硬件、软件或其集合体; (4)在 GJB5235 中,被翻译为配置项。为了配置管理的目的而作为一个单位来看待的软件成分,通常为软件配置中的一个元素。 4在 GJB5000A 中,工作产品的配置管理可按多个粒度级实施。配置项可以分为配置部件和配置单元。适时可解释为“配置部件“和“配置单元“。 从以上几个概念对 Configuration item 的解释,再结合对Configuration 的解释,在软件中使用 MIL-STD-2549、GB/T11457、GJB3206A 的定义来描述 Configur
8、ation item 比较合适。 (四)Baseline Baseline 在相关标准中的定义为: (1)在 GB/T11457 中基线(baseline)的概念为业已经过正式审核与同意,可用作下一步开发的基础,并且只有通过正式的修改管理过程方能加以修改的规格说明或产品。其中功能基线的概念为:在配置管理中,一配置项的初始批准的技术文档,相对于分配基线、开发基线、产品基线;分配基线的概念为在配置管理中,初始批准的规格说明,它支配作为较高级配置项的一部分的配置项的开发,相对于开发配置、功能基线、产品基线;产品基线的概念为在配置管理中,在它的生存周期的生产、操作、维护和后期支持期间,定义一配置项的初
9、始的经批准的技术文档(对于软件,包括源代码清单) 。 (2)在 GJB3206A 中,技术状态基线(configuration baseline)的概念为在产品寿命周期内的某一特定时刻,被正式确认并作为今后研制生产、使用保障活动基准,以及技术状态改变判定基准的技术状态文件。一般包括三种技术状态基线:功能基线(经正式确认的功能技术状态文件) 、分配基线(经正式确5认的分配技术状态文件)和产品基线(经正式确认的产品技术状态文件) ;鉴于嵌入式软件属于整个产品的一部分,因此从系统融合、控制和易用的角度看,可以只保留技术状态管理概念上基线的概念:即功能基线、分配基线和产品基线,将软件配置管理中的功能基
10、线修改为任务基线(主要包含软件研制任务书) 、分配基线修改为需求基线(主要包含软件需求规格说明) ,将配置管理中产品基线的内容合并到技术状态管理概念上产品基线中。即系统分配基线包含软件任务基线、需求基线的内容,产品基线包含软件任务基线、分配基线和其他软件技术状态项文件。 (五)Configuration identification Configuration identification 在相关标准中的定义: (1)在 MIL-STD-2549 中,被翻译为技术状态标识。与 CI 的选用、每个 CI 必需的技术状态文件类型的确定、CI 发布号与其它附属于 CI 和定义其技术状态的技术文件的标
11、识符、CI 的发放和与其关联的技术状态文件,以及技术状态基线的建立有关的技术状态管理要素; (2)在 GB/T11457 中,被翻译为配置标识。配置管理的元素,它由为系统选择配置项并在技术文档中记录它们的功能和物理特征组成; (3)在 GJB3206A 中,被翻译为技术状态标识。确定技术状态项及其所需技术状态文件,标识技术状态项及其技术状态文件,发放和保持技术状态文件,建立技术状态基线的活动。 两个标准中概念基本一样。 (六)Configuration control 6Configuration control 在相关标准中的定义为: (1)在 MIL-STD-2549 中,被翻译为技术状态
12、控制。在某一 CI 的配置中,有关系统的建议、判断、评估、协调、建议更改的处置,以及所有批准/发放的更改实施的技术状态控制要素; (2)在 GB/T11457 中,被翻译为配置控制。配置管理的元素,它由评价、协调、批准或不批准和在配置项的配置标识正式建立以后,配置项变更的实现组成; (3)在 GJB3206A 中,被翻译为技术状态控制。技术状态基线建立后,对提出的技术状态更改申请、偏离许可申请和让步申请所进行的论证、评定、协调、审批和实施活动。 两个标准中对该概念解释基本一样。 (七)Engineering Change Engineering Change 在相关标准中的定义为: (1)在
13、MIL-STD-2549 中被翻译为工程更改。对某个技术状态项的现行已批准技术状态文档的更改; (2)在 GB/T11457 中被翻译为工程更改。在配置管理中,配置项或其他指定的项在正式建立它的配置标识后在配置中的变更; (3)在 GJB3206-1998 中原术语为工程更改,在 GJB3206A 中术语被修改为技术状态更改。在产品寿命周期内,对已正式确认的现行技术状态所做的更改。 两者概念基本一致。 (八)Configuration status accounting 7Configuration status accounting 在相关标准中的定义为: (1)在 MIL-STD-2549
14、 中被翻译为技术状态的状况记实。有关获得、存储和授权使用技术状态信息的技术状态管理活动,这些技术状态信息是有效管理产品和产品信息所必需的; (2)在 GB/T11457 中被翻译为配置状态记录。一种配置管理的元素,它由记录和报告为有效地管理某一配置所需的信息组成。此信息包括列出经批准的配置标识表、建议变更的配置状态和经批准变更的实现状态;(3)在 GJB3206A 中被翻译为技术状态记实。在产品寿命周期内,为说明产品的技术状态所进行的记录、报告活动。 两者概念基本一致。 (九) Configuration audit Configuration audit 在相关标准中的定义为: (1)在 M
15、IL-STD-2549 中被翻译为技术状态审核,见功能技术状态审核和物理技术状态审核; (2)在 GB/T11457 中被翻译为配置审核。对所要求的全部配置项均已产生出来,当前的配置与规定的需求相符所作的证明; (3)在 GJB3206A 中被翻译为技术状态审核。为确定技术状态项与其技术状态文件的一致程度而进行的正式检查。包括功能技术状态审核和物理技术状态审核。 两者概念基本一致。 (十)Functional configuration audit 8Functional configuration audit 在相关标准中的定义为: (1)在 MIL-STD-2549 中,被翻译功能技术状态
16、审核。为了验证项目已经达到其功能和/或分配技术状态文件中规定的要求,在设计能力、专用工装或研制试验验收之前,对系统或某一技术状态项的功能特性的正式检查; (2)在 GB/T11457 中被翻译为功能配置审核。一种审核,它指导验证:配置项的开发已经满意完成、配置项已达到在功能的或分配的配置标识中规定的性能和功能特征并且它的操作的和支持的文档已满意地完成; (3)在 GJB3206A 中被翻译功能技术状态审核。为验证技术状态项的功能特性达到功能基线、分配基线规定的要求所进行的技术状态审核。两者概念基本一致。 (十一)Physical configuration audit Physical con
17、figuration audit 在相关标准中定义为: (1)在 MIL-STD-2549 中被翻译为物理技术状态审核。根据技术文档对技术状态项的“即成“技术状态进行的正式检查,以建立或证实该技术状态项的产品基线; (2)在 GB/T11457 中被翻译为物理配置审核。验证已建立的某个配置项遵循定义它的技术文档的审核行为; (3)在 GJB3206A 中被翻译为物理技术状态审核。为建立或验证产品基线,对技术状态项试制试产样品的完工状态、所依据的技术状态文件而进行的技术状态审核。 9对于软件研制过程中的物理配置审核,目前通用的做法是检查是否文文一致、文实相符、是否可用等。而在系统研制的过程中,对
18、系统技术状态文件的审核过程中也会检查文文一致、文实相符、是否可用等内容。因此从软硬件系统融合的角度,可以删除软件配置管理过程中物理配置审核的概念,只需将这些实际工作体现到日常工作中即可,在系统产品基线建立之前/后对整个系统(包含软件)进行物理技术状态审核。 (十二)配置管理审核(CMA) 在 GJB5000A 中对配置管理审核的描述为:目的是确认配置状态记录和配置项是否完备、一致和准确。 但在日常的系统技术状态审查或检查等中进行的就是软件配置管理审核的工作。因此可以删除此概念,直接用技术状态审核的概念即可,以便达到两者的融合。 (十三)配置库 (1)Product library Produc
19、t library 在相关标准中定义为: 在 GB/T11457 中被翻译为产品库。一种软件库,其中含有已被批准供当前运行使用的软件; 在 GJB5716 中对产品库的定义为在软件生存周期中,存放已定型(鉴定)且供交付、生产、检验验收的软件配置项的集合。 (2)Software development library Software development library 在相关标准中定义为: 在 GB/T11457 中被翻译为软件开发库。存放与软件开发工作有关10的计算机可读信息和人们可读信息的软件库。 在 GJB5716 中对开发库的定义为在软件生存周期中,存放软件配置项的集合。 (3)
20、Software controlled library 在 GJB5716 中被翻译为软件受控库。在软件生存周期中,存放已通过测试或评审且作为阶段性产品的软件配置项的集合。 从以上三点可以看出: 按照国标的定义,在软件配置管理过程中,有开发库的定义; 按照国标的定义,在软件配置管理过程中,有产品库的定义(其中该产品库包含 GJB5716 的受控库) ; 软件配置管理过程设置 2 个库(或者 3 个库等)是从使用的目的出发而增加了控制时机的存储库,因此在实际的软件技术状态管理过程中,即使是一个库,如果增加了相应的控制时机,也是可以的。 (十四)概念解读小结 通过以上概念解读,从军用产品系统技术状态控制的角度出发,硬件技术状态管理和软件配置管理相关概念与做法在本质上是一致的,因此我们不应人为将软件配置管理从大系统的技术状态管理中分割出去,我们应在标准编制和实践过程中将两者融合统一,避免在错误的路线上越走越远。 为了方面进行描述,以下内容统一软硬件技术状态管理相关概念: (1)统称为技术状态管理; (2)统称为技术状态项,技术状态项由技术状态文件和技术文件构