赵占伟
(中国人民解放军91388部队,广东 湛江 524022)
半实物仿真试验系统存在投入建设巨大的问题,在系统软硬件建设上,产生了许多的软硬件设备。尤其是软件设备,针对每一型的产品扩容都需要开发定制一系列与之相配的软件,从而产生了一台硬件设备上运行面向不同型号的不同软件版本现象。我们发现,过去针对不同产品的系统建设过程中,这些对应不同产品的软件版本有许多相同和类似的功能设计,如数据显示和分析软件、数据录取与存储软件、三维视景软件、仿真综合显示与控制软件、仿真主计算机软件等软件,存在版本较多、“烟囱化”建设、经费投入大、不易于系统维护管理等问题[1-5]。
模块化、组件化思想在软件工程领域早已不是新鲜事物,从早期的微软动态链接库DLL、COM、DCOM到后来的大系统CORBA、HLA、TENA等都具有此类思想特征[6-10]。因此,本文尝试利用软件工程领域中的此类思想,针对半实物仿真试验系统当前和后续产品扩容中的上述软件问题,提出了一种基于仿真试验体系结构的系统软件组件化的发展建设思路,以研究实现半实物仿真试验系统软件通用化、模块化的技术方法,解决系统通用化程度低、装备利用率低、经费受限等影响系统发展的瓶颈问题,从而,为未来整个仿真试验系统建设发展探索道路。
仿真试验体系结构主要为靶场仿真试验系统发展提供一个开放的公共框架,该框架一般包含公共基础设施、试验资源应用、工具、辅助程序以及与该体系结构相关的一系列标准规范组成。仿真试验体系结构即规划约束了靶场仿真试验发展建设,又能整合靶场各种试训资源,提升靶场当前及未来试训能力,并节省靶场试训成本,提高试训资源利用率。仿真试验体系结构提供给靶场的能力主要有三种:互操作能力、可重用能力、可组合能力。互操作能力主要侧重于提升靶场资源的应用能力,给异构或异域的靶场资源沟通协作以完成更大任务的能力。可重用和可组合能力主要侧重于规范约束靶场试训资源发展建设,提高靶场试训资源的利用率和通用性、适配性,长远来看,达到节省试训成本,提高效益的目的。因此,利用体系结构提供的可重用性和可组合性两种能力,能使半实物仿真试验系统软件组件化,可以很好地解决半实物仿真试验系统发展中面临的问题。本文所提出的仿真试验体系结构总体框架如图1所示。该仿真试验体系结构功能上主要分为四部分:基础设施、试验资源应用、试验工具和辅助程序。
图1 仿真试验体系结构总体框架
1)可重用能力实现
根据对各种试验资源的抽象概括,资源组件主要由三部分组成:接入机制,用户界面和业务逻辑,如图2所示。接入机制用于将组件接入硬件,主要包括一些通信协议,用户界面主要用于为操控组件而设置的各种交互接口,业务逻辑实现组件的具体行为,这三部分中,接入机制和用户界面的实现有许多相同的地方,可抽象为公共的组件模板,利用组件模板添加用户逻辑,可以大大加速开发过程,然后,将开发完的组件用常用的开发工具编译封装成动态链接库DLL,这些DLL在具有体系结构支撑环境的任何平台上都可以重用。
图2 可重用功能的实现
2)可组合能力
体系结构支持环境为一个辅助实用程序,具有组合试验资源组件的功能。将封装完成的各种试验资源组件和工具组件的DLL存入支撑环境目录下的资源仓库中,启动支撑环境,就可以自动加载包含各种组件和工具的资源仓库,然后,根据试验任务,将所需的各种组件资源和设备拖进试验工程。
本文通过对半实物仿真试验系统中的软件按前述体系结构,将其功能构成进行详细分析研究和划分,如图3所示,也可以将大部分软件抽象提炼为三种逻辑模型:操控界面、接入接口和业务逻辑。操控界面主要是指软件的界面,用来实现和帮助软件和人之间进行人机对话功能,是软件呈现给人的直观感受。接入接口主要是指软件的通信接口,实现软件与系统中的其他组成的交互,软件通过接入接口接收外部和发布自身产生的数据。业务逻辑主要描述软件的自身行为功能,是软件功能的核心,包括运算处理算法,对通过接入接口接收的数据进行运算处理,将处理结果通过操控界面显示给用户,并将需要发布出去的数据通过接入接口发送给系统中的其他设备。
图3 系统软件功能抽象逻辑划分
上述三种逻辑模型中的每一种逻辑又可以抽象细分为若干个功能单元。如操控界面可以细分为不同的显示单元,包括表格显示、趋势图显示、饼图显示、用户设定参数和选择对话框等。接入接口根据不同的接口类型又可以分为以太网、反射内存网、RS232、RS485等类型接口和具体协议功能单元。业务逻辑可进一步细分为各种运算处理功能单元,如坐标变换单元、各种插值滤波算法等。根据这些按不同功能抽象细化出的模块单元,按照体系结构标准,开发出不同的软件功能组件,然后,将这些不同软件功能组件,根据不同的系统功能需求进行组合,构建面向不同型号产品的半实物仿真试验系统,就可以实现每一个分系统只保留一套应用软件的目标,针对后续每次扩容仅需要改动其中的某些功能单元就行,功能相同的无须改动,降低了研发成本。
本文以某型半实物仿真试验系统中的数据处理与分析子系统中的数据显示和分析软件作为研究的典型对象进行组件化设计研究,利用前述体系结构原理,抽象出软件的主要功能,设计一套基于组件化思想的数据显示和分析软件,针对不同的产品型号,可以灵活定制软件功能,以满足针对该产品型号的试验和训练任务需求,这样就解决了该类软件产品“烟囱化”问题,不需要每次扩容都在这方面投入经费,达到节省时间、成本,易于维护管理的目的。
数据显示和分析软件主要包括显示和分析两部分,根据以往系统建设的工程经验,数据显示的主要形式为将数据表现为图表和曲线等,尤其以曲线为主,图表和曲线等是外在形式功能,主要包含量程宽度、粒度、线型等属性特征,而数据作为图表和曲线的内在驱动也主要有浮点型、整型等类型。数据分析功能主要是采用数据处理方法将分析处理后的数据通过显示部分显示出来,因此,系统主要功能分为两部分。
1)数据显示功能的组件化
如上所述,数据显示功能主要是通过一些显示功能单元来实现的,根据以往系统建设中的经验,常用的显示功能主要为图表和曲线等,因此,该部分功能的重点主要是设计能生成不同图表和曲线的功能组件,该部分功能组件要提供给用户灵活定制的接口,用户通过灵活定制,不需要二次开发就能生成所需要的显示功能单元。
2)数据处理分析功能的组件化
该部分的主要功能侧重于提供灵活可定制的数据处理和分析功能单元,根据以往的试验工程经验,常用的数据处理和分析方法也具有相同和相似的特征,抽象出这些功能特征,将这些特征分裂细化为一个个功能组件单元,并提供给用户灵活定制的接口,用户根据自己的特定试验任务需求,不用二次开发,通过灵活定制接口,就可生成自己所需的数据处理分析功能单元。
1)开发和设计的数据显示和分析功能软件组件,在功能上要覆盖试验任务中的数据显示和分析功能。
2)功能组件要具有灵活的可定制性,通过设定组件属性参数接口,灵活定制任务功能。
3)生成的功能组件单元要具有良好的可组合性,通过按需任意组合,实现以往的数据显示和分析软件的功能。
组件化的半实物仿真试验系统数据显示和分析软件组成结构如图4所示。整个软件的设计思想是基于前述体系结构研究,将显示和数据处理分析方法这两项功能,进一步抽象细化,分裂为一个个基本的功能对象单元,然后,利用体系结构提供的组合工具,将这些基本的对象单位,根据功能需求,组合成一个针对特定需求的数据显示和分析软件。绿色代表经过分裂细化后的显示相关的对象单元,棕色代表经过分裂细化后的数据处理分析对象单元,两种功能对象单元根据实际任务需要利用组合工具拼盘组合成为定制的数据显示和分析软件。
图4 软件组件化结构框图
整个软件系统的具体设计如图5所示,箭头线代表数据的流向,末端带圆点线表示功能组成,其中,左边虚框为数据处理分析功能组件,其由各种数据处理算法模块和对应的参数设置模块组成,右边虚框代表显示功能组件,根据以往该仿真试验系统建设经验,主要由趋势图组件和图表组件组成,其中,每一部分功能模块又都分解为参数设定和具体实体两部分,通过参数设定功能模块来具体设定模块功能。软件的具体工作流程是:首先,通过接口组件,将数据从该型半实物仿真试验系统反射内存网上采集出来,然后,根据任务需要,通过由参数设置的处理分析组件来处理分析数据,处理分析后的数据可根据需要,选择通过设置趋势图和图表参数定制显示功能显示出来。这样通过灵活的参数设置,可以定制任务需要的功能组件,通过组件的组合,实现软件的功能。
图5 软件组件化具体设计框图
组件化软件设计的关键是功能对象单元的抽象分裂细化,功能对象单元抽象细化的粒度越小,实现软件组合的灵活性越大,就如堆积木一样,积木块越小,实现的积木构造越多,这样容易使软件结构更零散,不利于管理。因此,需要结合具体的试验工程实践,合理确定软件抽象分裂细化粒度。本文针对半实物仿真试验系统软件问题,提出了系统软件组件化的开发设计思路,下一步,还需要将实例应用到该系统中进一步验证。