基于UML的雷达导引头系统软件工程过程

2012-09-30 01:38张江华李依林
火控雷达技术 2012年4期
关键词:用例导引头雷达

刘 婷 张江华 聂 强 李依林

(西安电子工程研究所 西安 710100)

1 引言

导引头系统软件是整个雷达导引头项目研制中的重要环节,主要用于导引头工作模式控制、数据处理、系统调试,以及与伺服系统、导弹控制系统的数据通信等。与常规软件开发过程相比,雷达导引头系统软件对开发人员以及软件开发过程管理都更加严格。常规雷达导引头系统软件开发一般采用面向过程的软件开发流程实现。面向过程的程序设计方法将重点放在解决问题的方法或过程上,具有代码效率高,程序结构紧凑等优点,但是随着软件系统功能日益复杂和开发规模的不断增大,这种程序设计方法的弊端也逐渐暴露和突出:

a.软件开发难度大。面向过程的程序开发模式采用自顶向下的程序设计来实现,把程序分解成若干个功能模块和子功能模块,这些模块间存在大量的数据交互和功能调用,不利于软件开发的多人协作,并使软件开发过程随着开发队伍的增大变的越来越困难。

b.软件可靠性差。在面向过程的程序开发中,大量的软件测试均是在代码全部完成后进行,通过最后阶段的系统联调来判断软件是否存在问题。可以看出用这种粗略的测试手段试图去发现软件存在的问题是极不可靠的,即使发现问题,在这个阶段去修改程序也会浪费极大的人力物力,从而延误科研进程。

c.软件维护性差。利用面向过程的模式开发程序,一个简单功能的增加都会引起系统软件架构的调整,并且在新的程序架构下需要对测试过的功能模块再次调试测试。这样无疑大大增加了软件开发人员的工作量,不利于项目的进展。

d.软件继承性差。面向过程的程序开发模式下,系统软件的功能模块之间呈现着“高耦合”状态,模块之间功能存在的大量的交叉,这样不利于代码复用,降低了软件的继承性。

随着以上缺点在雷达导引头系统软件开发过程中的日益暴露,已经严重的影响着我们的科研进度和工作,因此,寻找一种更适应雷达导引头系统软件开发的方法是我们迫切需要解决的问题。

本文针对雷达导引头系统软件的特点,利用UML(统一建模语言)为导引头系统建模,基于面向对象的思想,对系统软件的开发和设计实施分阶段过程控制与管理。UML在系统模型设计与分析中具有很大的优势[1]:a.UML系统模型是面向对象的;b.UML系统模型可完全独立于整个开发过程;c.UML系统模型是最易掌握和使用的;d.UML系统模型具有可视化,非常适于复杂系统的建模。综上所述,UML已成为面向对象技术领域占主导地位的标准建模语言,能够对整个开发过程提供灵活易读一致的表达,表现出其强大的能力,融合了各种面向对象的建模语言的优点,因此,具有非常广阔的应用前景。

2 UML原理简述

UML是用模型来描述系统的结构或静态特征以及行为或动态特征的,它从不同的视角为系统的架构建模形成系统的不同视图。在软件系统开发过程中主要应用到CIM(Computation Independent Model)和PIM(Platform Independent Model)阶段的UML模型,CIM聚焦于软件系统外部需求及功能,不涉及软件系统的结构和细节,属于概要设计阶段;PIM聚焦于软件系统的内部细节但不涉及系统的具体平台,属于详细设计阶段。具体包括以下七个步骤[2]:

CIM-1:定义业务流程,产生业务用例模型。此阶段是为了捕获用户的顶层功能需求。

CIM-2:分析业务流程,产生活动图。针对CIM-1中每一个业务用例,分析它的流程,并且绘制活动图。

CIM-3:定义系统范围,产生系统用例图。CIM-3生成的文件与前两个阶段生成的文件有如下关系:a.CIM-2活动图中的每一个动作,都可能成为CIM-3的系统用例;b.CIM-1中的业务执行者,以及CIM-2中的动作负责人,都可能成为CIM-3的系统执行者。

PIM-1:分析系统流程,产生系统用例叙述。PIM-1的主要工作是针对每一个系统用例,分析其内部细节,并编写详尽得系统用例叙述。

