基于软件复用技术雷达数据处理的设计与实现
2014-04-14来晋峰
杨 璇 来晋峰
(1.西安电子工程研究所 西安 710100;2.中国北方工业公司 北京 100053)
0 绪论
为了提高软件开发的效率和软件质量、缩短软件开发的周期,增强软件的开放性和对外部适应性,减少软件危机,软件复用作为软件工程中的一个重要领域,已成为解决上述问题的主要途径。
软件复用的概念是由Mellroy 早在1968年的软件工程会议上提出,然而软件复用技术对软件产业发展的支持效果不是如人所愿,这种情况是由技术方面、非技术方面中不成熟因素导致而成的[1]。近年来,随着面向对象技术的出现和成熟,软件复用关键技术瓶颈问题得到解决,在军用雷达软件开发中,软件复用的研究也正成为焦点。但由于国内研究时间较短,应用并不广泛,本文利用模块化与构件思想研究分析软件复用技术在雷达数据处理软件中的应用,具有一定先进性和指导意义。
近年来,随着计算机技术与武器装备技术的快速发展,武器系统对于信息化、智能化的要求越来越高,导致雷达数据处理软件的规模和复杂性也不断提高。传统的软件开发方法由于普遍存在重复劳动、开发周期长、经费浪费等问题,已经不适应大型化、复杂化的系统研制。
通过对不同型号雷达数据处理系统研究可以看出,其系统的功能和原理是基本相同的。因此,可以采用软件复用技术构建雷达数据处理软件,实现不同型号雷达数据处理软件的相互移植,从而减少重复劳动,缩短开发周期,全面提升软件开发质量。
1 软件复用技术
1.1 软件复用的概念
软件复用技术是指重复使用“为了复用目的而设计的软件”的过程[2]。其中,在一个系统中多次使用一个相同的软件成分,不能称为复用而只能叫软件共享;对一个软件进行修改,使它可运行新的软硬件平台也不能称为复用而叫做软件移植。
软件复用是在新的软件开发过程中,利用已有的、可复用的软件成分来构造和生成新的软件系统[3]。其中可复用的软件成分包括软件设计方法、软件结构框架、程序代码、分析结果等。
1.2 软件复用技术
根据软件复用的实施性质和过程可将软件复用分为抽象技术、选择技术、例化技术和集成技术[4]。抽象是对复用对象的概括和提炼,即将操作和对象从语言、机器和环境中提炼出来,是软件复用的关键;选择是根据功能需求,在库中检索和匹配相关复用对象,完成存放、比较和检索可复用软件对象的功能;例化是选择技术的继续,完成对象的参数设置、转换和约束;集成是根据复用技术提高的框架,将已例化的复用对象组合成软件系统的过程。
2 基于软件复用的雷达数据处理软件设计
2.1 系统功能概述
雷达数据处理软件用以完成目标的航迹建立、航迹相关、航迹管理、航迹滤波、杂波处理、敌我识别、威胁估等处理任务,实现对目标的稳定跟踪[5]。
2.2 软件功能划分
数据处理软件的核心功能包括点迹凝聚、航迹处理和数据交互三个部分。
点迹凝聚完成对雷达信号处理机送来的原始一次点迹进行存储,对符合凝聚条件的原始一次点迹按照采用线性加权求重心的方法进行凝聚。
航迹处理功能模块是数据处理器的核心,它将凝聚点迹经过一系列处理,形成航迹,同时剔除杂波干扰。
主要包含以下子功能模块:杂波剔除功能、航迹建立功能、航迹批号管理功能、自动威胁判断功能、航迹质量管理功能、航迹滤波功能、敌我识别功能、ARM 报警功能构成。各个功能子模块功能独立,在时间上是顺序执行。
数据交互功能模块主要是实现数据处理器同信号处理器、雷达控制计算机、综合显示计算机等外部设备之间的信息交互。主要包括两类:数据信息和指令信息。
数据处理软件功能划分如图1所示。
图1 数据处理软件功能划分图
2.3 软件建模
2.3.1 软件的活动图分析
软件活动图用于表征软件系统的工作处理过程。系统工作时,雷达数据处理软件实时接收空情信息并完成空情信息分类存储;通过坐标变换,将目标信息转到数据处理系统要求的坐标系下,完成点迹预处理;对符合凝聚条件的原始一次点迹进行合并处理,提高点迹精度,生成凝聚点迹,并作为航迹处理输入;判定每个点迹是属于新发现目标的点迹,还是属于已经发现并建立航迹的目标点迹,对于新发现的目标,及时建立目标航迹,并通过批号管理完成航迹批号的有效分配;对于用于航迹更新的点迹,建立航迹和点迹的配对矩阵,完成航迹点迹相关和航迹滤波更新;依据目标运动要素和询问结果,完成目标的威胁评估和目标属性识别;处理更新后的航迹数据一方面实时上报,一方面用于航迹数据库更新,为下次跟踪维持服务;在航迹处理过程中,通过对航迹质量不断更新,完成航迹的确认和撤销过程。典型雷达数据处理软件活动图如图2所示。
2.3.2 软件的用例图分析
图3 给出了数据处理软件用例图,表1 给出了数据处理软件核心用例的功能说明。进一步对作为数据处理器核心功能的航迹处理进行更细致的用例划分,并给出各个用例的功能说明,如表1所示,航迹处理图例见图4。
图2 数据处理系统活动图
图3 数据处理软件用例图
表1 数据处理软件用例功能说明
表2 航迹处理用例功能说明
图4 航迹处理用例图
2.4 模块复用分析
雷达数据处理软件的过程和原理大致是相同的,依次完成坐标转换、点迹凝聚、航迹建立、航迹批号管理、航迹相关、航迹更新、威胁估计、航迹质量管理等处理;但是,由于各个型号的雷达数据处理系统采用的数据协议,硬件接口等存在差异。因此,在软件层面上既有不同也有可以共享的软件结构和模块,这使得数据处理系统的软件构件复用成为可能。2.4.1 点迹凝集采用线性加权求重心的方法将满足凝聚条件的原始一次点迹与凝聚点迹线性表中的已有点迹进行凝集。因此,对于任何型号的雷达数据处理系统,根据其凝集条件的不同来实现该模块的复用。
2.4.2 对于航迹处理模块中的杂波剔除包括对杂波图和屏蔽区的处理,对满足相关条件的一次点迹应作为杂波进行剔除。因此,可以设置不同的相关条件来实现杂波剔除模块的复用。
2.4.3 在航迹建立模块中,当自由点迹与剩余点迹符合建航规则时应能自动建立航迹,只是在初始建航时,不同型号的雷达对目标速度的大小与批号容量大小有所不同。因此,可以通过设计目标速度与批号容量来实现该模块的复用。
2.4.4 在航迹管理中分为航迹批号管理和航迹质量管理。对于不同型号的雷达,其批号容量不同,因此,根据批号容量的设置来实现航迹批号管理模块的复用;航迹质量管理采用记分法,航迹的初始质量为3,最大为9,小于1 时航迹自动撤销,通过关联波门类型,更新航迹质量的大小,动态的实现航迹的确认与撤销。因此,对于航迹批号管理模块和航迹质量管理模块均可以完全复用。
2.4.5 航迹滤波模块根据航迹历史数据和更新点迹,通过滤波处理,实现航迹数据更新。可通过调整滤波器增益系数来实现航迹滤波模块的复用。
2.4.6 在自动威胁判断模块中,数据处理软件根据目标飞临时间和距离等因素给出目标的威胁等级,通过建立统一的威胁评估表,实现自动威胁判断模块的复用。
2.4.7 敌我识别是根据询问结果进行敌我属性的判断。根据各个型号雷达询问机的工作模式对敌我识别模块进行复用。
2.4.8 在ARM 报警模块中根据新建立的航迹的速度、运动状态等特性是否满足ARM 特性,由于判断标准唯一,故该模块可完全复用。
2.4.9 数据交互模块实现与信号处理机、雷达控制机、综合显示机之间的数据通信。由于通信协议不同,因此该模块不能复用。
2.5 基于软件复用技术的雷达数据处理软件实现
根据以上各功能模块的复用分析,利用条件宏[6]控制模块复用条件,实现对各个模块的复用。
本次设计利用创建duplicate.h 文件(头文件形式)实现对模块的复用,通过对该文件的个性化配置,完成各模块复用条件的加载、删除和参数配置,并通过和应用工程进行重新编译完成数据处理可执行程序生成。具体实现如下:
a.根据系统实际需求,设置条件宏,利用软件模块化配置软件,完成模块的静态加载和参数配置。
例如配置航迹建立模块,本软件在设计时创建目标速度与批号容量的条件宏,完成对不同型号雷达数据处理软件航迹建立模块的控制。duplicate.h包含如下代码:
…………
//航迹建立模块
#define H_CREATE_NEW_HJ
#ifdefH_CREATE_NEW_HJ
#define H_TARGET_SPEED_LIM_DOWN 30 //目标速度下限
#define H_TARGET_ SPEED_LIM_UP 700 //目标速度上限
#define H_TARGET_CAPACITY 250 //目标容量
#endif
………
上述代码包含了功能模块的静态加载项和参数配置项,若静态加载项H_CREATE_NEW_HJ 没有定义,则后续参数配置项不参与软件编译。对于其它软件功能模块的加载和参数配置与此相同,就不再赘述。
b.在DPU 的应用工程中加载duplicate.h,重新进行编译,完成数据处理软件可执行程序的生成;
c.若想在已有配置文件基础上进行局部修改,通过打开已有配置文件,重新编辑保存后,完成配置更新并重新编译。
利用上述设计方法在实验室进行动态仿真,图5 为该雷达数据处理软件航迹跟踪处理效果。仿真结果表明,该雷达数据处理软件各个模块功能正确,对交叉航迹、转弯机动航迹等均能有效跟踪,满足雷达数据处理对功能和性能的指标要求。
图5 基于软件复用技术的航迹跟踪效果图
3 结论
在雷达数据处理软件开发的过程中,通过模块化的复用分析,对数据处理软件的各个模块进行抽象,有效的分离差异,实现了大部分模块的复用,从而提高了软件开发的效率,缩短了软件开发的周期,节约成本、减少劳动力,具有较高的工程价值与经济价值。
[1]史浩辉,何炜.基于构件的指控软件复用[J].计算机技术与发展.2011,(2):159-165.
[2]徐正权.软件复用方法与技术[M].华中理工大学出版社,1998.8.
[3]杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999.27(2):68-75.
[4]陈升来.软件复用技术及在雷达标校软件中的应用[D].中国科学院研究生院.2003.
[5]罗利强.张艳艳.高恒.雷达数据处理软件模块化研究[J].火控雷达技术,2013.42(2):38-41.
[6]谭浩强.C 程序设计[M].北京:清华大学出版社,2008.