军用软件

2024-09-08

军用软件(精选7篇)

军用软件 篇1

随着科技水平的不断提高, 计算机软件越来越多的应用于军队武器装备系统中, 具有数据计算、信息处理、全局控制等诸多功能。同时, 军队武器装备的硬件可靠性也在稳固提高, 应用了软件的武器装备使用风险主要在于该软件的可靠性。可见军用软件的可靠性是关系到武器装备可靠性的重要环节。由于软件具有自身的特点, 它与传统的硬件不同, 因此, 如何对军用软件可靠性进行管理是驻厂 (所) 军事代表面临的一个重要课题。

军用软件可靠性管理是保证军用软件可靠性的重要方面。由于军用软件的可靠性与软件研制、实现、使用、升级维护直至淘汰的全寿命周期的各个工作环节都有密切关系, 任何环节的工作失误或考虑不周全, 都会影响到实现软件的可靠性。所以驻厂 (所) 军事代表应通过计划、组织、协调、控制好军用软件全寿命周期内各个环节的可靠性工作, 以保证军用软件达到预定的可靠性指标。这五项内容是互相、互相渗透、相辅相成的。从具体的管理角度, 军用软件可靠性管理可以分为军用软件可靠性的组织管理和军用软件可靠性技术管理。

1 军用软件可靠性的组织管理

驻厂 (所) 军事代表室应建立独立的军用软件可靠性管理职能机构。同时督促负责生产军用软件的厂 (所) 设立软件可靠性的管理机构, 这一机构可以独立设置, 也可明确归于质量管理部门, 其应具有明确的职责、权限, 并与质量管理部门一起行使质量的否决权。厂 (所) 还应设置军用软件的可靠性主管师, 对军用软件可靠性是否满足合同要求负直接责任。驻厂 (所) 军事代表室和厂 (所) 软件可靠性管理部门应起到组织、审查、监督、协调、指导和服务的作用。

2 军用软件可靠性技术管理

在军用软件研制和实现过程中, 技术工作与管理工作常常是交替的, 互相渗透的。因此驻厂 (所) 军事代表室的软件可靠性技术管理工作应从以下7个方面进行管理:

2.1 军用软件可靠性计划管理

军用软件可靠性计划是军用软件可靠性保证管理的核心, 是组织军用软件可靠性技术活动和管理活动的具体实施方案。军用软件可靠性计划应根据军用软件可靠性保证大纲确定的要求和工作项目, 进行分解和分配, 以保证军用软件可靠性各项工作得到全面落实。因此驻厂 (所) 军事代表应对军用软件可靠性工作计划进行监控, 并设立必要的评审点, 进行跟踪管理。

2.2 军用软件可靠性标准化管理

根据军用软件可靠性要求等级, 驻厂 (所) 军事代表可选用国家军用标准、国际IEC标准、国家标准等做为军用软件设计的依据标准。军用软件可靠性标准是依据科学, 经过长期实践和验证的可靠性管理与技术经验的总结。执行标准是提高军用软件可靠性的重要途径。驻厂 (所) 军事代表应严格按照可靠性标准来监督厂 (所) 整个军用软件的设计、实现过程, 这是保证军用软件靠性的最佳方法。

2.3 军用软件可靠性设计管理

军用软件可靠性设计是保证武器装备固有可靠性的首要环节。军用软件可靠性设计必将贯穿于军用软件设计的各个方面和全过程。军用软件可靠性设计实施过程必须与军用软件可靠性管理紧密结合。驻厂 (所) 军事代表应监督厂 (所) 军用软件可靠性设计是否按照规定的军用软件可靠性设计程序实施。驻厂 (所) 军事代表应确认软件可靠性设计指标的必要性、可行性、科学性、先进性和经济性等论证完成, 参与该方案的论证评审及最终软件可靠性设计评审并确认该软件设计定型。

2.4 军用软件实现的可靠性管理

军用软件实现过程的可靠性管理是指从编码到模块组合、封装形成最终软件的整个过程的可靠性保证管理。这是保证实现军用软件可靠性的关键。驻厂 (所) 军事代表应通过制定有关的质量控制准则和可靠性管理要求, 最大限度地排除和控制各种不可靠因素, 最大限度地保证实现军用软件设计的固有可靠性。

2.5 军用软件可靠性试验管理

军用软件可靠性试验是保证军用软件质量的关键步骤, 也是军用软件可靠性管理的关键环节。驻厂军事代表应从以下几项准则对厂 (所) 进行监督:

A、厂 (所) 应明确软件测试的标准、规范、指南。

B、厂 (所) 应明确软件测试过程的规定。

C、厂 (所) 在测试过程中发现的缺陷应按规定报告、分析, 按配置管理规定才去更正, 核对更正后, 记入文档、归档。

D、厂 (所) 应对测试结果进行全面分析。

E、厂 (所) 正式测试必须经过评审, 通过后才能正式测试。

F、厂 (所) 对军用软件所进行的最终测试应在最终的使用环境上进行。

2.6 军用软件可靠性信息管理

信息是进行管理活动的基础。军用软件良好的可靠性信息管理工作, 可以及时向设计部门、实现部门、试验部门、管理部门以及软件的使用方提供高质量的信息, 从而减少大量的重复性劳动, 缩短并提高军用软件可靠性的进程和水平。所以, 驻厂 (所) 军事代表应督促厂 (所) 建立军用软件可靠性信息管理部门, 并制定具体的军用软件可靠性信息管理要求, 并协同其积极进行可靠性信息的收集、加工和传递工作, 使其保证信息达到准确性和完整性。

2.7 军用软件可靠性教育管理

在实现军用软件条件基本具备的情况下, 编写人员的可靠性素质是软件可靠性的决定因素。可靠性教育是人员可靠性素质提高的重要手段。因此驻厂 (所) 军事代表应督促厂 (所) 对于不同层次的人员, 如操作人员、技术人员和管理人员, 结合他们的工作情况和接受水平, 制定不同的可靠性教学内容和教育计划。

综上所述, 驻厂 (所) 军事代表在软件的研制、实现、使用、升级维护直至淘汰的全寿命周期的各个工作环节, 都要贯彻以软件可靠性为中心的质量管理。同时, 驻厂 (所) 军事代表与厂 (所) 间的相互配合也是保障软件的质量和可靠性的重要条件。

软件可靠性是武器装备质量的一个重要组成部分, 我们在重视武器装备质量的的同时, 要高度重视军用软件可靠性的管理。软件是硬件实现基本功能的核心, 我们要严格按照国军标的基本要求, 加强军用软件的管理, 把军用软件可靠性管理提高到一个新的台阶。

军用软件 篇2

军用嵌入式软件更新发展速度的加快, 软件复杂程度的增加、规模的增大, 软件的开发周期却越来越短, 随着近代航空武器系统的不断发展, 军用嵌入式软件在军用产品中得到广泛应用。软件质量的好坏直接影响着产品的价值, 如何提高军用嵌入式软件的质量就显得极为重要。软件测试技术能够给软件产品提供质量保障, 代码审查作为软件测试中的重要环节, 对软件质量提升意义重大。代码审查是发现软件缺陷、提高软件质量最直接、有效的软件测试手段, 通过代码审查能在软件开发前期尽早地发现软件存在的缺陷, 而且软件缺陷发现得越早, 正确改正缺陷的可能性也越大, 越有利于降低软件测试的成本。代码审查有效地发现某些特定类型的缺陷问题, 且无需特别条件[1]。

军用嵌入式软件是软件测试技术的重要应用领域, 研究发现, 军用嵌入式软件代码审查主要关注代码本身的规则问题和编码规范问题。这样容易造成一些与软件本身功能逻辑相关的有价值的问题被遗漏且不易被发现。如何高效率、高质量的完成军用嵌入式软件代码审查成为影响软件测试质量的重要问题。

1 代码审查概要

代码审查是主要用人工的方法, 由测试人员利用代码检查单或代码走查等技术仔细检查代码和设计的一致性、代码执行标准的情况、代码逻辑表达的正确性、代码结构的合理性以及代码的可读性, 检查代码是否符合软件设计文档和软件需求规格说明的要求, 找出代码中的错误和违反开发标准之处[2]。代码审查可以提高军用嵌入式软件的质量, 在开发早期发现软件致命缺陷, 避免归零风险, 充分保障军用嵌入式软件产品的研制进度。同时通过增加软件开发人员和软件测试人员的技术交流, 提升软件测试效率。

1.1 代码审查现状

代码审查作为降低软件缺陷的一种有效手段, 通常是在开展动态测试之前的代码阅读纠错过程。代码审查是一种针对软件质量的有效审查和评估方法。通过逐句检查源代码中有无逻辑或语法错误来发现软件中的缺陷。由开发人员和测试人员组成的代码审查小组, 通过阅读、讨论和分析等方式对代码进行静态审查。通常, 代码审查的内容包括以下几项:检查代码和设计的一致性;检查代码对标准的遵循情况和可读性;检查代码的逻辑表达的正确性;检查代码结构的合理性[3]。

