张名明 凌旺 闵啸
(中国船舶重工集团公司第七二三研究所 江苏省扬州市 225011)
软件生存周期内各个阶段活动的产物经审批后,可以称之为软件配置项。众所周知,软件拥有不同的支撑硬件、版本。按照一般思路,在多各方面选取“最优”性能,将之组合为一个整体,即可实现“强强联手”。但实际上,不同的软件需要进行配置,将契合度最高的项目组织到一起,方可产生“1+1>2”的效果。特别是运用于军用软件时,需要建立完善的软件配置管理方案。
作为军队信息系统的重要组成部分,军用软件已经成为提升单兵能力,在关键时刻助力战士完成各种任务不可或缺的重要装备。比如在2008年汶川地震时,震中地区搭载GPS 卫星导航系统的所有通信设备连续70 多个小时内无法向外界传达出任何信息,导致抗震救灾总指挥部及人民群众“干着急”;直到解放军派遣的突击深入小组携带载有北斗卫星导航系统的、完全由我国自主研发的数字通信设备赶赴震中后,与外界的联系方才恢复。由此可见,在通常情况下,军用信息设备及软件的安全性能必然超过普通的民用或一般性质的商用软件。除此之外,保密性、稳定性、续航能力,共同成为军用软件及有关设备的核心诉求。如军队使用的具有通信功能的设备系统,需要完全与大众消费品分割开来,各项数据的存储及专属分属不同服务器,且由军队及国家安全部门重点掌握,不允许任何其他个人或组织接触。此外,军队战士野外拉练,或是在极端危险的区域执行任务时,所用软件的稳定性必须得到保证。如上文提到的北斗卫星导航系统,在地面精度显示、标高参数等方面,均已超越了GPS,当解放军战士深入目标地域时,软件系统不仅能够实时显示区域位置(抵抗多种信号干扰或屏蔽)及周边地区的实际情况,还能保证与远处指挥控制部的联系。总体而言,军用软件需要具备极高的可靠性、安全性、抗干扰性。
为了实现上述功能,军用软件设计在不同阶段,均对配置管理提出了相应的要求。所谓配置管理,核心内容包含:第一,与合同、过程、计划、产品有关的一切文档与资料需要实时匹配,不可出现整体性的疏漏;第二,软件源代码、目标代码、可执行代码之间需要符合既定要求,并保持较高的“契合度”,不可擅自更改或出现“无法配对”的问题;第三,包含软件工具、库内可重用软件(在软件开发期间,由于环境、功能等要求经常发生变化,故对较为成熟的软件系统进行局部修改,或是对部分功能模块进行调整甚至是重组,在保证整体稳定性的情况下,使软件整体适应新的要求。如某计算软件应用于新的环境时,原先所有的所有函数已经无法完成相应的功能,故通过增设函数库调用的方式,在不改变系统程序的前提下,完成“打补丁”操作)、外购软件、其他方式获得的软件(设备接入其他系统后,接受的来自第三方的特定软件)在内的软件工具均属于配置管理的范畴之内。基于此,军用软件在开发设计的全过程内,需要围绕上述三大类内容,深入理解有关配置管理的一系列要求[1]。
软件配置管理运用于军用软件使,不同需求之间对配置管理的要求不尽相同,有关人员应该综合各方意见,统筹兼顾,予以解决。比如软件系统的的整体需求,强调分析、研究、确定系统框架的构成,目的在于明确多个系统之间分工与合作的形式,需要提供软件研发的任务书以及开发计划。此项需求的重点在于,必须详细评审任务书,对其中提出的技术指标要求、可靠性、设备及软件整体质量要求、研发时间等进行界定。比如某军用(防化部队)辐射指标测定软件,除了具备针对多种辐射源准确测评的数据库及测量机制意外,还需具备抵抗环境侵蚀、在不同干扰下依然能够稳定显示最终测评结果的功能。若要实现上述功能,研发人员需要从多个角度着手开展相关工作。难点在于,当某一数据库中的信息需要更新时,调用程序或配套的功能接口,在实际执行有关指令时,是否会出现“不兼容”、“不匹配”等问题。只有将解决软件配置管理方面的问题一一解决,才能促使软件需求与系统需求之间的“统一”。
本文所述的“软件实现”范围较广,包含概要设计(含详细说明)以及主程序设计。概要设计是指在综合考虑不同配置组合的情况下,基于特定的规格说明,完成对软件框架的设计。此环节的目的在于确立软件整体运行结构,并对主程序的诸多功能加以说明。具体到某一项特定功能时,程序单元内部的细节(如算法和数据结构)必须保证精确程度。比如有关参数基于何种关系完成传递,程序单元的输入、输出过程是否存在制约条件等。上述过程必须具备详细的说明,且在理想状态下,针对不同单元的测试计划也应具备。
软件实现阶段对于配置管理的要求如下:相比之下,含有特定功能的软件程序设计环节稍显简单(在不同配置、版本稳定的情况下,错误发生率较低),如果其他程序框架完成更新或升级,则与之相匹配的功能算法很可能即时失效。因此,在软件设计实现阶段,需要按照规定完成编码和调试,并依照既定计划进行全面测试,保证程序单元与上述设计说明的统一。
在理想状态下,军用软件的系统测试及实际运用过程,需要根据不同的软件配置,在每次具体应用前,利用很短的时间完成相关的检验,并解决程序运行中出现的错误。比如军用地形勘探软件,如果搭载了不同的CNSS 和GIS 系统,是否在精度、实时信息传递等功能方面产生了较大的不同,需要自行确认。此项工作完成的重要标志在于,软件需求规格中列出的有关功能、性能、结构、约束、限制等特性,必须全部符合,任何一项未能达标,均会影响软件性能;原则上,检测过程中发现的所有缺陷,不可对应用过程造成任何影响,且由于程序的自我修复功能,在产生影响前(极短时间内)就已经被消除,并符合程序回归测试的“良好”以上评级[2]。
军用软件则设计阶段对软件配置管理提出的所有要求均得到满足之后,在具体应用时,也需要重点控制。
严格来说,军用软件属于应用系统的一部分,在初始阶段,对功能性、安全性、保密性、稳定性的需求与大众民用商品并无二致(在军队建设方向未曾确定的情况下,无法对军用软件的各项需求等级定性)。在此种背景下,军用软件的更迭速度极其频繁,使得功能各异的软件技术状态大受影响。但随着军队建设信息化成为常规性的认识,建立全新的自动化且完善的软件配置管理体系,对于全面控制软件技术状态几乎产生了具有决定性的意义。因此,军用软件开发及使用过程,必须与民用以及一般性质的商用软件加以区分(服务器绝不能相同、管理者制度必须完善)。首先,通过自动化配置管理系统,根据军用软件使用者的实际要求,自动配置对应的管理工具,并完成安装;其次,通过系统审核后,对使用者(或接入的设备)赋予相应的权限,保证软件开发库、产品库、受控库的正常流转;最后,完成特定但具体的自动化软件配置管理平台的建设,创造出良好的配置管理环境。
在现代程序功能控制理念下,软件配置管理必须具备优化控制标识,组织修改“错乱”的程序代码,自助降低错误出现几率等特点,从而为军用软件使用者提供方便。在传统的设计思路中,通过变更标识与控制方式,避免应用程序出现错乱。此种方法“治标不治本”,在短时间内确实能够发挥一定的作用,但随着时间的累积、配套功能软件的升级,“变更”必须进行。因此,对变更和有关的标识进行优化控制,“将工作做在前面”,能够极大地提升软件配置及运行效率,防止给用户造成较大的麻烦。除此之外,优化控制标识的另一个目的在于,防止版本的更迭引发程序错乱。此种情况并非只出现在军用软件中,对电脑较为熟悉的人都有过如下经历:完成软件升级后,从理论上来看,更新的版本应该具备更强的性能;但实质上,由于程序乱码的出现,可能导致“碎片”的增多,反而使软件性能下降,进而影响硬件设备。基于此,优化控制标识,使软件配置过程更加科学,能够有效避免版本升级造成的不良体验[3]。
软件配置管理的核心问题在于对配置进行审核,主要包含程序功能审核以及物理审核。一般来说,常规审核是指对配置项是否产生、是否具备该过程中解决变更的能力进行审核。比如优化极限以及配置管理活动。在此过程中,如果发现问题,完善的配置管理审核机制需要对有关内容及时记录,经过追踪后,找到解决问题的方法。此项功能的重点在于,将基线技术文档作为依据,对版本更新与否加以审核,从而使各项软件配置保持完整性。
军用软件不同于民用与一般性质的商用软件,对于性能、保密水平的要求性极高。基于此,只有建立完善的软件配置管理机制,才能全面保证军用软件的质量。在此种前提下,武器、设备的质量以及训练、作战方案的制定将会得到强有力的支撑,面对多种情况时,军队指挥系统和深入目标区域的作战人员才能抵抗多种干扰,进而成功完成任务,并在日积月累之下,提升军队的作战水平。