雷达情报分发软件复用技术应用研究

2016-11-15 00:41燕,饶洁,张
现代雷达 2016年9期
关键词:军用插件报文

曾 燕,饶 洁,张 江

(南京电子技术研究所, 南京 210039)



·软件技术·

雷达情报分发软件复用技术应用研究

曾燕,饶洁,张江

(南京电子技术研究所,南京 210039)

采用软件复用技术,大大提高软件开发效率和质量,降低软件开发成本, 具有较高的工程价值与经济价值。文中介绍软件复用的基本概念,军用软件研制单位开展软件工程化及软件复用情况;以雷达情报分发软件为例,分析了软件复用技术在软件需求分析、软件设计以及软件编码阶段的应用方法与设计思路;提出了插件化模型设计和自适应通信环境框架设计相结合的方法,便于又好又快地实现软件功能。

软件工程;软件复用;自适应通信环境

0 引 言

随着计算机技术与军事指挥技术的快速发展,军事指挥系统更加信息化、智能化、一体化,更新速度更快。传统的软件开发方法由于普遍存在重复劳动、开发周期长、经费浪费等问题,已经不适应现阶段的军事指挥系统研制。软件复用作为软件工程中的一个重要领域,已成为解决上述问题的主要途径。据统计,软件系统的开发中若复用程度达到50%,则其生产率可提高近40%,开发成本可降低约40%,软件出错率也可降低近50%[1]。

软件复用是在软件开发中避免重复劳动的解决方案, 其出发点是应用系统的开发不再采用一切从零开始的模式,而是以已有的工作为基础, 充分利用过去应用系统开发中积累的知识和经验,将开发的重点集中于应用的特有构成成分[2]。早期的软件复用主要是代码级复用,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求分析、设计、代码和文档等一切有关方面。

现代军事指挥系统中雷达情报分发软件主要实现雷达报文与指挥系统内部数据之间的相互转换功能以及将雷达情报按需分发的功能。由于雷达情报分发软件功能相对单一,雷达报文普遍遵循相应标准。因此,复用雷达情报分发软件可以减少重复劳动,缩短开发周期,保证软件质量。

本文首先介绍军用软件复用情况,然后以雷达情报处理软件为例介绍软件复用技术在软件开发过程的应用。

1 军用软件复用技术

1.1军用软件研制能力成熟度模型

我国在2009年相继出台了《军用软件研制能力成熟度模型》和《军用软件开发通用要求》两个标准,根据《军用软件开发通用要求》,将军用软件生存周期划分为系统需求分析、系统设计、软件需求分析等13个过程,具体内容见图1。《军用软件研制能力成熟度模型》规定了软件研制和维护活动中的主要软件管理过程和工程过程的实践,将成熟度分为初始级、已管理级、已定义级、已定量管理级、优化级五个等级,并定义了配置管理、测量与分析、项目监控、项目策划、过程和产品质量保证、需求管理、供方协议管理、组织创新和部署等22个过程域,对每个过程域描述了专有实践和公有实践。

图1 军用软件生存周期图

软件复用技术是指重复使用“为了复用目的而设计的软件”的过程[3]。军用软件研制单位依据《军用软件开发通用要求》和《军用软件研制能力成熟度模型》,结合本单位软件研制工作的特点制定出适合本单位软件研制流程的软件工程化体系文件,包括各种过程规定、规程、指南和规范;建立相应的软件资产库,内容包括软件研制过程中需遵循的标准,按照标准拟制的各类文档模板,用于软件复用的构件库、软件框架等。每个软件研制项目按照规定的过程域,使用相关的模板和构件库,软件框架等进行软件开发活动,像流水线一样生产出软件产品。军用软件研制单位的软件开发过程本身就是结合项目特点不断复用开发模型和成熟度模型的过程,且在过程中设计了可复用的文档模板、构件库、软件框架等,软件复用技术得到广泛应用。

1.2军用软件研制单位复用方法介绍

本单位在实施软件工程化过程中,针对不同的软件研制阶段制定出了不同的复用方法,对软件复用的形式以及软件复用的过程进行了规定。

1) 软件复用形式

首先介绍两个基本名词:

计算机软件配置项(CSCI):指满足最终使用要求并由需方指定进行单独配置管理的软件结合。

软件单元(CSU):指CSCI设计中的一个元素,例如CSCI的一个主要构成部分,这种构成部分的一个部件、一个类、对象、模块、函数、子程序或者数据库。

在实施软件复用的过程中,可能的复用形式分为:

(1)CSCI原样复用:即不加修改就可以使用的CSCI。

(2)CSU原样复用:即复用不加修改就可以使用的软件单元。

(3)CSU修改复用:即无需修改CSCI软件体系结构,只需要对原有软件单元的流程、软件组成进行修改。

(4)CSU参数修改复用:即无需修改CSCI软件体系结构、软件单元的流程和组成,只需要对软件单元中的处理参数和配置文件等进行修改。

2)软件复用过程