在代码审查中一个重要部分就是对照一份错误列表来检查代码是否存在常见错误。代码审查检查清单的应用既能够保证审查过程的一致性, 也保证常见的代码缺陷问题能够及时准确的被发现以及被解决、完善的高效性。统计发现, 软件开发人员会常犯15~20种代码错误, 本文将这些常见错误进行分类、整理、归纳到代码审查检查单内, 来检查代码是否存在这些错误。代码审查检查单可以引导开发人员按照编码规范进行开发, 指导测试人员高效的发现这些问题, 从而避免软件中这些问题的出现。

表1列举出了一些典型的代码问题。代码审查过程的一个重要部分就是对照一份错误列表, 来检查代码是否存在常见错误。

1.2 嵌入式软件代码审查

嵌入式软件是基于嵌入式系统设计的软件, 它是由程序以及文档组成。嵌入式软件同通用软件的区别主要表现在, 嵌入式软件只能运行在特定的目标机上, 与其所属的目标机系统有很强的耦合性, 软件的实现细节和目标机系统的结构、输入/输出端口等都与通用软件有很强的不同。另一方面, 因为嵌入式计算机应用要求, 需要按时按成功能操作, 也就是说嵌入式软件有着很强的实时性。另外, 嵌入式实时系统对外部时间的响应一般都是通过中断来处理, 其处理方式直接影响到系统的实时性。因此, 嵌入式软件与通用软件不同[5]。

大部分嵌入式软件都工作在空间及时间资源严重受限的环境中, 对软件的可靠性要求非常高。进行嵌入式软件代码审查是确保软件可靠性的重要手段之一, 也是评价软件质量好坏的有效途径。

目前, 嵌入式软件在进行代码审时, 测试人员主要是根据代码编程规范和代码错误检查单进行审查工作。审查过程主要关注代码本身的逻辑错误和编码规范问题, 但对嵌入式软件与硬件之间的依赖性的问题却难以发现。代码审查的质量有待提升。

2 代码审查在军用嵌入式软件领域的应用

在军用嵌入式软件测试领域, 由于软件本身的功能的多样性和复杂性特点, 对测试人员提出了较高的技术要求。测试人员不但需要具备较强军用装备领域的专业知识, 还要熟悉嵌入式系统的工作流程和功能。若仅采用传统代码审查方法来审查, 将难以发现与逻辑功能相关的且有价值的缺陷问题。但若通过结合整个嵌入式系统和软件的功能和流程进行审查分析, 得出的分析结果与原有结果相比将更加有价值。

针对目前军用嵌入式软件代码审查存在的不足, 本章节在传统意义代码审查方法的基础上, 就如何提高军用嵌入式软件代码审查质量进行分析。

特型软件代码审查方法是在传统意义上的代码审查方法的基础上, 针对军用软件领域, 根据不同的软件需求、功能对其进行分类优化。通过将代码审查标准与专业领域的知识相结合, 最后形成基于军用软件领域优化后的代码审查单。

飞控软件作为军用嵌入式软件的应用领域, 具备军用嵌入式软件的特点。针对该应用软件, 订制软件代码审查单。

根据飞控软件的功能和需求点, 将飞控软件的功能进行划分, 建立飞控软件代码审查要素, 形成飞控软件领域的针对性的代码审查检查单。

特型软件代码审查方法代码审查过程可分为如下阶段:代码审查策划阶段、代码审查实施阶段及代码审查总结阶段, 如图1所示。其中, 定制代码审查检查单如表2所示。

(注:千行代码缺陷率=发现问题数数/测试的代码行*1000)

3 特型软件代码审查的应用实例

以飞控软件为例, A、B、C、D、E分别表示5组不同规模的软件。分别使用传统代码审查方法与特型软件代码审查方法对其进行代码审查, 以代码审查耗时, 代码审查发现的问题数和千行代码缺陷率为标准进行对比统计和分析。具备相同能力的测试人员分别应用两种测试方式对5组不同规模的软件进行代码审查测试工作, 得到代码审查数据比对表, 如表3所示。

从表2中可以看到, 对于不同规模的软件进行代码审查时, 使用专业领域代码审查方法比传统方法的代码审查发现的代码问题和千行代码缺陷率有大幅度的提升。

图2中可以看到, 在不同软件代码规模的项目下, 通过使用特型软件代码审查方法来进行代码审查所消耗的审查时间均有的降低。

图3和图4中可以看到, 在使用特型软件代码审查方法来对特定领域软件进行代码审查时, 发现的问题与传统代码审查方法对比。发现的代码问题数与千行代码缺陷率均有大幅度的提升。

4 结语

随着嵌入式软件在军事领域的广泛应用, 软件质量成为军用武器装备系统性能好坏的关键因素。在软件开发周期中, 软件测试所占比重的不足, 已经不能满足软件测试的时间需求。而代码审查在软件测试中所占的时间比率相对更小, 严重制约着软件测试质量。

本文通过对军用嵌入式软件领域传统代码审查和特型软件代码审查的数据进行分析, 发现应用特型软件代码审查方法对军用嵌入式软件进行代码审, 在相同软件代码规模条件下, 审查耗时得到大幅度的减少, 发现问题数与千行代码缺陷率有大幅度提升。

特性软件代码审查时通过在代码审查过程中, 结合嵌入式软件自身的功能特点, 订制不同的代码审查检查单, 使代码审查更具备针对性, 致使软件缺陷问题更容易被发现, 审查进度更快, 审查效率更高。而传统代码审查方式根据代码的共性特点, 制订代码审查检查单进行审查时, 未能够对软件质量问题进行充分深入挖掘。此方法, 在共性问题基础上引入了个性分析, 针对不同的软件应用领域, 结合软件代码的自身特点, 实施全面的代码审查。

实验发现, 本文针对订制的代码审查方法, 能够有效的缩短代码审查测试所需的时间, 提升代码审查效率, 进而提高代码审查质量。切实把军用嵌入式软件的软件测试代码审查水平提高到一个新的高度。

参考文献

[1]周景科.专业领域软件的代码审査方法研究[J].电子产品可靠性与环境试验, 2016 (3) :39-44.

[2]张建飞.基于航空领域嵌入式软件代码审査的研究[J].应用技术, 2015 (10) :108-109.

[3]黎连业, 王华, 李淑春.测试技术[M].北京:清华大学出版社, 2006.

[4]Glenford J, Myers Tom Badgett.软件测试的艺术[M].王峰, 陈杰, 译.北京:机械工业出版社, 2006.

军用软件 篇3

在国防信息化程度的不断提高的今天, 军事领域中的软件产品已经成为了和硬件产品比肩而立的重要存在, 军用软件的质量高低也成为了决定军事和武器系统质量的关键因素。随着武器装备系统中的软件规模迎来爆炸式增长, 只有对过程质量的全面控制, 才有可能最大程度的降低风险, 提高软件产品质量。我单位从2011年开始试推行GJB5000A软件研制过程管理, 到如今已实现了军用软件研制能力二级管理的全面覆盖, 期间为兼顾不同专业领域、不同项目类型、不同规模和军兵种的要求, 对体系进行了持续改进。改进焦点在执行GJB5000A标准的大框架下尽可能解决特异性问题上, 同时在开发方法及操作层面上鼓励项目组团队在现有质量体系策略要求下进行创新式探索。其中利用敏捷开发的方法与GJB5000A管理体系的融合就是一种有益思考。

二、GJB5000A质量管理体系结合敏捷方法在科研院所的适应性

2.1 GJB5000A在科研院所的落地实施

GJB5000A-2008《军用软件研制能力成熟度模型》作为框架模型, 体现了业内软件研制过程最佳实践集, 其采用分级表示的方法, 按预先确定的过程域来定义组织的改进路径, 同时规定了软件研制和维护活动中的主要软件管理过程和工程过程的实践。模型五个级别中共定义了22个过程域, 每个过程域由不同个数的专用目标和相同个数的共用目标组成, 每个目标又推荐了不同的实践。在GJB5000A的定义中, 目标是必需的部件, 实践是期望的部件, 我们用满足所有目标来确定过程域的实现, 用实践来指导过程改进和评估。换句话说, GJB5000A标准允许我们用规定的实践或可接受的替代实践来满足目标。所以科研院所要想真正实现标准落地就必须按照单位自身产品特点和用户要求将实践本地化。

在实现本地化过程中, 组织会按照大多数项目的模式定义标准过程, 但却无法确保所有过程适用于所有项目, 同时在执行自由度上也遇到了很大困扰, 强约束导致了项目缺乏灵活性, 而降低约束度则可能带来质量和进度的双重风险。此外, 即使组织开放了项目组利用替代实践实现目标, 但由于团队人员的经验不足, 也很难找到恰当的替代实践, 组织还必须承担面对评估时替代实践有效性的质疑, 所以在组织层面上定义多种开发方法供项目选择就显得尤为重要。

2.2敏捷开发方法在军用软件研制过程中的适用性