PIM-2:分析业务规则,产生状态图。针对每个业务对象根据业务规则绘制出状态图。

PIM-3:定义静态结构,产生类图。在这个阶段需要用类图来表达系统内部的静态结构,需经过以下步骤:a.根据前面生成的文档获得初步的静态结构;b.分析PIM-2的状态图,为类增加属性及操作;c.分析PIM-1搜集的窗体,为类增加更多的属性;d.经过下面PIM-4的序列图,为类增加更多的属性,并且描述操作的方法。

PIM-4:定义操作及方法,生成序列图。此阶段可以用序列图来表达系统内部一群对象合力完成某一个系统用例时,执行期间的交互情形。程序员可按照序列图的内容,编写出方法的源代码雏形。

UML的七个系统模型始终贯穿于软件开发的整个过程中,从需求分析、设计、实现直至最后的系统测试及维护。

3 基于UML的软件系统建模

本文采用Rational Rose软件工具按照UML的七个建模步骤对雷达导引头系统软件进行建模。

3.1 业务用例建模

利用UML模型进行面向对象的软件开发中,通常采用业务用例模型来捕获用户最顶层的功能需求。通过对雷达导引头系统软件需求描述的划分,对于外部导弹总体来说,雷达导引头的主要功能可以划分为三类:开机自检功能、干扰检测功能和目标检测功能。其中,完成每个功能的参与者均为雷达导引头。图1为导引头系统的业务用例模型。

图1 雷达导引头系统业务用例模型

开机自检是需要雷达导引头判断自身是否有故障;干扰检测是要求雷达导引头能够判断外部是否存在有源干扰;目标检测要求雷达导引头能够完成目标的搜索、截获和跟踪并输出指导信息。由于目标检测功能是雷达导引头工作的主要功能,下面我们以目标检测为例来讲述如何利用UML对雷达导引头系统软件建模。

3.2 活动图建模

活动图是每个业务用例的逻辑过程。一个业务用例可以映射到多个活动,一个活动图也可以被多个用例使用。活动图很类似软件的流程图,但流程图描述的是具体的程序设计,而活动图是概念级的。活动图还可以表示并行的动作,由于是概念级的控制流设计,所以活动图没有流程图的循环结构[3]。下面针对目标检测业务用例分析其工作流程,由于目标检测主要分为目标搜索、截获和跟踪等功能,其活动图见图2。

图2 目标检测功能活动图

活动图对于业务用例图增加了限制或约束条件,来规定某一具体操作的使用条件和范围。例如,导引头进入搜索模式,首先装订初始化参数,而天线扫描和二进制积累检测是并行的,最后执行存储记录目标信息;截获模式中的所有操作都是按时间串行执行的;跟踪模式中的操作也分为串行和并行执行顺序。

3.3 系统用例建模

系统用例模型明确系统需求、范围和作用,是系统设计和开发的基础。用来描述用户所有的功能需求,但不考虑实现细节。系统用例建模中,活动图中的每一个动作都有可能成为系统用例;业务图中的业务执行者都可能是执行者。根据这两个原则图3给出目标检测功能的系统用例图。

图3 目标检测功能系统用例图

图3是雷达导引头软件中目标检测的系统用例图模型。在目标检测中,导引头有5个功能用例,分别表示导引头完成目标检测功能的几个不同的工作模式,即搜索模式、截获模式、跟踪模式、记忆跟踪模式和进入盲区。在搜索、截获和跟踪用例中又细分为若干子用例,代表了在这些模式中需要完成的子功能。例如,在搜索用例中要实现参数装订、天线扫描、二进制积累检测以及目标信息存储记录;截获用例中完成参数装订、目标匹配置天线和波门以及截获波门内确认目标;跟踪用例中完成参数装订、跟踪滤波、AGC控制、切换信号体制、六相时钟调整波门和跟踪测角等功能。

3.4 系统用例叙述

系统用例描述是针对每一个系统用例,分析其内部细节,编写成系统用例叙述。表1以搜索用例中的二进制积累检测为例给出其系统用例简述。

表1 系统用例叙述