从系统分析和设计、软件需求分析、软件设计、软件实现、软件测试五个阶段对“CSU修改复用”进行介绍,如表1所示。

表1 CSU修改复用

2 雷达情报分发软件复用应用分析

通过对应用在不同系统中雷达情报分发软件功能进行研究,将共性功能抽取出来加以抽象,然后在不同系统中进行实例化,可以实现不同应用场景下的雷达情报分发软件的功能实现,从而减少重复劳动,缩短开发周期,全面提升软件开发质量。下面从软件工程中的需求分析阶段、软件设计阶段、软件编码阶段详细介绍软件复用技术的应用。

2.1需求分析阶段复用分析

需求分析阶段通常从两方面考虑软件复用:(1)在分析需求的同时查找软件资产库中已经研制的类似系统中是否已经存在可以直接复用的通用模块;(2)分析准备研制的系统中哪些功能适合设计成通用模块,将其抽象化后加入到软件资产库中,便于今后在类似的系统中复用。下面以雷达情报分发软件为例分析。

现有的雷达情报分发软件主要完成协议转换器、情报分发以及通信链路管理三个功能。协议转换器实现接入到指挥控制系统中的不同雷达情报格式与指挥控制系统内部格式之间的相互转换。情报分发功能是指情报用户定制情报分发策略,雷达情报分发软件根据情报分发策略将用户需要的情报实时地推送到指定用户。分发策略可以由用户定制情报类型、情报格式、情报分发频度等条件。通信链路管理功能指对情报用户、发送链路、接收链路等进行增加、删除、修改等管理。雷达情报分发软件功能组成如图2所示。

图2 雷达情报分发软件功能组成图

2.1.1协议转换器复用

现有的指挥控制系统接入多种不同格式的雷达情报,虽然它们采用的协议各不相同,但是表达的信息基本相同,如:航迹格式基本上包括产生航迹的雷达站号、航迹号、航迹位置、航迹产生的时间等信息。指挥控制系统内部格式定义将各种情报格式描述的内容用统一的格式来表示,用于在系统内部各席位之间使用,将翻译工作交给协议转换器来完成,这样做保持了指挥控制系统内部的稳定性,减少了指挥控制系统对情报格式的耦合性。当有新的雷达情报格式接入到指挥控制系统时,只需要增加雷达情报分发软件的协议转换器,将新的格式转换成指挥控制系统内部的格式转换,这样指挥系统内部各席位之间的接口无需变动就可以正常工作,大大降低了软件代码更改量。

由于雷达情报采用的协议一旦确定就不会改变,因此该格式的协议转换器一旦抽象出共性的功能,代码实现后可以直接复用。

2.1.2通信链路管理复用

现有的指挥控制系统中常用的通信方式为串口和网络。串口通信常见的工作流程如下:先设置好串口参数,再开启串口检测工作线程,串口检测工作线程监测到串口接收到的数据、流控制时间或其他串口事件后,就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言的;发送数据可直接向串口发送。网络通信常用的协议为TCP/IP协议,它提供了流式套接字、数据包套接字、原始套接字三种套接字。每种套接字通信都遵循固有的模式。目前对于串口通信和网络通信,有大量封装的类和组件可以直接使用,我们需要做的是根据编程语言、操作系统、网络通信方式等应用场景选择合适的通信类代码。选择合适的源码后对其进行测试,符合要求后纳入软件资产库进行管理,需要时从资产库直接取出使用。

2.2软件设计阶段复用分析

为便于雷达情报分发软件在其他系统中复用,在软件设计阶段采用以下两个技术方案。

1)基于插件化模型设计

插件是一组基础功能的集合并通过接口向外部提供服务,所以复用粒度更大,编译生成的动态链接库可直接加载,移植更方便。同时,各个插件之间没有依赖关系,符合软件工程中“高内聚低耦合”的思想。在雷达情报分发软件中抽象出格式转换插件、通信接口插件和分发管理插件。

一般的插件设计主框架不包含具体的功能实现,但是雷达情报分发软件将通用的工作流程设计成一个应用框架,对于不同的应用需要改变的部分设计成“基本配置项”和“扩展配置项”插件,根据系统的实际需求,在一个系统软件界面环境下有选择性的进行配置。这种设计使得软件能实现最大程度的复用。

在复用设计过程中,插件标准化接口发挥了至关重要的角色,一个具备高度的内聚性和扩展性的构件接口能使软件的伸缩性、维护性得到意想不到的提高。接口设计正确才能保证可配置的不同插件以同样的接口“插入”到主框架,主框架才可正确地运行。根据对雷达情报分发软件工作流程进行分析,设计雷达情报分发软件主框架处理流程,如图3所示。其中,数据接收、数据分发功能采用通信接口插件,报文解析功能采用格式转换插件,分发规则判断功能采用分发规则插件,命令处理功能采用命令处理插件。

2)采用自适应通信环境(ACE)框架