软件敏捷开发是一种相对于传统软件开发而言的轻型开发方法, 它改变了传统开发中以文档为驱动的开发模式, 以人为主要驱动核心, 目前常用的基本敏捷实践方法有很多, 如极限编程 (XP) 、Scrum方法、特征驱动开发 (FDD) 等, 每种方法的实践过程都有不同, 但基础都是基于增量和迭代的过程。软件敏捷开发有四大价值观:个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。这些特点使得敏捷开发方法灵活、适用多变需求, 可快速交付, 但应用在军用软件研制过程中可能会带来以下问题:1、敏捷开发方法应用的是需求的快速迭代, 每一个迭代作为一个计划阶段, 很难对项目的整体目标有完整计划。2、敏捷开发方法更注重有效代码的快速交付, 而非文档, 这对有严格军标约束下的文档编制提出了更高的要求。3、敏捷开发最重要的开发方式是与客户一起开发, 因军用软件的需方往往是部队使用方, 面对面开发的形式较难实现。4、敏捷开发方法对开发人员的能力要求极高, 人员要不但要精通设计、编码、测试相关工作, 而且要能参与项目的需求分析和架构设计, 能对频繁变更的需求做出快速响应。

既然敏捷方法会带来以上问题, 我们为何还要考虑在军用软件承研单位引入敏捷开发过程呢?这是因为随着军用软件研制领域中引入的竞争机制, 出现了越来越多需要直接进行代码交付的PK项目, 如果再应用传统研发方式, 就失去了市场竞争优势。所以, 对于规模小、周期短、需求变动频繁、现场开发为主要形式且已经具备了较稳定的开发技术架构的项目而言, 敏捷开发方法既能让项目组在短时间内针对需求拿出有效代码, 而且在快速迭代中能总结大量有用的文档信息。只要我们可以偏重组建成员技术水平在同一层面上的成熟开发团队来承接这样的项目, 必然起到事半功倍的效果。

三、GJB5000A质量管理体系下的敏捷开发方法实施

3.1用敏捷开发方法定义过程

在组织级, GJB5000A三级过程域中的组织过程定义 (OPD) 可以帮助组织建立起自己的敏捷开发方法下的过程定义, 包括过程和过程元素的说明, 过程剪裁指南, 敏捷开发方法下的生命周期, 标准工作环境、组织测量库、组织资产库等。有了组织级定义, 项目组就可以按照集成项目管理 (IPM) 实现方法对组织标准过程进行剪裁, 形成项目的已定义过程 (P’DP) , 这个过程就可以直接指导项目的过程实施。从项目级的角度看, GJB5000A的过程管理关注的是项目做了什么, 而敏捷开发方法正是提供了该怎么做的具体开发方法, 敏捷开发方法中的活动经过合理替代和剪裁的实践方法以实现GJB5000A目标是完全可行的。

3.2敏捷开发方法实践

1. 实践方法的选择。

在敏捷开发的众多方法中, 我们选择了以Scrum为基本敏捷实践, 以持续集成 (CI) 和测试驱动开发 (TDD) 为扩展方法的敏捷开发架构。Scrum方法是敏捷开发中最典型的模型框架, 它把产品需求的实现分为若干个Sprint来完成, 每个Sprint完成后进行产品演示, 收集、细化直至实现用户需求, 整个过程为一个迭代式增量过程。持续集成提倡利用一个全自动的过程, 在一天中根据代码变化进行多次构建 (包括编译、发布和自动化测试) 来验证集成结果和发现集成错误。测试驱动开发技术 (TDD) 基本原理是在开发功能代码之前, 先编写单元测试用例代码是持续集成的验证手段。

2. 项目定义过程。

Scrum结合CI与TDD的过程可以简单描述为:一开始先由项目负责人确定一个Product Backlog (产品需求列表) , 而后召集项目团队召开Sprint计划会议对列表中的需求进行工作量预估和安排, 从中挑选出一个story作为本次迭代完成的目标, 形成Sprint Backlog (迭代需求列表) 分配给项目组成员, 每个成员接收到任务后将任务进一步细化, 在每日例会上汇报自己的完成情况和对下一步工作作出承诺, 同时在公示板上标注出自己的工作情况 (燃尽图法等方法) 。每个项目组成员对工作进行每日集成, 集成后利用测试驱动开发构建测试来快速评估集成结果, 如果发现问题马上修改, 再次集成测试, 反复循环, 直到一个迭代结束形成可用的代码。

3. 用GJB5000A过程管理敏捷开发方法下的研制。

从项目层面看, Scrum方法可以结合GJB5000A过程域中的需求开发, 项目策划、项目监控等, CI与TDD可以结合产品集成、配置管理等, 当敏捷开发的方法在GJB5000A的过程管理方法约束下, 可以得到更精确的控制和工作产品反馈。下表我们就给出了部分实践的实施方案。

四、总结

GJB5000A体系结合敏捷开发方法有别于传统研制方法中以文档为驱动的顺序研制过程, 它充分强调了消除冗余、减少返工、缩短周期, 提高效率的理念, 同时用过程记录的方法收集重要的项目信息, 可以在一轮迭代完成后一次输出成可用的文档和经过测试的可交付代码。于项目而言, 这种研制方式给项目提供了更多的灵活性选择。于组织而言, 因总装备部和军标的强制要求, 承研军用软件的单位必须要在GJB5000A及相关配套军标的要求下建立质量管理体系和规范项目研制过程。通过合理剪裁那些能提高产品质量、提高生产率的方法和模型后, 通过验证和确认方法形成组织标准过程, 必然能增强组织标准框架的适应性和实用性, 提升组织管理能力目标。

参考文献

[1]GJB5000A-2008军用软件研制能力成熟度模型[S].

[2]Mike Cohn.Scrum敏捷软件开发[M].北京:清华大学出版社, 2010.

[3]石柱.军用软件研制能力成熟度模型及其应用[M].北京:中国标准出版社, 2009.

军用软件开发工程化质量管理研究 篇4

随着信息技术的飞速发展,军事对抗更加信息化和电子化,军用计算机软件在军队信息化建设中作用越来越明显,尤其是涉及武器装备、信息安全和保密方面的关键系统,军用软件的质量越发显得重要。

军用软件的质量管理是一项系统活动。从软件生存周期的过程来看,在软件设计、开发、测试和集成等活动中,不仅需要采用多种方式进行过程控制,而且需要采用先进的管理技术,加强质量管理。质量管理不仅是提高军用软件开发水平的重要途径,也是提高军用软件产品质量的重要保证[1]。

1 军用软件开发的质量管理

1.1 影响软件质量的因素

计算机软件是计算机应用的核心,软件产品质量的高低直接关系到计算机系统应用的成败。虽然影响软件产品质量的因素很多,但其主要包括如下几个方面:软件开发所采用的技术、软件开发人员的能力、对软件开发过程的质量控制和软件开发所受限的时间与成本等,如图1所示。

此外,软件产品质量还与软件的质量需求密切相关,包括对于软件产品内部质量、外部质量和使用质量等方面的需求,同时还与软件的测试方法、质量评估准则等有关。

1.2 军用软件开发质量管理途径

软件质量管理是指在软件质量方面的指挥和控制活动[2]。这些活动包括:制定质量方针和质量目标,实施质量策划、质量控制、质量保证和质量改进等。

从图1可以看出,软件开发的质量管理,不仅包括技术方面的内容,还包括人事方面的内容,如软件开发组人员配备、技术水平、组织形式、工作计划与步骤等。如果人员技术水平较低,组织管理不当,都会直接或间接地影响软件质量。因此,对于军用软件的开发,既要加强软件开发的过程控制,又要加强软件开发的质量管理,并采用工程化的管理理念,对软件开发构建一个全过程、全方位、多层次的三维质量管理体系[2],保证软件产品的开发质量。

该体系框架模型如图2所示。

1)时间维:在软件生存周期内实施软件开发的全过程控制;

2)空间维:对软件质量有关的关键因素实施全方位管理;

3)组织维:构建从“软件开发者个人---软件项目组---软件开发单位”的多层次管理模式。

2 军用软件开发过程的工程化

即采用软件工程的方法开发软件。

为了加强对军用软件产品的质量管理,需要按照软件生存周期分阶段制定、实施开发计划,并逐个阶段予以验证,实现对生存周期内软件开发的全过程控制[3]。

2.1 军用软件生存周期模型

在软件生存周期内,为了描述软件开发、操作和维护所需要实施的过程、活动和任务,人们提出了很多生存周期模型,其中,在军用软件开发中被广泛应用的有:瀑布模型、螺旋模型、V型模型等。这些生存周期模型为软件的工程化管理提供了一个基本框架。它们从不同角度描述了软件过程,提供了不同的软件开发方法。

软件工程的实践表明,没有一个单一的解决方法能够解决所有的问题,没有一个生存周期、分析方法、设计方法、测试方法、产品评估方法适合于所有的软件工程项目。因此,应根据工作对象和范围的不同,以及软件开发人员经验的差异,选用合适的软件生存周期模型。

2.2 军用软件开发的过程控制