系统用例简述主要由用例名称、用例编号、用例图、用例简述、主要流程和例外流程组成。主要流程和例外流程是对系统用例的详细设计描述,也是代码编写人员在编写代码时的主要依据。相比于传统方法的软件任务书只笼统的提出功能性要求,基于UML模型的系统用例以及简述不但详细并且准确描述出软件模块的具体功能,还可供项目管理者和编程人员正确的估算代码编写的工作量,合理的安排工作进度。

3.5 状态图建模

状态图是系统的动态建模,用来描述系统的工作状态以及引起状态转移的条件和规则。因此,状态图由若干状态以及引起状态转移的条件和规则组成。通过状态图可以了解系统在整个生命周期的运动轨迹[4]。图4为目标检测的状态图。

从图4可以看出,状态图给出了目标检测中搜索模式、截获模式、跟踪模式、忆跟踪模式和进入盲区5个工作状态是如何转移的。比如,雷达导引头在3次连续收到TZK指令后进入搜索模式;搜索到目标进入截获模式,截获模式截获到目标进入跟踪状态,否则回到搜索状态。

3.6 类图建模

类与对象是面向对象技术的基本元素,类是对本质相同一类事物的抽象。在UML中,类与对象模型用类图和对象图来表示,属于静态建模的范畴。

面向对象程序设计与常规面向过程程序设计的重要区别是对象(或类)的封装性。通过类(或对象)的这种封装的属性实现了对程序功能模块的封装,进而使整个程序做到“高内聚、低耦合”。正是这种特性使得软件设计部件化成为可能,程序开发人员利用已开发好的软件部件实现需要的功能,可以大大提高软件开发的继承性;另一方面,由于软件开发可以大量继承前期经过充分验证的软件部件,软件的可靠性无疑也会大幅度提高。

我们根据目标检测的状态图,通过分析每个状态的动作,最终确定完成这些动作需要构造哪些类。

图5中,我们构造了8个类:目标类、FPGA数据通讯类、伺服控制类、串口通讯类、导引头模式切换类、跟踪滤波类、AGC控制类和直流校正类。每个类都封装了自己的数据和操作。

3.7 序列图建模

仅利用类图,仍然难免有些操作无法预先想到,为此,需要进一步考察类的动态结构,即利用序列图考察程序执行时每一步骤需要执行的具体操作。序列图6通过描述对象之间发送消息的时间顺序显示对象之间的动态协作,重点是对象间消息传递的时间顺序。序列图有两个坐标轴,横坐标轴显示对象,纵坐标轴显示时间[5]。

根据静态类图和序列图可以进一步发现开发程序所需要使用的类,从而得到更完备的类图。

到此为止,代码编写人员可依据导引头系统的上述UML模型编写出源代码雏形。

4 结论

本文利用UML建模对雷达导引头系统进行面向对象的软件开发与设计,降低了软件开发难度,保证了软件质量,提高了软件的可维护性和继承性。目前,我们已成功将这项技术应用于某雷达导引头系统软件的开发中,在传统方法的1/4时间内完成了整个系统软件的设计和代码编写,并通过黑盒和白盒测试方法对程序模块进行了充分的测试,进一步提高整个软件系统的可靠性。下一步我们将逐步形成雷达导引头软件产品库,进一步提高代码复用性,同时将此技术推广至其它导引头项目的软件开发中。

[1]何春俐.建模语言UML的研究[J].机械管理开发,2010,25(1):177-178.

[2]邱郁慧.系统分析师UML实务手册[M].机械工业出版社,2008.

[3]王岩.基于UML的惯导软件需求分析,战术导弹控制技术[J].2011,28(2):22-26.

[4]黄金晶,李文俊.利用UML的面向对象分析建模[J].常州信息职业技术学院学报,2011,10(5):13-15.

[5]陆波,华祖耀.面向对象的软件工程与统一建模语言 UML[J].电脑开发与应用,2002,15(9):18-22.

猜你喜欢
用例导引头雷达
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
DLD-100C型雷达测试方法和应用
雷达
全极化雷达导引头抗干扰技术
基于空时二维随机辐射场的弹载雷达前视成像
半捷联雷达导引头视线角速度提取
现代“千里眼”——雷达
一种捷联式图像导引头的解耦算法
毫米波导引头预定回路改进单神经元控制