【摘 要】为了提高我军保障力和战斗力,本文通过研究军用软件维护的现状,提出了软件维护的重要性,并根据实际情况提出了软件维护的具体方法。
【关键词】软件维护;军用软件;保障力
随着社会信息化的迅猛发展,军用装备正在朝着软件密集型装备方向发展,部队使用的武器装备中软件的成分日益增加[1]。随着装备投入、训练使用时间的增加,软件故障已经越来越多地暴露出对装备性能、维护、恢复的制约[2]。软件维护也越来越体现出其重要性,国外对装备中软件保障问题非常重视[3]。美国从20世纪80年代已开始大规模研究软件保障问题,而我国软件保障研究才开始起步[4]。
1 软件维护定义
软件维护,是指软件产品已经交付使用之后,为纠正错误、改进性能或其他属性或使产品适应改变了的环境而进行的修改活动。
按性质不同,一般将软件维护划分为如下四类:
1.1 纠错性维护
用户在使用软件时仍会发现在前期的测试中没有揭露的软件系统中的潜在错误,诊断和改正这些错误的过程称为纠错性维护。
1.2 适应性维护
由于操作系统或编译系统的升级,为了使软件能适应新的环境而引起的程序修改活动。
1.3 完善性维护
在软件的使用过程中,为了满足用户新的需求而增加或扩充软件功能的活动。
1.4 预防性维护
为了提高软件的可维护性和可靠性,为未来的进一步改进打下基础而修改软件的活动。
2 软件维护的国内现状
随着武器装备复杂性的增长,出现了使用和保障费用高,战备完好性差等问题。软件维护逐渐引起各国军方和工业界的普遍注意,不同程度地开展了软件维护、保障性分析及设计,国内目前处于起步阶段。
2.1 可维护性差
在装备的研制过程中,国内企业的软件开发大都采用“手工作坊”式的开发方式,由软件开发设计人员自行设计、自行编码、自行测试、自行包维护,甚至完全由一个人完成。
近几年刚刚有所改观。山于无法对软件开发过程进行有效的监督与管理,软件的可理解性、可测试性、可修改性差,使得软件出现故障后只能由开发者自行维护,其它人员难以介入。软件人员“跳槽”后对软件维护影响极大,甚至可以使软件维护工作处于瘫痪状态(软件无人能读懂,无人能维护)。
在软件需要进行维护的时候,才发现设计的时候不重视可维护性,存在软件代码无注释、软件文档与代码小符、开发时用的开发工具无处查找、某些模块无源码等问题。
2.2 可靠性低
计算机软件已经成为武器装备中最重要的一部分[5]。但据目前统计,软件可靠性整整比硬件低一个数量级。有的系统故障统计结果是软件故障占系统故障的60%~70%。软件尽管与硬件小同,在使用过程中没有磨损,没有消耗,但软件是有生命的,在使用过程中更需要维护,需要保障。
2.3 软件维护的力度小够
鉴于软件的自身特点,任何软件都难以做得尽善尽美。据美军统计:软件即使在装备研制过程中经过了严格的工程化及测试后仍会有多达15%的缺陷遗留在软件之中未被暴露。
美军1997年的软件保障费用高达200亿美元,每行代码的年维护费用为110美元,为装备正常使用提供了保证。
目前国内关于软件维护经费如何处理处于一个非常时期,军品审定价时完全不考虑软件经费,软件维护经费更无从谈起。而现在软件使用阶段的保障经费已远远超过了软件的购置经费,并非一笔可有可无的经费。只有软件研制经费,没有软件维护经费,是严重的比例失调。缺乏经费己成为严重制约软件保障的因素,这对于开展软件维护工作十分不利。
3 软件维护的重要性
软件维护对软件可靠性产生的影响,比硬件维护对硬件可靠性产生的影响要大。主要表现在两个方面,一是通过正确的纠错性维护可以使软件可靠性不断地提高,失效率不断下降。而硬件进行维护后,可靠性一般不会提高(多为恢复到某一定值),失效率也不会下降。另一方面,软件维护对软件全系统产生的关联影响较大,而硬件维护对全系统产生的关联影响相对较小。可见软件维护性对于软件而言,是一个比硬件维护性更重要的属性,而且软件维护性与软件可靠性相一致。
软件与硬件不同,在使用过程中没有磨损、没有消耗。但软件是有生命的,在使用过程中是需要维护、需要保障的。软件维护是软件生命周期的最后一个阶段,处于系统投入生产性运行以后的时期。软件维护是软件生命周期中耗费最多,延续时间最长的活动。通常大型软件的维护成本是开发成本的4倍左右,软件开发组织中60%以上的人力用于软件维护。要想延长软件生命,充分发挥软件的作用,必须搞好软件维护。例如,在沙漠风暴作战行动中,E-3空中预警飞机作为战场保障的中介部分,起着跟踪所有战场空中目标并指挥拦截的作用,被誉为神眼。而在当时战场上电磁信号太多造成拥塞,以致E-3的能力大打折扣,不得不对E-3雷达中的许多软件进行修改。为此,专门派出软件保障组直接进行软件维修,使E-3预警机的雷达软件在96小时内得到修正后完成飞行检测并投入使用。
4 如何做好软件维护
4.1 软件维护准备工作
当接到软件维护任务时,第一步需要做的准备工作为熟悉所维护的软件功能、软件架构体系。熟悉所维护软件功能的主要方法是阅读该软件的设计文档或软件使用维护说明书[6]。
熟悉软件功能的同时,我们还需要熟悉软件的架构体系。熟悉软件架构体系就等于站在软件维护的最高点。在面向对象分析与设计技术流行的今天,没有理解软件的架构体系,要去维护软件是很困难的。
4.2 如何收集并解决软件问题
装备定型后,技术状态固,软件的'技术状态也同时固化。当出现软件质量问题时,大部分承制单位都以能不改就不改,必须改再说的思想去解决软件质量问题,原因是因为一旦软件出现问题,大部分都需要修改源代码,哪怕几个字符的修改都需要重新编译并生成新的版本,导致了软件技术状态的变更。 基于这种情况,如何既保证技术状态的管理又能有效解决部队的软件问题是值得我们深思的。我个人认为应从以下几方面进行:
4.2.1 承制单位应建立软件维护部门
软件维护部门隶属于售后部门,与部队建立一种简单而有效的机制。对部队反映的软件问题予以登记,“软件维护登记表”内容包括:编号,日期,反映单位,反映人,联系电话,问题描述,记录员,软件维护人员,单位领导,软件更改单号等内容。
4.2.2 软件修改保持原有代码的编码规范
为了保证编码规范的统一性,必须保持所维护的软件的编码规范。如果整个系统中没有统一的编码规范,那至少在模块的层次上的编码规范应该是统一的,因为一般情况下都是一个人负责开发一个模块。
4.2.3 软件修改后进行测试
为确保对软件的修改并没有破坏它的核心功能,好的做法用一个测试用例来重新测试,这样就可以知道当你修改其他部分时有没有再引入bug。有时,可能只是对代码做了一点修改,并要把它提交到源代码控制系统中,但是运行整个的回归测试却会花费很长的时间。这种情况下,我们可以取出回归测试集的一个子集进行一次“冒烟测试”,即只覆盖了回归测试集中的一部分测试用例的测试。每次修改后都应进行“冒烟测试”。
4.2.4 保留修改记录
如何清楚记录软件维护过程,正确统计所做的维护工作的工作量并做好后续的相关文档更新是非常重要的。软件维护人员到现场维护完成后,应填写“软件维护记录单”,其包括
软件维护类别:纠错性维护,适应性维护,完善性维护,预防性维护;
难度系数:范围0.1-1;
维护日期:开始到结束的日期;
完成工时:最小单位为1小时;
完成人:完成该软件维护的程序员;
反映单位:具体的单位名称和地址;
问题描述:对反映问题的具体描述;
解决措施:描述解决问题的步骤和方法,尽量描述到需要修改系统多层架构中哪一层的哪个方法;
软件更改单号:若存在软件更改的情况,则填写对应的软件更改的编号;
程序员建议:该解决方案有什么要注意或不能满足的地方,现有系统的不合理性等;
影响的设计文档:由程序员填写。当对设计文档资料有影响时填写,须填写对应的设计文档资料的名称,具体内容需另填设计(工艺)更改单。
解决程度:已解决,未完全解决,未解决。对于未完全解决,未解决的情况应说明哪些问题还没有解决,此处应有反映单位的签字和盖章;
备注:其他未尽事宜。
4.3 软件更改上报
软件维护所涉及的软件更改,应每年向上级机关上报,上级机关应对软件更改是否执行予以回复。
5 结束语
随着软件密集型装备的增多,软件的质量问题已成影响装备质量的重要因素,软件维护与保障方案的顺利实施离不开领导的深入重视,离不开各部门、各行业的合作,离不开承制单位内部的管理。只有我们充分认识其独特之处,尽早重视和规划,才能不断提高我军装备整体的保障水平和战斗力。
【参考文献】
[1]刘栋,刘向宏,刘媛,蹇强,孟庆鑫.对大型复杂军用软件维护工作难点及对策的研究[J].标准科学,2015,2:19-24.
[2]常云丽,邬欣明,郑威.军用软件需求分析研究[J].火力与指挥控制,2013,1:126-128.
[3]高明贺.浅析计算机软件维护[J].计算机光盘软件与应用,2012,12:21-22.
[4]彭汉国,张渊博,雷波.浅析软件维护[J].软件工程师,2014,17(4):61-62.
[5]石柱.军用软件能力成熟度模型及应用[M].北京:中国标准出版社,2003.
[6]徐勇.军用软件管理中构件化技术应用研究[J].计算机与数字工程,2013,4,587-590.
【军用软件维护方法探析论文】相关文章:
本文来源:https://www.010zaixian.com/shiyongwen/2093394.htm