软件产品与硬件产品一样,要想保证其质量,首先要保证开发过程具有高质量。软件产品的质量控制实际上是对软件开发的过程控制。为此,在软件开发工作的开始,就要科学地选定软件生存周期模型,按照所选模型妥善定义整个软件开发过程所划分的各个阶段,并将其作为该软件开发和管理工作的共同依据。

2.3 军用软件开发过程的精细化管理

军用软件的基本要求就是要具有高质量和高可靠性,因此,通常需要采用一些精细的软件质量方法对软件的开发过程进行管理,这些方法主要有:

1)严格执行标准化设计规范和代码审查制度;

2)通过质量保证部门,由专业软件人员进行软件评审、缺陷预估、缺陷测量、审查协调等;

3)使用质量预估工具预测可能出现的错误,及时采取缺陷预防和清除操作;

4)在需求阶段完成或基本完成时进行风险分析,对技术风险、财务风险和进度风险等进行正确评估。

值得一提的是,软件审查一直被看做是最有效、最强大的软件缺陷清除方法。在美国,除军用软件外,航空软件、电信软件、医疗设备软件及系统软件和操作系统等所有高可靠性软件的开发商都会在测试前对软件进行审查,并将审查作为首选的软件缺陷清除方法。

近年来,美国军方在软件研制过程中由于采用了精细化管理,其软件的缺陷清除率已达到95%,可以和系统软件相媲美。

3 军用软件开发管理的工程化

3.1 军用软件开发工程化质量管理的意义

军用软件开发管理的工程化,是指对于军用软件工程项目的开发,要按照工程化的方法组织、计划、协调和监督软件开发的整个过程,即采用软件工程的方法管理软件。

良好的质量管理是获得高质量软件的重要保证,所以在软件开发自始至终的全过程,都必须认真加强对软件质量的管理工作。因为,没有适当的管理,就不能实现软件开发的工程化,更不能保证软件开发的高质量。

软件工程项目越大、越复杂,管理工作在整个软件开发过程中所占工作量的比例就越大。

3.2 军用软件开发质量的全方位管理

由于软件开发、维护本身的特点,相对于硬件,软件质量既取决于技术,更取决于管理。而且,软件开发过程难于策划,软件技术状态难于把握,软件质量度量难度较大,因此,必须采用工程化方法管理软件生存周期内的各个阶段,尤其是对影响软件质量的各个关键要素进行严格管理,使软件开发按照软件质量规范化要求组织实施,实现对软件质量的全方位管理。

以武器装备系统软件研制为例,其软件开发质量全方位管理的主要内容包括[2]:

1)软件分级管理

2)软件文档管理

3)软件需求管理

4)软件评审管理

5)软件配置管理

6)软件测试管理

7)建立软件失效报告、分析和纠正措施系统(SFRACAS)

8)软件分承包单位管理

在软件开发实践中,要根据每项内容的具体要求组织实施好管理活动。

3.3 军用软件开发质量的标准化管理

军用软件的标准化管理是军用软件开发质量管理的重要组成部分,其核心是军用软件工程标准。

军用软件工程标准是指军用软件开发、运行、维护和引退的方法以及过程等方面的标准。军用软件工程标准体系非常复杂,其主要组成有:基础标准、软件工程环境标准、软件过程标准、软件产品标准等。

为了能够及时地把最新的软件技术和管理手段引入到军用软件的研制中,美国国防部已经建立了一套完善的软件工程标准化政策和工作体系,一方面通过大量采用非政府标准,来满足国防部软件采办的标准需求;另一方面通过组建一些专门的研究机构,从事信息系统标准的研究和制定工作。

长期以来,我国军用软件工程标准体系建设一直将美国军用标准作为主要的参照对象,并且将多项美军标准转化为我军标准,在我国武器装备软件研制中起到了很大作用。

随着我军信息化建设的不断深入,对军用软件工程标准化提出了更高的要求,加强军用软件工程标准体系建设,有效发挥军用标准化的作用,对保证军用软件产品的质量将起到关键作用。

4 军用软件开发的多层次管理模式

军用软件开发的多层次管理模式是将“软件开发者个人---软件项目组---软件开发单位”组成一个三位一体的开发管理体系。这一多层次的组织体系能使与软件开发相关的每一层人员都能自觉地参与到不同层面的管理中去,从而保证软件开发过程中人员能力的充分发挥。

4.1 软件能力成熟度模型CMM

软件能力成熟度模型CMM(Capability Maturity Model for Software)起初是受美国军方委托而进行的一项研究成果,用来评估军用软件承包商的软件过程,以便评价其软件开发能力,降低军用软件的采购风险。因此,它的针对对象是公司或单位的软件开发能力。

由于CMM描述了软件过程不断改进的科学途径,使软件开发组织能够自我分析,找出尽快提高软件过程能力的策略,因此,该方法一经推出,便引起了国际软件产业界和软件工程界的广泛关注,并为许多承担政府重大软件项目的公司(如休斯飞机公司等)所采用,用以改进软件过程,提高软件开发过程能力。

4.2 小组软件过程TSP

TSP(Team Software Process,即小组软件过程)的针对对象是软件开发团队(Team)。在该团队中,需要明确每个成员的角色,并且为这些角色确定管理目标及量化的质量评价准则等。

TSP的目标是建立一个具有高度凝聚力的软件开发团队。该团队应当团结、协作、高效地工作,使其整体实力大于每个个人实力的总和。

4.3 个体软件过程PSP

PSP(Personal Software Process),即个体软件过程。它的针对对象是软件开发者个人。

在传统的软件开发管理模式中,管理只是软件开发单位管理部门的事,不能调动和激发软件开发个人和小组参与管理的积极性。而在PSP中,不仅要求软件开发者个人进行软件开发工作,而且要求个人参与管理工作,使其能够自己进行过程策划、跟踪管理,并制定出管理计划和具体的定量质量要求等。

PSP是一种可以用于控制和改进个人软件开发工作的自我改善过程,可使软件开发人员大大减少软件缺陷。据统计,通过采用PSP,在开发阶段总缺陷数可减少58%,在测试阶段发现的缺陷数可减少71.9%,生产率可提高20.8%[4]。

由此可见,通过PSP、TSP和CMM,可以构建一个由“个人----团队----单位”组成的三位一体的多层次软件开发管理模式,如图3所示。

通过这种三位一体的多层次软件开发管理模式,可以改变传统的单一组织管理形式,使软件开发组织从无序、不可控的混乱情形转变为有序、可控的规范状态。

这里,PSP、TSP和CMM都有一个共同特性,即它们既关心软件开发过程,又关注软件开发管理,由此共同组成了一套先进的软件开发管理模式。该模式不仅可以用来衡量软件开发单位、软件项目组和软件开发者个人的能力,而且可以用来有效地帮助改进和优化管理,提高软件产品的质量。

5 结束语

军用软件开发的质量管理是一个复杂的系统工程,需要在软件工程的具体实践中不断探索、研究新的理论与方法,寻求更加优化的质量管理途径。

目前,我军正处于机械化向信息化的战略转型时期,军用软件开发和应用的范围越来越广,军用软件的开发质量对军队信息化建设起着至关重要的作用。因此,在软件工程实践中,一方面要积极采用新技术、新方法,按照软件工程原理,分阶段组织实施软件的过程控制和质量管理;另一方面要严格执行国家军用标准,充分发挥军用软件质量管理体系的作用,保证军用软件的可靠性和安全性,提高我国军用软件产品的质量。

参考文献

[1]徐亚妮,扈延光,查国清.军工产品RMS过程审核程序及方法研究[J].科技管理研究,2008,(12):320-322.

[2]阮镰,陆民燕,韩峰岩.装备软件质量和可靠性管理[M].北京:国防工业出版社,2006.

[3]常好丽,杨海成,何苗,等.面向多级供应商的航天型号产品研制过程质量管理研究[J].制造业自动化,2009,31(1):1-4.

军用软件 篇5

随着武器装备的现代化发展, 嵌入式软件在武器装备中大量应用, 并且比例越来越大, 很多功能是由软件或软件驱动硬件来完成, 软件已无处不在, 正在成为战斗力生成的新的驱动力。近年来, 嵌入式软件的质量不论是同硬件相比还是同装备的质量相比, 都还存在着一定的差距, 嵌入式软件的可靠性对发挥武器装备的作战能力的影响越来越大, 软件可靠性已成为制约武器系统可靠性的瓶颈。

1 军用嵌入式软件概念

在中国嵌入式系统领域, 比较认同的嵌入式系统概念是:它是以应用为中心, 软硬件可裁减的, 适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。嵌入式系统一般指非PC系统, 主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。它的操作系统和应用软件集成于计算机硬件系统之中, 简单的说就是系统的应用软件与系统的硬件一体化。它是可独立工作的“器件”, 有计算机功能但又不称之为计算机的设备或器材。主要用于实现对其他设备的控制、监视或管理等功能, 具有软件代码小、自动化程度高、响应速度快等特点。

