王 俊,刘 乔,高方君
(上海机电工程研究所,上海 201109)
随着防空战术型号研制类型的增加,在地空导弹武器系统战术软件设计方面,许多研制单位已积累了一定的经验。现阶段,随着战术型号研制要求的变化,地空导弹武器系统战术型号软件的研制面临着一些新的问题[1]。
1)随着战术型号研制周期的缩短,战术软件的研制周期也要求大大缩短;
2)随着研制周期的缩短,在研制过程中对战术软件不断提出新的要求,战术软件要不断进行完善;
3)软件工程化实施的深入,软件测试、软件文档及原代码的更改提出了更严格的要求;
4)用户对战术软件的要求,从最简单的导弹发射功能实现到操控界面友好,到能够适应战场态势的各种变化;
5)随着研制人员年龄的年轻化,虽然他们能够很快地接受新的开发工具和开发方法,但相对缺乏系统设计的经验。
面对这些新的问题,如何才能更快更好地完成战术软件的研制任务,对软件研制人员,特别是软件设计人员提出了更高的要求。本文从地空导弹武器系统战术软件的顶层设计角度出发,在前人工作的基础上,给出了一种地空导弹武器系统战术软件设计的顶层分析方法,试图总结系统软件的顶层设计中遇到的一般性问题,希望能够在系统设计的初期,对系统有一个全面的分析,尽量避免疏漏的环节,为软件的实现与完善打下良好的基础。
地空导弹武器系统战术软件,虽然不同型号各有其特点,但是总的来说,各软件间有很多共性的内容,主要表现在以下几个方面。
1)工作模式多样性
地空导弹武器系统战术软件,往往有多种工作模式。从控制的角度,一般分为自主控制、非自主控制与混合控制工作;在单一控制模式下也往往分为作战、训练和维护等多种工作模式。
2)处理对象的属性复杂
地空导弹武器系统软件处理的对象往往是各端口设备以及空中目标等。对于端口设备根据不同的控制模式和工作模式,往往对应着多种状态;若端口设备管理很多下级设备,往往还要对这些下级设备状态属性进行管理。
对于空中目标,首先,由于现在的地面作战系统一般配置多个传感器,因此,需要对多个传感器的目标进行管理;其次,需要对不同端口目标的控制指令及目标状态信息等一系列的信息进行管理[2]。
3)输入输出端口多
地空导弹武器系统软件对外一般起着承上启下的作用,对上对下的端口往往有多个,特别随着系统的扁平化发展,对系统软件的多端口处理能力提出了越来越高的要求。
系统内部,随着系统复杂程度的增加,为了更加有效合理地发挥作战指挥员的干预功能,往往在一个系统节点,分解成多个软件的配置项,由多个配置项协同完成一个节点任务,因此,系统软件内部各配置项间也要进行实时交互。
4)周期性处理,输入不同步,实时显示端口及目标状态
由于地空导弹武器系统传感器都周期性采集数据进行更新,因此,一般地空导弹武器系统软件都采用周期性实时处理的方式。其次,各输入端口的输出周期一般不一致,且各输入端口间很难实现时钟同步,因此,一般采取定周期处理的方式。另外,为了提高各节点操作手的快速反应和决策能力,系统软件各节点需实时显示与其相关的各上级及下级节点的状态,以及当前目标的控制指令和状态。
5)异常及故障处理多
由于地空导弹武器系统软件交互端口和处理目标状态的多样性,因此,需应对的异常及故障处理的状态比较多。比如某交互节点的通信链路异常,某交互节点故障,节点通信链路及状态正常的情况下不能给出及时的控制响应等,所有这些问题都应在软件设计的初期予以充分的考虑,针对不同的异常逻辑给出合理的应对方法。
以上各问题,均是地空导弹武器系统应对的共性问题,虽然,我们在处理这些问题上已积累了很多宝贵的经验,但面对这些问题,如何分析系统:从何入手,怎样分析它们之间的关联性,缺少一种一般性系统分析方法的总结,导致了在不同的型号任务中,反复地面对这些问题,导致人力物力资源的浪费,以及项目研制计划的拖延。
系统环境分析的目的是确定系统的运行方式和通信的校验形式[3]。
系统环境是系统软件运行的载体,分为硬件环境和软件环境。硬件环境包括系统运行的硬件平台和与系统交互的硬件接口;软件环境包括操作系统、硬件接口的驱动程序、信息交互所遵循的底层协议,以及与相关交互节点的交互内容和频次。
根据系统需求,通过对系统环境的分析,确定系统软件的运行方式是周期性处理还是触发式处理。对于周期性处理,需确定系统的处理周期和周期内处理时序、系统的显示更新周期以及系统与其它节点的交互方式;对于触发式处理,需确定触发事件和事件触发后的处理时序。
根据信息交互所遵循的底层协议,交互频率及系统需求,确定各通信端口传输内容的校验形式。
处理的本质是在一定的约束条件下,完成一定的任务。从任务的属性出发确定系统处理的层次。任务的属性主要包括任务提出方、任务类型、处理对象、对象处理逻辑、生成结果[4],如图1所示。
1)任务提出方
任务提出方的确认是系统软件处理的最高层次的内容,在地面作战系统软件中对应的是系统逻辑的控制方,一般对应软件执行流程的自主控制、非自主控制和混合控制。根据系统需求,分析给出系统的控制方式:控制方式1、控制方式2、…、控制方式i,并分析总结各种控制方式的转换条件。
2)任务类型
任务类型的确认是系统软件处理的第二层次的内容,在地面作战系统软件中对应的是系统任务的执行类型,一般对应软件执行流程的作战、系统训练、本站训练、系统维护和本站维护。根据系统需求,分析给出系统的任务类型:任务类型1、任务类型2、…、任务类型i;并分析总结各种任务类型的转换条件。
3)处理对象
处理对象的确认是系统处理的第三层次的内容,一般对应软件执行流程中的目标、管理的硬件设备及进行交互的各系统节点,以及系统节点管理的设备,时间信息、显示信息、异常信息等。根据系统需求,分析给出系统的处理对象:对象1、对象2、…、对象i,并分析出各对象的状态属性和控制属性,对各状态属性间及控制属性间的转换条件进行分析。
图1 任务处理过程图
4)对象处理逻辑
对象的处理逻辑的确认是系统处理的第四层次的内容,一般对应软件执行流程中对象进行状态或控制属性转换时,其它对象对它的约束。根据系统需求,分析给出处理对象间的逻辑约束:对象处理逻辑1、对象处理逻辑2、…、对象处理逻辑i,并分析出各对象状态属性间及控制属性间转换时,对象间的处理逻辑。
5)生成结果
生成结果的确认是系统处理的第五层次的内容,一般对应软件执行流程中的显示信息及各端口的输出信息等。根据系统需求,分析给出系统的生成结果:生成结果1,生成结果2、…、生成结果i,并对各生成结果间的转换条件进行分析。
经过以上的分析,明确了系统的控制方式、任务类型、处理对象、对象处理逻辑及生成结果的所有状态,并明确了其状态转移的条件。
从系统处理层次的分析可以看出,地空导弹武器系统软件层次非常复杂,在不同层次上处理内容的交织性强,因此必须对系统层次处理逻辑进行梳理。逻辑梳理的方法,首先是生成原始逻辑网,如图2所示,从系统的第一层次逐步扩展到第五层次。
在进行早期的系统设计分析时,应对纵向层次间功能的交织性给出充分的分析和总结[5],为了避免分析时可能疏漏环节,采用先生成原始逻辑网,即开始并不关心不同节点间是否有关,而是先赋予它们关系,在后续的设计中必须给出充分的理由,才能够明确该关系是否成立,或目前不能确定。
图2 系统原始逻辑网
在很多情况下,很多设计师并非采用逻辑网的方法,而是从顶层的某个分支按树状直接向下一层次展开,最后生成结果。这种方法虽然相对简单、直接,但存在两个缺点[6]。
1)容易遗漏分支
在系统设计的初期,系统软件设计人员,对系统处理的内容还没有一个全面的了解,采用自顶向下的分析方法,梳理出的系统过程,往往是系统处理的主干,对系统的故障及异常处理特别容易遗漏。这样容易导致两种情况的发生:1)软件实现后,在后续的试验中,才发现这样的问题,将耗费几倍甚至几十倍的人力物力才能解决,并且拖延了研制周期;2)到产品交付也不一定发现这样的问题,这些问题将隐藏在交付的所有产品中。
2)节点处理的重用性、扩展性不强
当同一个处理对象,被不同的上层调用时,按自顶向下的分析方法,可能设计出多种接口,不利于重用性扩展性设计,也不利于后期的维护。
对系统处理进行层次分析时,先生成原始的逻辑网,再进行后续的分析,将有效克服以上两个缺点。
接下来就要将逻辑网进行归并。逻辑网归并的目的有三个:删除多余分支、归并重用分支、生成相关矩阵。
1)删除多余分支
在原始逻辑网连接的基础上,根据系统需求,按照从顶层开始,从左往右梳理每一层与上下两层间的关系的方法进行梳理;按照删除毫不相关的连接,保留当前不能确定关系连接(避免过多删除分支)和已明确关系连接的原则,完成对原始逻辑网中所有节点之间的关系梳理。通过梳理,最终原始逻辑网中保留当前不能确定关系连接和已明确关系连接,分别采用虚线连接和实线连接。
2)归并重用分支
首先,对实线连接,确定它们之间的输入输出;对于虚线连接,给出它们间可能存在的输入输出。其次,对于被多个上层调用的同一个节点,梳理其输入输出关系,给出一个统一的接口。
3)生成逻辑网及相关矩阵
经过以上分析,生成了逻辑网。为了便于对逻辑网中节点间关联性管理,对存在关联的各节点,生成相关矩阵。生成的相关矩阵表,如表1所示(画√的行与列存在相关性),通过表1的每一列可以看到第一层次的节点与本层及其它层节点的相关性。同时生成的表1还为将来软件文档的编写、软件的实现及后期的维护提供了一个相关性查询依据。对于不同层次的节点,都可以列出同样的表。
表1 层次节点纵向横向相关矩阵
经过对地空导弹武器系统战术软件的逐层分析法的分析,生成如下结果:系统运行方式及对外接口传输的校验方式,系统层次图及层内节点转换条件,系统逻辑网、逻辑网的纵向关联接口及逻辑网相关矩阵。以上结果的生成,完成了对一个系统软件的顶层的初步分析,为后续软件文档的编写及软件实现和维护,打下坚实的基础。
本文分析了地空导弹武器系统战术软件的共性特点,并针对传统系统战术软件分析方法的不足,提出了一种新的战术软件系统设计分析方法,希望能为战术软件系统设计人员将来的系统软件设计中,如何入手分析系统,在文档编写之前,对系统软件的哪些内容进行分析,如何分析等工作的开展带来帮助。
[1] 李超,谢坤武.软件需求分析方法研究进展[J].湖北民族学院学报(自然科学版),2013(2):204-211.
[2] 谢春燕,李为民.武器装备软件的可靠性分析综述[J].现代防御技术,2004(3):17-21.
[3] 刘永灿,刘世江.分析软件工程化要求促进软件工程化实施[J].航天标准化,2006(3):33-35.
[4] 张耀鸿,朱德成.基于仿真的指挥自动化系统开发方法研究[J].系统仿真学报,2009(10):66-70.
[5] 陈志才.面空导弹武器系统软件可靠性的评估方法[J].现代防御技术,1997(1):21-26.
[6] 王竹云.软件工程概要设计的研究[A].Proceedings of 2012 International Conference on Electronic Information and Electrical Engineering(PartⅡ)[C].2012:74-79.