1.2 军用软件分类和特点
1.2.1 军用软件定义
20世纪40年代,美国研制出了世界上第一台计算机,并编制了用于研制原子弹和计算导弹弹道的军用软件。至今,军用软件的发展已近 80 年的历程,在军事领域的各个方面得到深入广泛的应用,成为各种高新武器装备不可缺少的重要组成部分,在某些领域,软件本身已成为一类重要的装备。军用软件的发展及应用水平,已经成为军队信息化程度的主要标志,从某种角度上甚至可以说代表着一个国家的军事实力。因此,世界各主要国家和地区都把军用软件作为推进军队信息化的重要途径。
军用软件是武器装备和指挥系统的重要组成部分,作为多元战场信息的“管理者”,军用软件质量的高低已成为衡量战斗力最重要的性能指标之一,在信息化战争中的地位也越来越显著。随着我军信息化建设进程步伐的加快,越来越多的军用软件陆续交付部队,有力地支撑了部队的指挥控制和业务处理等各种应用。军队信息化建设的主要途径是对现有主战武器装备进行信息技术改进、研制新型信息化武器装备、发展先进的军用综合信息系统等。
军用软件与其他软件相比,具有明显的特殊性,通常是指用于军事目的或军事系统的特殊专用软件,主要包括飞机、舰船、坦克、制导导弹、空间发射等所需要的武器系统软件和指挥控制、信息处理、情报获取所需要的指挥系统软件。
1.2.2 军用软件的作用和地位
随着军队信息化程度的不断提高,军用软件已经渗透军事应用的各个方面,已成为武器装备体系中不可或缺的组成部分。现代武器系统之所以被称为智能武器,就是因为软件为其提供了大脑。软件通过专用硬件的运行,可以完成许多功能,如作战飞机的每次使用基本上都依赖于软件,包括战略和战术行动、监视、探测、评估和预警等。在不少情况下,光有硬件是不行的,软件的功能甚至要超出其他部件。软件的重要性已在最近的几次高技术局部战争中得到证明,主要体现在如下几个方面:
(1)软件是高新武器装备的灵魂。在高新武器装备中由软件实现的功能越来越多,有些装备甚至大大超过了硬件;而且软件不但能执行以前由硬件执行的许多功能,而且还能执行光靠硬件几乎无法执行的功能。例如,为减少雷达截面积,B-2轰炸机没有垂直控制面,飞机的垂直稳定度全靠软件来控制,从而满足了B-2轰炸机隐身的要求。软件的应用不仅极大地提高了武器装备系统原有的许多性能,而且已成为整个军事系统的控制中枢和威力倍增器。
(2)软件是构筑信息化装备体系的关键。现代战争是体系和体系的对抗,单一武器、单一系统的决胜作用已经逐渐弱化,而由大量嵌入芯片和软件的各种武器装备形成的信息化装备体系已成为战争制胜的基础。构筑信息化装备体系绝不是各种装备的简单堆积,也不只是各种武器装备和系统之间的物理连通,而是通过软件的控制,使各种作战信息按照作战要求有序流动,满足体系内各部分之间互连互通互操作的要求,实现不同武器系统的功能互补、协同行动和互相支援。
(3)软件可有效提升武器装备的整体作战效能。由于软件能极大地提高武器系统的信息获取、传输、处理、存储、管理、分发及其数字化、智能化、网络化水平,利用软件技术对已有武器装备进行改造,已成为部分武器装备升级换代所依靠的主要模式之一。利用软件技术改造不仅能大大提高武器装备作战效能,而且还具有成本小、周期短和效果好的优点。例如,伊拉克战争前夕,美国海军 F-14 战斗机通过软件升级的方式具备了投放精确制导武器的能力,使改造周期从以往的几个月甚至几年,缩短至3个星期;另外美军的全球指挥控制系统近几次的改进也主要是通过软件升级实现的。
(4)软件是信息战中攻防对抗装备发展的焦点。信息战已成为现代战争的主要模式。一方面,作为一类特殊软件——计算机病毒成为信息战进攻的重要手段。计算机病毒的作用主要是通过破坏敌方信息系统和计算机网络中的软件,达到使其瘫痪的目的。目前,一些国家已把计算机病毒作为信息战的重要手段,并在实战中进行演练。海湾战争中,美军利用开发的计算机病毒“预埋”技术,在芯片中置入计算机病毒,给伊方造成了重大损失。另一方面,信息安全软件、网络防护软件成为信息战防御的关键工具。为对抗计算机病毒和其他针对信息系统及网络中的软件攻击,保证其正常运行,各国都在开发以软件为主要形式的对抗措施。可以预见,随着信息系统及网络的广泛应用,以争夺信息优势为目标的信息对抗日趋激烈,军用软件将成为敌我双方信息攻防对抗装备的焦点。
1.2.3 军用软件分类
军用软件通常是指用于军事目的或军事系统的特殊软件,一般分为两大类。一类是武器系统软件,主要包括:为武器系统专门设计或使用的嵌入式软件,指挥、控制和通信软件,对武器系统及其完成任务进行保障的软件,如任务规划软件、战斗管理软件、演习分析软件、飞行计划软件、应用测试软件、程序管理软件、模拟器软件等。另一类是非武器系统软件,主要是指执行与武器系统无关的系统使用和保障功能的软件,如科学计算、人员管理、资源控制、地图管理、设备维修、仿真、人工智能软件等。
针对不同类型的工程对象,对其进行开发和维护有不同的要求和处理方法,因此需要对软件的类型进行必要的划分。军用软件其内涵和外延均比较广,按照不同的目的,可以有多种分类方法。
(1)按功能划分。军用软件按功能划分,可以分为系统软件、支撑软件和应用软件。
系统软件能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作。例如,军用操作系统、军用数据库管理系统、设备驱动程序及通信处理程序等。系统软件在运行时需要频繁地与硬件交往,以提供有效的用户服务,共享资源的共享,其间伴随着复杂的进程管理和复杂的数据结构处理。系统软件是计算机系统必不可少的一个组成部分。
支撑软件是协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发进程的工具。
应用软件是在特定领域内开发,为特定目的服务的一类软件。军事应用软件有很多,如军事信息管理软件、装备保障软件、武器控制软件、作战管理软件、训练管理软件等。
(2)按规模划分。按开发军用软件所需的人力、时间及完成的源程序行数,可以划分为小型、中型、大型、超大型4种不同规模的软件,如表1.2所示。
表1.2 软件规模的分类
规模大、时间长且有很多人参加的软件项目,其开发工作必须要有软件工程知识的指导。而规模小、时间短、参加人员少的软件项目也需要遵循一定的开发流程和规范,其基本原则是相同的,只是对软件工程技术依赖的程度不同而已。
(3)按工作方式划分。按工作方式的不同,可以将软件分为实时处理软件、分时软件、交互式软件和批处理软件。
实时处理软件是指在事件或数据产生时,立即予以处理,并及时反馈信号,需要监测和控制过程的软件。该类软件主要包括数据采集、分析、输出3 个部分,其处理时间是被严格限定的,如果在任何时间超出了这一限制,都将造成事故。军用软件尤其是武器系统软件通常对工作时效性要求较高。
分时软件允许多个联机用户同时使用计算机。系统把处理机时间轮流分配给各联机用户,使各用户都感到只有自己在使用计算机的软件。分时软件可以使用户充分利用设备资源,提高资源利用率。
交互式软件是能实现人机通信的软件。这类软件接收用户给出的信息,但在时间上没有严格的限定。这种工作方式给予用户很大的灵活性,主要适用于人机交互较多的应用。
批处理软件是把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。通常,批处理软件以后台形式工作,不需要用户干预。
(4)按服务对象范围划分。根据服务对象范围,可以将软件分为项目软件和产品软件。
项目软件也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软件,如军用防空指挥系统、卫星控制系统。项目软件有时带有试验研究性质,项目完成后根据需要可能在此基础上做进一步开发。
产品软件是由软件开发机构开发出来后直接提供给市场,或是为千百个用户服务的软件,如文字处理软件、文本处理软件、财务处理软件、人事管理软件等。由于产品软件要参与市场竞争,其功能、使用性能及培训和售后服务显得尤为重要。
(5)按失效影响划分。根据软件失效后产生的影响,可将军用软件分为一般软件和关键软件。
一般软件在工作中出现故障,造成软件失效,可能给整个系统带来的影响不大。
关键软件一旦失效,可能酿成灾难性后果,如武器控制、指挥系统、作战管理、航空航天等软件。关键软件对可靠性等质量要求高,常与完成重要功能的大系统的处理部件相交联,失效后对军事人员或武器装备安全、战斗胜负、军事秘密等造成影响。
1.2.4 军用软件特点
信息化武器装备或系统中,通常软件较为密集,其作战效能的发挥对软件依赖越来越强。一旦军用软件出现故障或缺陷,轻则造成巨大经济损失,重则导致人员伤亡。
软件本身的复杂性、抽象性和易变性,使软件难以研制,质量难以保证,而军用软件的特殊应用又使其开发和质量保证难度增大,主要体现在以下几个方面:
(1)军用软件要面临复杂、不确定和恶劣的军事应用环境,要求军用软件必须具有抗毁和容错能力,因此,军用软件应具有高可靠性、高安全性和高生存性。
(2)在信息对抗环境下要求军用软件具有较高的安全防护能力,作战使命任务对军用软件的信息传输处理速度、对外部事件的快速响应提出了更高的要求,因此,军用软件应具有高保密性和高实时性要求。
(3)军用软件需求变化快且人机界面要求高,测试和验证过程较为复杂,使用和维护时间长,军用软件开发还要纳入武器装备研制过程,这决定了军用软件开发方法要与硬件研制中采用的自下而上的方法相一致。
(4)军用软件规模巨大、结构复杂,如一架现代战斗机所包含的软件已经超过2500万行源代码,一艘现代化战舰或潜水艇所包含的软件有500万行源代码,软件规模越大就越复杂,这不仅带来了技术问题,而且为软件的管理带来了很大的困难。
(5)不少军用软件是嵌入式的,受到严格的硬件和软件条件的约束,被硬件及软件体系结构、操作系统特性、应用需求和编程语言的变化所制约。
(6)现代化战争是一体化的联合作战,需要进行数据交换、信息共享、应用协同,这些均对军用软件提出了高互操作性要求。
上述特点对军用软件研制管理的方法和技术都有特殊要求,同时还要求开发人员应具备相关应用领域知识,另外,对开发设施和工具、安全保密方面都有较高的要求。