军用嵌入式软件就是武器装备嵌入式系统中的软件部分, 是装备中不可缺少的一部分;应用程序控制着系统的运作和行为, 而操作系统控制着应用程序与硬件的交互作用。其应用软件的开发基于嵌入式操作系统, 开发出来的应用软件也只是运行在嵌入式操作系统之上, 因此嵌入式软件与嵌入式操作系统是分不开的。有时也可以把嵌入式操作系统也归入嵌入式软件的范畴, 它是嵌入式系统软件。

2 军用嵌入式软件可靠性内涵

软件可靠性与软件缺陷有关, 也与系统输入和系统使用有关。从理论上说, 可靠的软件系统应该是完整、正确和一致的, 但是实际上任何软件都不可能达到百分之百的正确。对于软件可靠性有许多不同的定义, GJB 5236-2004中定义为:在指定条件下使用时, 软件产品维持规定的性能级别的能力。其中包含: (1) 软件产品为避免由软件中故障而导致失效的能力; (2) 在软件出现故障或者违反指定接口的情况下, 软件产品维持规定的性能级别的能力; (3) 在失效发生的情况下, 软件产品重建规定的性能级别并恢复受直接影响的数据的能力。

军用嵌入式软件的特点: (1) 与硬件耦合度较高, 通常只执行特定功能; (2) 嵌入式软件一般都固化在存储器芯片或单片机中, 而不是存贮于磁盘等载体中; (3) 大部分嵌入式系统具有较高的实时性, 因此对程序的时序和可靠性要求严格。

3 影响军用嵌入式软件可靠性的因素

嵌入式软件在实质上是一种信息处理载体, 无论是诸如飞机火控系统的控制软件, 还是如指挥自动化系统软件, 都是接收外界的输入信息, 根据一定的规则向外界输出一定的信息。如设计人员对用户的需求失察或者误解、或对软件的设计和测试考虑不全等原因都有可能引入错误。其中包括: (1) 需求分析错误:由于对用户需求的理解有偏差, 或用户的需求频繁改动以至于无法准确把握, 会引入错误; (2) 设计错误:一是如果在需求分析错误结果的基础上, 对软件系统的体系结构和算法进行描述, 那么, 即使是高质量的设计也是错误的;二是需求分析是正确的, 但设计的方法是错误的, 如结构化程度不好, 模型有误等, 都会导致错误; (3) 编码错误:这与系统开发所选用的编程式工具和编程技术人员的能力经验密切相关。嵌入式软件的开发通常是由相关有经验的工程师完成的, 他们对相关武器装备富有经验, 但对于计算机的认识尚达不到计算机专家的水平, 写出的程序代码可能存在隐患; (4) 测试错误:主要包括测试计划不够完善、测试不全面, 测试数据不能反映软件使用的真实环境, 测试用例过于局限甚至错误, 以及测试人员对测试结果的错误分析等错误因素; (5) 运行和维护过程中的错误:操作人员的误操作、或者操作规程本身是错误的, 都会在使用时引入错误。据统计, 在软件生存周期的需求分析和软件设计阶段发生错误或故障的比重各占55%和17%, 明显高于软件生存周期的其他各个阶段, 是影响软件可靠性的关键阶段, 所以要尽量把错误消除在开发前期。

4 提高可靠性方法

军用嵌入式软件的可靠性主要是在软件开发过程中, 应用各种必须的方法和技术, 使程序的设计在兼顾各种需求的同时, 全面满足软件的可靠性要求。

(1) 加强软件的需求分析:软件的需求分析对整个软件的研制起着决定性的作用, 需求分析做好了, 软件研制就成功了一半。因此, 需求分析应严格按照流程进行。如图1所示:

目前有许多不同的用于需求分析的分析方法, 但是, 所有这些分析方法都应遵循以准则: (1) 必须理解并描述问题的信息域, 根据这条准则应该建立数据模型; (2) 必须定义软件应完成的功能, 这条准则要求要求建立功能模型; (3) 必须描述作为外部事件结果的软件行为, 这条准则要求建立行为模型; (4) 必须对描述信息、功能和行为的模型进行分解, 用层次的方式展示细节。

(2) 采用避错技术:利用合理的结构和算法, 使得软件尽可能的不产生歧义和错误。比如MISRA (Motor Industry Software Reliability Association设在英国的汽车工业软件可靠性协会) 对汽车电子用嵌入式软件的安全可靠性做了大量研究, 在编程的语言设计结构上提出了安全性标准。

很多写法在ANSI的C以及相应的C编译器看来并没有什么不可以, 但在MISRA看来, 在安全可靠性方面存在着隐患。例如, 以下的一个写法在C语言中完全合法:

在if (a=b&&c=d&&e=f&&g=h) 中, 4个条件看起来是并列的, 但在编译和执行中, 存在着随意性和不确定性;而第二个写法, 结果是唯一的。

(3) 综合运用测试技术:主要对软件缺陷进行排错的测试技术。软件测试是软件开发过程中重要内容之一, 也是软件质量保证的关键和有效手段, 软件测试贯穿软件开发的整个生命周期。白盒测试和黑盒测试是软件测试设计的基本方法, 也可以采用软件和硬件相结合的测试方法: (1) 白盒测试也称结构测试或逻辑驱动测试, 它是指导产品内部工作过程, 按照程序内部的结构对程序进行测试, 通过测试来检测产品内部动作是否按照规格说明书的规定正常进行, 检验程序中的每条通道是否都能按预定要求正常工作。常用的白盒测试方法有两大类:静态测试方法和动态测试方法, 白盒测试通常在软件编码阶段中使用; (2) 黑盒测试又称为数据驱动测试或基于规格说明的测试, 是一种常用的测试方法, 其主要检验输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。按照测试内容划分, 一般可分为功能测试和非功能测试。具体黑盒测试设计方法包括:等价类划分法、边界值分析法、因果图法、判定表驱动法、正交试验设计法等; (3) 软件和硬件相结合的方法, 它是结合硬件的软件插装技术, 综合以往纯软件和纯硬件测试方法的优点, 采用硬件直接从目标机的总线上跟踪嵌入式代码的实时运行情况。这种方法的优点是一边测试, 一边可以观察到覆盖率的情况, 可以及时增加测试用例, 提高测试覆盖率。

(4) 采取容错技术:容错技术就是使软件在软件缺陷存在的条件下也能正常运行。大多数的软件不论采用什么技术和什么方法, 软件中仍然会存在错误。采用新的语言、先进的开发方式、完善的开发过程, 可以减少错误的引入, 但是不可能完全杜绝错误。因此, 软件容错技术成为提高软件可靠性的一种很重要的方法。在军事系统 (例如舰船武器控制系统、飞机控制系统) 同样适宜采用软件容错技术提高软件的可靠性, 容错设计技术可以分为两类: (1) 避免故障, 在开发过程中, 尽可能不让缺陷潜入软件, 这类常用的技术有:算法模型化, 把可保证正确实现需求规格的算法模型化;模拟模型化, 为保证在确定的资源条件下的预测性能的发挥, 使软件运行时间、内存使用量及控制执行模型化;可靠性模型, 使用可靠性模型, 从差错发生频度出发, 预测可靠性。正确性证明, 使用形式符号及数学归纳法等证明算法的正确性;软件危险分析与故障树分析, 从设计或编码结构出发, 追踪软件开发过程中潜入系统缺陷的原因;分布接口需求规格说明, 在设计的各阶段使用形式接口需求规格说明, 以便验证需求的分布接口实现可能性与完备性; (2) 冗余容错技术。屏蔽冗余和动态冗余是两种有效的方法。屏蔽冗余是冗余的"静态"形式, 系统能容忍某些故障的出现, 是提高可靠度的重要方法;动态冗余是按照动态方式利用冗余, 系统出现故障时系统器件可以重组, 来消除故障对系统的影响。

5 结束语

军用嵌入式软件的可靠性是技术和管理问题, 也只有将两者结合起来, 严格按照国军标的标准和各种技术方法来开发软件, 加强软件管理和测试工作, 军用嵌入式软件的可靠性才能提高到一个新的水平。

摘要:在阐述了军用嵌入式软件定义及可靠性内涵的基础上, 分析了影响军用嵌入式软件可靠性因素, 介绍了4种提高军用嵌入式软件方法的应用。

关键词:军用,嵌入式软件,可靠性

参考文献

[1]杨艳妮, 彭道勇, 张仕念, 等.军用软件可靠性问题研究[C].第十三届全国可靠性物理学术讨论会论文集, 2009.

[2]张海潘.软件工程导论[M].北京:清华大学出版社, 2008.

[3]邵贝贝.嵌入式软件的安全可靠性控制[J].电子产品世界, 2005.

[4]丁旭, 崔吉岗, 刘春裕.军用嵌入式软件覆盖测试技术[J].指挥控制与仿真, 2008 (10) .

[5]刘刚.军用嵌入式软件可靠性及其保证[J].兵工自动化, 2008 (1) .

军用软件 篇6