ACE是可以自由使用、开放源码的面向对象框架,ACE体系结构包括三个基本层次:操作系统适配层、C++包装层、框架组件层[4]。操作系统适配层将ACE中的其他层与OS API相关联的平台专有特性屏蔽开来,由于ACE操作适配层所提供的抽象,极大地增强了ACE的可移植性和可维护性。C++包装层通过提供类型安全的C++接口简化通信应用程序的开发,各种应用可以有选择地继承、聚合或实例化其中的组件来使用这些包装。ACE提供了一组丰富的可复用C++包装外观和框架组件,可跨越多种平台完成通用的通信软件任务。

图3 雷达情报分发软件主框架处理流程

由于雷达情报分发软件具有跨平台运行需求,同时需要处理大量的网络数据收发,选用ACE框架作为通信中间件可方便地在不同操作系统间移植,利用其丰富的通信组件可以省却底层操作系统API的繁琐编程,快速构建可复用的网络程序。

2.3编码阶段复用分析

在编码阶段,代码复用主要考虑将公用部分模块化、抽象化,使代码可以不改动或少改动就可以用在其他系统中。下面以报文解析器插件为例说明。

报文解析器插件主要功能有两个:将报文格式转换成内部结构;将内部结构转换成报文格式。报文和内部结构都可以看作是按照一定协议定义的一定长度的字符数组。因此,将两个接口定义如下:

//结构转换成报文接口声明

int ConvertStructToReport(const byte* pstruct, int ReportType, unsigned char* preport);

该定义中,pstruct为要转换的结构,ReportType为转换后的报文格式,preport为转换后的报文,返回值>0为转换成功后报文的长度,返回值<0为转换不成功的错误代码。

//报文转换成结构接口声明

int ConvertReportToStruct(const byte* preport,const int& ReportLength, int ReportType,unsigned char* pstruct);

参数含义:

该定义中,preport为待转换的报文,ReportLength为待转换的报文长度,ReportType为待转换报文的格式,pstruct为转换后的结构,返回值>0为转换成功后结构的长度,返回值<0为转换不成功的错误代码。

通过以上定义的接口,将报文解析的共性抽取出来,隐藏了各种报文解析的处理细节,对外的接口完全一致,这样便于将解析器组装到主框架中。

3 结束语

在雷达情报汇集分发软件开发的软件需求分析、软件设计、软件编码等各个阶段,通过复用分析,对各个模块进行抽象,有效分离差异,实现通用模块,可大大提高软件开发效率,缩短软件开发周期,降低软件开发成本,提高软件质量,具有较高的工程价值与经济价值,为军用软件研制单位又好又快地开发软件提供了理想的解决途径。

[1]GU J F.Reuse nonstop car of software decompression. [EB/OL] http://51cmm.csai.cn/media/NO000026.htm.[2005-06-28].

[2]杨芙清, 梅宏, 李克勤, 等. 软件复用与软件构件技术[J]. 电子学报, 1999, 27(2): 68-75.

YANG Fuqing, MEI Hong, LI Keqin, et al. Software reuse and software component technology[J]. Acta Electronica Sinica, 1999, 27(2): 68-75.

[3]徐正权. 软件复用方法与技术[M]. 武汉: 华中理工大学出版社, 1998.

XU Zhengquan. Method and technology of software reuse[M]. Wuhan: Central China University of Science and Technology Press, 1998.

[4]王继刚, 顾国昌, 卢东昕, 等. 构架与模式在通信系统软件中的应用研究[J]. 计算机应用, 2003, 23(11): 43-45.

WANG Jigang, GU Guochang, LU Dongxin, et al. Research on the application of framework and patterns in software of communication system[J]. Computer Applications, 2003, 23(11): 43-45.

曾燕女,1974年生,硕士,高级工程师。研究方向为数据通信和软件工程。

A Study on Software Reuse Technology of Radar Information Distribution

ZENG Yan,RAO Jie,ZHANG Jiang

(Nanjing Research Institute of Electronics Technology,Nanjing 210039, China)

Software reuse technology can greatly improve software development efficiency and software quality, and reduce software development costs. It has more engineering and economic value. Software reuse concept is introduced in the paper as well as the software engineering and software reuse situation in military software manufacturer. Taking radar information distribution software as an example, application methods and design ideas of software reuse technology in the periods of software requirement analysis, software design and software encoding are analyzed. To develop software well and quickly, a plug-in combined adaptive communication environment framework was proposed.

software engineering; software reuse; adaptive communication environment

10.16592/ j.cnki.1004-7859.2016.09.016

曾燕Email:zengyan74@sina.com

2016-04-16

2016-06-18

TP3

A

1004-7859(2016)09-0075-04

猜你喜欢
军用插件报文
基于J1939 协议多包报文的时序研究及应用
威力无比的军用霰弹枪
CTCS-2级报文数据管理需求分析和实现
自编插件完善App Inventor与乐高机器人通信
浅析反驳类报文要点
军用机器人揭秘
基于jQUerY的自定义插件开发
中国工农红军军用号谱
ATS与列车通信报文分析
MapWindowGIS插件机制及应用