张永鹏
(中国电子科技集团公司第三十八研究所 合肥 230088)
随着制导武器打击精度的不断提升,雷达导引头作为提升制导打击精度的重要组成部分,其作用越来越重要。雷达导引头系统软件设计则是整个导引头研制过程中的重要环节。雷达导引头的系统软件主要包括导引头数据通信、内部自检、时序控制、工作模式控制、参数计算、伺服控制等功能。当前雷达导引头软件设计侧重于采用自上而下“面向过程”的软件设计方法[1-2]。
面向过程的主要设计思路包含:
1)以“模块”为中心,根据软件功能将软件以树状结构划分为若干基本模块,各模块功能独立、相互之间关系简单;
2)采用“自上而下”、“逐步求精”的开发方法,明确各模块之间的组装和交互,各个模块设计完成后,将各模块组合在一起形成整个系统;
3)模块设计采用“高内聚、低耦合”设计原则,每个模块都是具备一个完整的功能,尽可能使得模块之间相互独立,不存在信息交互。
面向过程的软件设计方法首先在解决问题时是以数据流和时间触发进行的,当需求变动时,其程序结构会产生较大变化;其次在计算类型上采用的是数据结构进行构造,用算法表示事物的处理,但是在数据结构和算法上的构造和形式向分离,不具备对统一性,因而导致程序可继承性差[3]。
当前随着雷达导引头对复合多模、高性能的不断发展,对雷达导引头的功能、研制周期等都提出了新的需求。这些最终都体现在更高的软件设计,即如何使得雷达导引头软件设计在实时性、多任务处理、硬件资源限制、软件质量及安全性、研制周期等都能适应当前的发展需求。因此,依旧采用传统的软件设计方法,已经不足以满足当前的要求。
因此,针对雷达导引头软件的特点,通过采用面对对象的设计思想,提出基于UML对雷达导引头进行系统建模,对导引头首先进行系统分析,再对导引头在软件设计过程中进行控制和管理,使系统软件设计更加规范化、合理化,保障软件设计的质量和安全性。本文以某主动雷达导引头系统软件设计过程为例,利用了UML为导引头系统进行系统软件设计建模。实际应用情况表明该方法在雷达导引头软件设计过程中能够促进软件设计的合理性和规范化,具有很好的应用价值。
UML是采用面向对象的方法进行分析和设计的一种标准语言表示,利用图形化的语言建立能够表达各类需求的软件系统模型,贯穿整个软件设计的生命周期,能够有效的控制和管理软件设计过程,提高软件开发效率和软件质量[4-5]。
UML包括9种图形可分为用例图、行为图、静态图、交互图和实现图等五类图[4-5]。
1)用例图主要是从用户角度描述了系统各项功能,反映了角色与系统用例之间的交互关系;
2)行为图展现了系统状态间的转换和对象间的相互关联,包括状态图和活动图。状态图描述了类的对象全部可能的状态和事件发生时状态间的转移条件;活动图描述了对象间的流程控制,及系统内活动之间的相互约束;
3)静态图展现了系统静态设计视角下事物之间的关系视图,包括类图和对象图。类图描述了系统中类属性、操作、接口等之间关联、依赖、聚合等关系;对象图是类图的实例,描述了类在系统中具体使用的实例;
4)交互图描述了系统对象之间的交互关系,包括时序图和协作图。时序图描述了对象间的动态交互的顺序关系,显示出对象与对象之间的相关交互;协作图类似于时序图,主要描述了对象之间信息交互顺序和连接关系;
5)实现图则是展现了系统各个构件之间的相互依赖关系以及系统运行时的节点和配置等,包括组件图和部署图。组件图描述组件之间的动态关系;部署图描述了系统的物理拓扑结构和在该结构上的执行软件。
UML通过面向对象图的方式来描述系统,具备系统从需求、分析、设计、实现、测试等各个阶段的建模方法,对软件设计有着很大的促进作用。因此,本文以某主动雷达导引头系统软件研发过程进行说明,具体分析UML在部分系统软件设计过程中的应用。
本文根据UML的图类进行主动雷达导引头系统软件设计建模分析。
用例图从系统用户顶层角度进行系统规划,获取系统的所需功能要求。主动雷达导引头系统软件根据其设计要求,主要包括内部自检功能、伺服控制功能、成像识别功能和主动跟踪功能等,各个功能的参与者均为主动雷达导引头。如图2为业务用例图模型。
主动雷达导引头中业务具体行为:导引头需要进行内部系统软硬件自检,检验导引头内部是否存在相关组件故障;导引头能够根据实际需求计算伺服控制指向位置,并控制导引头伺服正确指向预定位置;导引头能够完成对预定位置进行主动成像,并完成图像识别过程,获取地面目标位置等信息;导引头能够根据主动识别的地面目标位置信息,完成主动脉冲跟踪,实时输出对应的目标位置、测距等信息。下面主要以主动跟踪为例详细描述导引头系统软件建模过程。
行为模型主要包括活动图和状态图,下面分别通过活动图和状态图进行软件建模描述。
1)活动图建模
活动图是对用户例图添加一定具体的操作条件或范围等限定,主要描述逻辑的设计过程,是一种概念级的描述过程。主动跟踪主要包括目标检测、数据处理、主动跟踪等功能,具体活动图如图3所示,导引头根据指令进入目标检测流程,首先设置参数,并控制伺服指向预定方向和对信号进行脉压等并行处理,即检测出目标信息;数据处理中点迹预处理、暂航及航迹处理等是以时间为顺序的串行处理过程;主动跟踪过程中也包括跟踪状态处理等串行,以及参数计算、测角和角速度计算、目标信息输出等并行处理过程。
2)状态图建模
状态图是通过对系统工作状态和状态变化条件进行描述的。状态图可以详细地了解系统在整个过程中运行规则和轨迹。图4为主动跟踪的状态图。
图4详细描述了主动跟踪中未捕获状态、捕获状态、跟踪状态、记忆跟踪状态、丢失状态和进入盲区等工作状态之间的转换关系。导引头通过外部指令进入主动跟踪模式,状态进入未捕获状态,再到捕获目标进入捕获状态,以及后续进入跟踪状态、记忆跟踪状态和丢失状态,再回到未捕获状态的主动跟踪状态切换过程。
类和对象是面向对象技术的基本元素,静态模型则是通过类图和对象图来描述类、接口、对象等之间的关系。通过利用面向对象的设计思想中的对象、类的封装性,来实现程序开发的组件化,使得程序具备“高内聚、低耦合”特性,提高程序的可靠性和继承性。
根据图4的状态图,可得出需要完成主动跟踪功能动作的类,如图5所示,构造了主动跟踪处理类、FPGA数据总线通信类、时序参数控制类、伺服控制类、工作模式切换类以及串口通信类等,每个构造的类都封装有各自的变量和操作内容,根据这些变量和操作,可以详细得出主动跟踪静态动作设计。
在实际的系统中,对象之间都存在相互之间的信息交互,而不是孤立存在的。交互是一种行为,主要包括时序图和协作图。时序图强调消息的时间顺序,表示参与交互的多个对象之间发送消息、接收消息的序列,将这些消息沿垂直方向按时间顺序从上到下放置。导引头主动跟踪的时序图表明了在跟踪过程中相关对象之间时序的关联关系。图6的时序图描述了对象之间相互的消息传递时序,横坐标表示为对象,纵坐标表示为时间。如,同对FPGA数据总线通信的端口配置串口通信和变量的读取,串口通信接收指令进行主动状态切换,主动跟踪处理通过对目标数据的处理进行伺服控制、时序设置以及进行工作参数的上报等具体的操作,整个序列详细的概括了整个主动跟踪状态变化之间类对象的相关消息传递过程。
软件最终需要运行在用户的环境中才能发挥作用。在完成导引头系统软件的体系结构建模后,便进入软件的实现阶段,通过组件图和部署图进行实现。
组件是软件系统的一个物理单元,作为一个或多个类的软件实现,可以包括源代码、二进制码、可执行码以及动态链接库等。
部署是一种特殊的依赖关系,一个部署表示一件实例被定位到一个部署目标上。通过将应用程序的各部分在物理结构上进行安装和部署,需要从应用程序本身和运行环境两个方法的要求来分析。
综上所述,本文主要利用UML对雷达导引头系统软件进行建模研究,通过用例图、行为图、静态图、交互图和实现图五类UML图形的设计和分析,将导引头系统软件设计通过可视化的图形进行表示,建立清晰、直观的系统软件设计模型,在实际开发中可以有效对导引头系统软件设计过程进行控制和管理,降低了软件设计的复杂性,保障了设计过程中软件的可靠性、维护性,最终保障雷达导引头研制周期和软件质量,对后续产品的开发都具有极大的借鉴作用。