总装备部于2003年发布和实施的国家军用标准《军用软件能力成熟度模型》(MS-CMM,Military Software Capability Maturity Model)用于军用软件机构的评价。该标准基于SEI的SW-CMM模型。本文就军用软件保障机构如何应用MS-CMM改进保障过程进行了研究讨论。

1 CMM的基本概念

CMM,即软件能力成熟度模型,由卡耐基.梅隆大学软件工程研究所(SEI)的Watts Humphrey主持开发,主要用于软件过程评估和软件能力评价。软件能力成熟度模型提出的框架分为5个成熟度级别,分别为:初始级、可重复级、已定义级、已管理级、优化级。5级成熟度级别合理地描述了软件机构进行软件过程改进的实际情况,给出了从下一级到上一级进化的合理度量,明确了进行下一步改进所需的工作。

2 认证流程中的MS-CMM应用

军用软件保障机构开展认证需要向总装备部提出申请并获得受理后,即可展开可行性分析、准备工作、咨询培训、现场操作和评审、日常贯标等。

2.1 可行性分析

软件机构在实施MS-CMM认证之前,必须撰写MS-CMM认证的可行性分析报告。可行性分析报告主要包括以下内容:机构实施软件保障的基本情况,大致确定自身条件是否达到MS-CMM认证要求、机构基本状况,确定实施MS-CMM认证需要的时间、资金、人员等条件是否许可。可行性分析报告获得通过后,MS-CMM认证程序正式开始。

2.2 准备工作

准备工作主要包括机构内部的筹备工作和对外的联络工作两个部分。

机构通过内部筹备工作达到以下目的:一是开展内部宣传,使机构所有人员具备实施MS-CMM认证的意识,在机构达到最终的MS-CMM认证目标上取得一致。明确通过MS-CMM认证改进软件保障过程,建立一套完整的软件保障管理体系,为认证的具体实施提供观念上的保障。二是筹集MS-CMM认证实施过程所需的资金,使认证工作可以按时展开。三是理顺管理机制。根据机构现有情况,从机制上保障认证实施过程中组建的各种小组的人员调整和配备。

对外的联络工作主要包括以下内容:一是参加总部、学术机构等组织的各类关于MS-CMM认证和软件保障的研讨会、交流会和报告会,获取实施MS-CMM认证的知识,最好向已经通过MS-CMM认证或CMM认证的软件机构吸取经验和教训,了解实施过程中需要避免的问题和需要特别关注的焦点。二是遴选并确定咨询机构和主任评估师,是否需要咨询机构提供服务可以视情况而定。

2.3 咨询和培训

目前,专业的军用软件保障认证咨询机构还很少,但是可以借鉴地方CMM咨询机构的帮助。咨询机构主要提供以下服务:

(1)与软件机构一起开展前期的调查研究工作,对机构软件开发管理的现状做出系统性描述,根据机构的情况确定机构符合第几级MS-CMM认证的条件以及需要达到的目标,还可以结合软件过程成熟度提问单的调查一起进行。

(2)根据调查结果进行分析,帮助机构确定实施MS-CMM认证和改进软件过程所使用的工具和方法。基于MS-CMM的内部过程改进评测是一种机构软件过程的诊断工具,具体进行软件过程改进则使用一些第三方提供的软件。咨询机构可以根据机构的具体情况,帮助机构进行这些软件的遴选和确定。

(3)根据上述的调查和分析,在和机构高层管理层充分交流沟通以后确定实施MS-CMM认证的详细进度表,并估算大致的工作量。

(4)帮助机构组建MS-CMM认证和软件过程改进中的组织机构:SEPG(软件工程过程组)、SQA(软件质量保证)小组、SCM(软件配置管理)小组。

培训工作主要由咨询公司承担,目的是帮助机构员工理解MS-CMM框架体系、软件过程改进后的结果和所遵循的原则及改进过程中所使用的工具和方法。

2.4 现场操作

现场操作主要为在咨询机构和评审小组的指导下进行机构的软件过程改进。军用软件保障机构成立SEPG小组、SQA小组和SCM小组后,由这些小组负责具体工作的开展。

评审小组由若干有软件保障和管理经验的人组成,其任务是评估软件开发机构的软件过程能力。评审小组通常由评审组组长(总装备部授权的主任评审师)、内部评审员(来自组织内部的人员),外部评审员(来自组织外部的人员)4~10人组成。评审组成员应符合以下条件:熟悉CMM/CMMI模型,掌握过程评审的知识,具有软件过程改进概念的知识,有软件工程领域的经验,有管理经验,有生命周期阶段和功能活动的经验,具有该组织级的环境、应用和现有的软件过程知识,掌握评审组技能,有信誉度,不是参评项目的经理。

软件工程过程组(SEPG)由专家组成,推进机构所采用的软件过程的定义、维护和改进活动,主要开展以下活动:

(1)取得软件保障机构管理层的支持;

(2)推动软件过程内部评估,包括对当前工作流程的分析整理与文档化,内部预评估。按照MS-CMM要求定义和补充软件过程、规范和模板;

(3)与受改进过程影响的项目经理一起研究措施,调整开发计划,制定SQA/SCM计划,与各级经理和工程人员合作推进过程定义和维护。

(4)维护过程数据库,包括各过程的平均周期,各过程工作产品的规模、开发周期、修改次数、评审周期等;

(5)为软件保障和管理提供过程咨询;

(6)组织MS-CMM预评估;

(7)针对预评估中发现的问题制定改进措施;

(8)实施新过程;

(9)正式实施MS-CMM评估。

软件质量保障(SQA)小组由计划和实施项目质量保证活动的经理和技术人员组成,主要保证软件过程的步骤和标准得到遵守。值得注意的是,必须保证该小组的独立性,具体来说,必须做到:

a、给执行SQA任务的人提供组织上的自由度,使其能够成为机构管理者了解项目的“耳目”;

b、保护执行SQA任务的人,使其免受被监督项目负责人所作的性能评价的影响。使高级管理者相信正在报告的有关项目过程和产品的信息是客观的。

软件配置管理(SCM)组由负责策划、协调和实施软件项目的正式配置管理活动的经理和技术人员组成。

2.5 正式评审

正式评审在主任评估师、国内软件工程专家组成的评估小组的主持下进行,主要审查各种流程规范文档、面试软件MS-CMM小组成员,主要按照以下流程评估:

(1)界定评估范围,开发评估计划;

(2)评估组的准备和培训;

(3)进行问卷调查,并检查问卷结果;

(4)与项目经理、中层经理,功能区域代表人员进行面谈;

(5)在进行各种面谈时,审查各种流程规范文档;

(6)准备评估报告,此期间进行追加的面谈和文档审查;

(7)评估小组统一意见,做出最终的评估报告,由主任评估师签署最终意见;

(8)评估工作总结。

2.6 日常贯标

软件机构通过某个等级的认证并不是MS-CMM认证的结束。因为通过评估的有效期为两年,机构需要持续不断地改进过程,继续准备通过更高级别的评估或者继续保持通过最高级的评估。MS-CMM认证的最终目的是改进机构的软件过程,为客户提供高质量的软件保障服务。

3 军用软件保障机构应用MS-CMM应注意的问题

针对我军软件保障机构的现状,实施MS-CMM不应该好高骛远,应立足于解决本机构的主要问题。

3.1 循序渐进的实施MS-CMM

对软件过程的改进是一个不断总结经验、吸取教训、发展完善的过程,不可能一蹴而就。MS-CMM作为一种软件过程改进的模型,包含了多方面的内容,其实施过程也应该是循序渐进、逐步完善的,如果操之过急,只能是欲速而不达,收不到良好的效果。

3.2 注重对组织成员的培训

软件保障机构一般已具备一定的软件保障能力,机构成员的工作方式和习惯已经形成。但是,在MS-CMM的实施过程中,所有的成员(包括管理者)都需要按照过程改进的要求做一些改变,尤其是观念上的改变。MS-CMM的实施归根结底是由组织的所有成员一起来完成的。另外,MS-CMM规范在阐述如何提高一个组织的软件过程能力的同时,突出体现了管理的重要性。一个维护组织如果具备了优秀的管理人员,实施MS-CMM将会取得事半功倍的效果。所以对管理人员的培训是非常重要的。

3.3 制定的改进方案要简洁实用

实施MS-CMM的目的就是要改进维护组织的软件过程,而改进的重点又应该放在简洁和实用上。简洁、实用的软件过程可以使得在软件维护过程中避免重复劳动,节省资源,从而提高软件维护的效率。比如,优化审批流程,去掉不必要的审批环节,使审批过程简单有效,这样可以大大减少审批的时间,达到缩短维护周期的目的。另外,如果能够减少文档间的冗余,则可以避免重复的工作。

3.4 可以越级实施KPA

虽然MS-CMM不提倡成熟度等级的越级实现,但是对其中某些关键过程域(KPA)的提前实施是可行的。在这一点上,国内许多公司深有体会。

联想在实施CMM二级的时候就成立了软件工程过程组(SEPG),从事软件过程改进活动;另外还有组织层的培训程序,部分实施了同行评审,并建立了组间协调规范,这些都是CMM3级所规定的内容。联想只通过CMM3级认证,但是仍做了大量的定量分析工作,对于技术更新、过程更改的管理也达到了相当高的水平,而这些则是CMM4、CMM5级才要求的。

关键过程域的提前实施不仅有助于软件过程能力的提高,还可以为实施更高的MS-CMM级别做准备。这样,从一个级别提高到另一个级别时,许多工作就不用从头开始,而是在已有的基础上加以改进,更好地利用已有经验,保证提高MS-CMM级别的顺利实现。

3.5 定期进行内部评估

内部评估是组织内部MS-CMM人员对实施MS-CMM的情况进行的评估,是正式评估的模仿。由于评估人员并不是正式的评估师,受其水平的影响,内部评估所得的结果可能与软件保障机构真正的实施情况并不符合。但是,内部评估作为一种检查MS-CMM实施情况的重要手段,其作用还是相当大的。

内部评估可以使管理人员尽可能早的发现MS-CMM实施过程中存在的问题并进行改正,也有助于对实施过程中积累的经验进行系统的汇总,进而达到软件过程改进的目的。不仅如此,进行内部评估还有利于组织应对正式评估。在内部评估的过程中,组织内的所有成员会逐渐熟悉正式评估的流程,以及在正式评估中所要注意的地方,这样在正式评估中才不会措手不及,忙中出错。

4 小结

本文就软件保障机构如何应用MS-CMM的相关问题进行了讨论。有效的改进是以现实为基础的。缺乏对本组织软件保障现状的了解和对未来的客观分析,容易导致空想和过于乐观。改进需要投入资源,管理者不能只把重点放在维护人员的努力工作上。当然,再好的过程也需要人的执行。虽然本文没有讨论人的素质以及如何招聘与选拔人才,但这并不是否认对维护人员自身素质的要求,相反,越是复杂的维护活动就越是要求有明确的过程,越是要有能够认真理解并执行的维护人员。

参考文献

[1]王小巍,朱小冬,王毅刚.基于CMM的软件维护过程管理及其工具研究[J].微计算机信息,2005,7(3):139-141.

[2]朱小冬,王小巍.基于CMM的软件维护过程研究[J].计算机工程与应用,2005,29:66-69.

[3]瓦茨.S.汉弗莱.软件过程管理[M].高书敬,顾铁成,胡寅,译.北京:清华大学出版社,2003:283-292.

军用软件 篇7

一般地讲,一切应用服务于军事目的计算机都可以称之为军用计算机。我们习惯上将军用计算机分为嵌入式计算机(用于武器系统以及军事电子信息系统等)、高性能计算机、仿真计算机、单兵计算机(包括加固型笔记本计算机、可穿戴计算机)。目前,嵌入式计算机在陆、海、空、天等各种作战平台以及指挥控制系统中大显身手;高性能计算机已广泛用于核武器系统研究与仿真、指挥与控制、导弹防御、信号处理、流体力学计算以及气候环境预测等军事领域;加固型笔记本计算机、可穿戴计算机也都已广泛用于各军兵种,成为现代士兵获得态势感知、实现精确打击、沟通信息的重要手段。而军用软件可以大大提高武器装备的自动化、智能化控制程度和整个装备体系的操控效果,实现传统手工作业无法完成的诸多功能。2008年,嵌入式软件、C3I软件以及其他武器系统软件的开发都取得了长足的进步。本文介绍了2008年世界军用计算机技术及其软件的发展情况。

1 计算机技术

1.1 IBM“走鹃”运算速度突破千万亿次

2008年6月18日,超级计算500强排行榜公布,IBM最新开发的“走鹃”超级计算机以1.026 petaflop/s(每秒千万亿次浮点运算)的运算速度荣登榜首。

“走鹃”采用了一系列专门针对游戏和商业的技术,包括用于Play Station 3游戏机的Cell宽带引擎和AMD x86处理器。“走鹃”拥有130 536个计算核心,包括12 960颗Cell引擎的116 640个PPE(PowerPC微处理器单元)和SPE(协处理器单元)核心,以及6 948颗双核AMD Opteron处理器。“走鹃”是全球第一台采用Cell处理器的混合式超级计算机,但也因此需要3种不同的编程工具,以确保不同核心同时高效率运行。

1.2 洛克希德·马丁公司将为美国国防部高性能计算中心提供支持

2008年3月25日,美国防部授予洛克希德·马丁公司价值3.44亿美元的下一代技术服务合同,要求洛克希德·马丁公司在海军海洋学办公室、陆军工程研究与发展中心、空军研究实验室、位于俄亥俄州的陆军研究实验室等4个主要国防部科学研究站点操作并维护高性能计算机中心。

为了支援国防部高性能计算现代化项目,洛克希德·马丁公司将提供系统管理、计算机操作和管理、系统集成、应用设备与用户支持,并为国防部的4个主要共享资源中心提供数据可视化服务。

1.3 美国国家航空航天局与英特尔、SGI公司联合开展“昴宿星”计划

6月,NASA(美国国家航空航天局)、英特尔和SGI(Silicon Graphics)公司签署一项合作协议,目的是提升艾姆斯(Ames)研究中心内NASA高级超级计算部门的建模和仿真能力。

这项计划名为“昴宿星”(Pleiades),预期2009年前开发出峰值性能为1 petaflop/s的计算系统,并在2012年前将这一数字提高到10 petaflop/s。这将有助于满足NASA提高计算性能的需要,并能提供完成未来任务所需的计算能力。

1.4 美国海军装备新型超级计算机

2008年7月16日,根据美国国防部的高性能计算现代化计划,美海军购买了一台IBM公司的Power 575 Hydro-Cluster超级计算机。该系统运算速度达90 teraflop/s,它使用IBM公司的AIX操作系统,包含有5 500枚Power 6 IBM处理器,每个节点上有32枚,这些处理器将采用水冷却。同时,IBM公司还为该系统提供了500 GB的存储空间。

该计算机主要用于海洋图像建模和天气预报。这些数据将帮助海军控制舰艇远离有可能发生强烈风暴的海域。这些数据还可以通过网站传输至美国国家海洋与大气管理局,用于民用。在搜寻和救援行动中,海岸警卫队也可以使用这些数据作为辅助。该计算机由海军海洋图像办公室主要资源共享中心负责。

1.5 美国空军订购加固膝上型计算机

2008年1月3日,美国空军从Telos公司订购了将近1000台加固膝上型计算机,用于飞机维护操作。合同要求Telos公司转售通用动力Itronix公司的585台膝上型PC给空军预备队司令部,用于美国18处地方;289台膝上型PC给空军特殊作战司令部用在以下4个地方:佛罗里达州的赫伯特空军基地、新墨西哥州的坎农空军基地、日本的嘉手纳空军基地和英国的皇家空军米尔登霍尔基地。

该PC将通过Telos公司设计和安装的安全无线局域网连接到基地的网络上,供飞机维护技师在飞行途中和飞机修理库中使用。

1.6 美国陆军为“黑鹰”直升机采购飞行控制计算机

2008年6月27日,美国陆军与Hamilton Sundstrand公司签署了一份价值790万美元的合同,订购187套CP-1446/A高级飞行控制计算机。据称,CP-1446/A是美国陆军“黑鹰”UH-60A/L直升机编队的一部分。根据有关消息,合同还包括其他选项,如果进行演习的话,最多将需要950套设备。这项工作在菲尼克斯(Phoenix)完成,预计在2014年6月前完成集成。

1.7 通用动力公司开发出超薄客户端计算机

2008年3月17日,美国通用动力公司C4系统分部发布了Tadpole M1400移动式超薄客户端计算机(见图1)。Tadpole M1400是一款经济且易于维护的笔记本式计算机,用于日常的移动式安全计算。

Tadpole M1400类似于安全数据终端,能访问服务器端的操作系统、应用程序和数据。这意味着本地系统崩溃和数据丢失的可能性极低。由于没有本地外存、内存以及软件,Tadpole M1400完全避免了由于丢失或者被盗所带来的安全问题。

超薄客户端计算机的操作系统和应用程序在中心管理服务器上运行,更为安全和可靠。由于不需要维护和支持,Tadpole M1400也无需升级和安装新软件或安全补丁。所有新的应用程序或软件升级都在少量几台中心服务器上进行,并能立即向所有用户提供,因此也无需大量的时间和费用就能管理成百上千台分布式移动计算机或远程计算机。

1.8 美国空军B-2轰炸机机载计算机升级第一阶段完成

2008年7月10日,诺斯罗普·格鲁曼公司用于升级B-2A隐身轰炸机飞行管理系统的现代化计算机体系结构开发的第一阶段结束。

继2008年6月初美空军批准初始设计评审之后,诺斯罗普·格鲁曼公司将在10月完成最后的设计,于2009年第四季度交付升级后的计算机并开始飞行试验。诺斯罗普·格鲁曼公司正用霍尼韦尔公司的奔腾级IPU(综合处理单元)升级B-2轰炸机现有的256 kB级的芯片处理器,改进后的飞行管理系统的处理速度可以达到1 Gbit/s。

安装了这种处理器和带有光纤通道接口的新磁盘之后,就能够对B-2轰炸机的武器与传感器系统进行一系列升级,包括有源相控阵雷达升级、通信组件升级等。

1.9 TAG公司开发出加固式手持计算机

2008年3月18日,美国TAG公司开发出一种重量为1.8 kg的加固式手持计算机,可用于移动应用领域。该计算机名为“TC-100 Commander”,它采用英特尔公司LV Pentium-M 733 1.4 GHz或ULV Pentium-M 738 1.1 GHz微处理器,具有2 MB的2级缓存,可以扩展为2 GB的DDR内存。如图2所示。

该计算机具有32 GB的固态存储硬盘或者100 GB的机械旋转式硬盘。采用USB2.0端口、以太网(RJ-45)端口、微软视窗XP专业版、Linux和Solaris操作系统、背光式按键、7英寸触摸式显示屏,1024×600像素的分辨率。该机配备2块可热插拔的电池,具备无线网络能力,也能提供GPS(全球定位系统)、蓝牙、Wi-Fi和卫星联线能力。

2 软件技术

2.1 嵌入式软件

嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,在装备信息化发展过程中发挥着重要作用。2008年,世界各国继续进行军用嵌入式软件的开发和升级工作。

1)美国舰载自防御系统采用LynxOS嵌入式实时操作系统

LynuxWorks公司的LynxOS是一种嵌入式实时操作系统,能够兼容Linux ABI,符合POSIX标准,支持多进程和多线程等特性,是专为要求快速、确定响应的复杂实时应用设计的操作系统。2008年,雷声公司为美国舰载自防御系统选定了该操作系统,将在该嵌入式实时操作系统上构建下一代作战系统。LynxOS嵌入式实时操作系统满足美国海军开放式结构要求,能够保证未来系统的兼容性,并且支持软件重用。舰载自防御系统将把商业现货软件与LynxOS相结合,向雷达系统传送硬杀伤(导弹系统与速射火炮系统)和软杀伤(诱饵)防空武器信息。为下一代作战系统选用嵌入式软件,表明了嵌入式技术对于美军未来国防军队的重要性。

2)印度政府开发航空飞行控制软件

2008年3月,Ada工具和支持服务提供商AdaCore公司宣布,印度航空发展组织选中了该公司的GNAT Pro高完整性版本,该软件将由AdaCore公司的合作伙伴米斯特拉尔(Mistral)解决方案公司在Do-178B Ada环境中使用,来创建一种新的安全关键飞行控制软件,增强印度国防能力。

Do-178B环境中的GNAT Pro高完整性版本支持嵌入式系统开发,最终航空飞行控制软件系统将运行在基于VME PPC单板机上,使用Wind River系统公司的VxWorks 6.x嵌入式操作系统,该航空飞行控制系统将成为印度国防部在多种应用中的标准。

2.2 C3I软件

C3I软件参与信息的传输、整理、分析、解释,并为军事指挥人员提供决策支持和情报。2008年,C3I软件研发和应用均取得重要进展,C3I软件在C3I系统中的含量逐步增加,发挥的作用也越来越大。

1)洛克希德·马丁公司为通信机器人开发控制软件

2008年3月,美国国防先期研究计划局授予洛克希德·马丁公司一份新合同,由洛克希德·马丁公司为其小型通信机器人开发控制软件。在城市区域内,建筑物和墙一类的障碍会减弱甚至阻断通信网络,而这种被称为LANdroids的机器人将会感知无线电信号的强度和模式,而后如同小蜘蛛一样自动选择合适的位置来增强衰减的信号或是对中断的信号进行中继。

洛克希德·马丁公司将借鉴LANdroids相关的探索性研究中取得的成果,开发LANdroids控制软件。该软件将利用射频传感器数据和来自其他物理传感器的输入来确定并保持态势感知,同时还将使用来自其他LANdroids和作战人员的坐标数据,协调彼此的移动并维持一个最适宜的通信网络。该控制软件开发工作第一阶段的目标是组织一个机器人小组共同工作,从而提供基础的态势感知和协调能力,第二阶段将使机器人在更复杂的环境中工作,协调多个机器人小组的移动,控制其电量消耗,使其在保持通信网运行的同时达到最佳运行寿命。

2)SBIRS GEO卫星飞行软件取得重要进展

美国SBIRS(天基红外系统)可提供导弹发射预警,同时为导弹防御、技术情报和战场态势感知等其他任务提供支持。2008年3月,旨在为SBIRS GEO(地球同步轨道)卫星提供可靠指挥与控制的飞行软件通过了综合设计评审,并于2008年下半年完成了软件模块的交付,飞行软件的成功开发和交付是进行卫星发射前试验的必要条件。

洛克希德·马丁公司作为SBIRS计划的主承包商,对SBIRS飞行软件进行了改进,使GEO卫星获得更可靠的指挥、数据处理和故障管理等能力。故障管理系统是卫星指挥与数据处理分系统的组成部件之一,当检测到异常时,故障管理系统能够及时做出响应,使卫星进入安全模式,而地面人员则对情况进行分析并采取修正措施。最终交付的第一个软件模块包含25 000行源代码,将用于测试与飞行等效的指挥遥测功能,这是集成与试验GEO-1卫星第二个模块的关键一步,软件将被集成到端对端SBIRS GEO模拟器上,并利用新飞行软件检查与地面的接口。第二个软件模块由35 000行源代码组成,主要对卫星电源、温度、位置进行控制并实施导航。

3)美国空军寻求开发多部雷达数据融合软件

美国空军正在寻求开发一种软件,能够将多部雷达数据融合,从而形成一个无缝图像。2008年7月,根据美国国防部的一份公告,这个项目的主要目标是通过开发MMRP(多模雷达频率处理)技术和系统,使一架飞机能够融合合成孔径雷达、高距离精度雷达、地面动目标指示雷达和空中移动目标雷达以及信号情报的数据,可利用一个界面同时进行数据处理,形成一个实时且准确的雷达图像。

该软件开发期预计为5年,合同金额达380万美元,最终将交付可供试验和评估的系统。该软件开发完成后也将应用于美国空军正在研究的“多情报传感器持久情报、监视和侦察”雷达计划中,这是一个单一的ISR(情报、监视、侦察)系统,包含有多种无线频率传感器。

2.3 其他武器系统软件

除嵌入式软件和C3I软件外,其他武器系统软件也在持续发展中,尤其是顺应近来军事采购向非定制产品发展趋势的COTS(商用现货)产品更是获得世界各国军方的青睐,不但大大节省成本,获得优越的技术支持,也使软件品种进一步丰富。

1)COTS仿真软件使用进一步增长

由于仿真软件标准被普遍接受,因此COTS在仿真市场的应用比其他市场更为普遍,随着仿真软件标准的逐渐成熟,COTS的使用将进一步增长。STAGE Scenario是一个用于开发假想战场环境和武器系统验证的仿真软件,由加拿大Presagis公司开发。这种战场环境包括带地形高度的数字地图、大气环境、海洋环境、运动的或静止的实体(如飞机、舰船、坦克、导弹和地面站);并主要通过战术手段(即侦察、通信、交战、击毁)进行交互作用。2008年1月,意大利阿古斯特·韦斯特兰公司选中该款软件来演示其新型直升机演示机的交互仿真能力,STAGE Scenario为飞行员提供与空中、地面和海上交通工具的交互仿真,有助于阿古斯特·韦斯特兰公司开发界面、程序,并对武器装备的其他系统进行评估。目前,该款仿真软件已广泛应用于武器系统仿真,其用户包括波音、洛克希德·马丁、空中客车、CAE等公司。

2)美国空军基地采用视频编辑软件增强空间图像的可视化效果

2008年1月,美国Autodesk公司宣布,美国范登堡空军基地正使用该公司开发的Autodesk烟雾编辑/修整系统和Autodesk火焰可视化效果系统,来产生高清晰度的空间发射视频。Autodesk烟雾与火焰套件使得范登堡空军基地的可视化信息专家能够收集和操作高速照相机获得的数据,可达到每秒130帧的捕获速度而不会降低图像分辨率。软件使用者能够获得数据,还可根据需求、模糊稳定度、移动要素对图像进行分类,并可注入光谱对作战图像进行编辑和存储,允许无缝工作流程,同时还支持初始与计划测试视频流的现场反馈。这套视频编辑软件产品有助于范登堡空军基地向高清晰度视频的过渡,其视频与可视化图像能够在不到1 h时间内准备就绪,缩短了50%的视频产生时间。

参考文献

[1]曾锐,平丽浩.VITA新标准及其在雷达系统中的应用[J].现代雷达,2008,30(8):20-25.

[2]武风德.军用计算机发展概况与趋势[J].舰船导航,2003(4):13-18.

[3]张小东,丁广.军用计算机加固技术[J].现代电子工程,2008(4):69-71,76.

上一篇:市政铸铁给排水管道下一篇:消防企业安全文化