本站小编为你精心准备了雷达导引头系统软件工程化的实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
UML原理简述
在软件系统开发过程中主要应用到CIM(ComputationIndependentMod-el)和PIM(PlatformIndependentModel)阶段的UML模型,CIM聚焦于软件系统外部需求及功能,不涉及软件系统的结构和细节,属于概要设计阶段;PIM聚焦于软件系统的内部细节但不涉及系统的具体平台,属于详细设计阶段。具体包括以下七个步骤: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的七个系统模型始终贯穿于软件开发的整个过程中,从需求分析、设计、实现直至最后的系统测试及维护。
基于UML的软件系统建模
本文采用RationalRose软件工具按照UML的七个建模步骤对雷达导引头系统软件进行建模。
1业务用例建模
利用UML模型进行面向对象的软件开发中,通常采用业务用例模型来捕获用户最顶层的功能需求。通过对雷达导引头系统软件需求描述的划分,对于外部导弹总体来说,雷达导引头的主要功能可以划分为三类:开机自检功能、干扰检测功能和目标检测功能。其中,完成每个功能的参与者均为雷达导引头。图1为导引头系统的业务用例模型。开机自检是需要雷达导引头判断自身是否有故障;干扰检测是要求雷达导引头能够判断外部是否存在有源干扰;目标检测要求雷达导引头能够完成目标的搜索、截获和跟踪并输出指导信息。由于目标检测功能是雷达导引头工作的主要功能,下面我们以目标检测为例来讲述如何利用UML对雷达导引头系统软件建模。
2活动图建模
活动图是每个业务用例的逻辑过程。一个业务用例可以映射到多个活动,一个活动图也可以被多个用例使用。活动图很类似软件的流程图,但流程图描述的是具体的程序设计,而活动图是概念级的。活动图还可以表示并行的动作,由于是概念级的控制流设计,所以活动图没有流程图的循环结构。下面针对目标检测业务用例分析其工作流程,由于目标检测主要分为目标搜索、截获和跟踪等功能,其活动图见图2。活动图对于业务用例图增加了限制或约束条件,来规定某一具体操作的使用条件和范围。例如,导引头进入搜索模式,首先装订初始化参数,而天线扫描和二进制积累检测是并行的,最后执行存储记录目标信息;截获模式中的所有操作都是按时间串行执行的;跟踪模式中的操作也分为串行和并行执行顺序。
3系统用例建模
系统用例模型明确系统需求、范围和作用,是系统设计和开发的基础。用来描述用户所有的功能需求,但不考虑实现细节。系统用例建模中,活动图中的每一个动作都有可能成为系统用例;业务图中的业务执行者都可能是执行者。根据这两个原则图3给出目标检测功能的系统用例图。图3是雷达导引头软件中目标检测的系统用例图模型。在目标检测中,导引头有5个功能用例,分别表示导引头完成目标检测功能的几个不同的工作模式,即搜索模式、截获模式、跟踪模式、记忆跟踪模式和进入盲区。在搜索、截获和跟踪用例中又细分为若干子用例,代表了在这些模式中需要完成的子功能。例如,在搜索用例中要实现参数装订、天线扫描、二进制积累检测以及目标信息存储记录;截获用例中完成参数装订、目标匹配置天线和波门以及截获波门内确认目标;跟踪用例中完成参数装订、跟踪滤波、AGC控制、切换信号体制、六相时钟调整波门和跟踪测角等功能。
4系统用例叙述
系统用例描述是针对每一个系统用例,分析其内部细节,编写成系统用例叙述。表1以搜索用例中的二进制积累检测为例给出其系统用例简述。系统用例简述主要由用例名称、用例编号、用例图、用例简述、主要流程和例外流程组成。主要流程和例外流程是对系统用例的详细设计描述,也是代码编写人员在编写代码时的主要依据。相比于传统方法的软件任务书只笼统的提出功能性要求,基于UML模型的系统用例以及简述不但详细并且准确描述出软件模块的具体功能,还可供项目管理者和编程人员正确的估算代码编写的工作量,合理的安排工作进度。
5状态图建模
状态图是系统的动态建模,用来描述系统的工作状态以及引起状态转移的条件和规则。因此,状态图由若干状态以及引起状态转移的条件和规则组成。通过状态图可以了解系统在整个生命周期的运动轨迹。图4为目标检测的状态图。从图4可以看出,状态图给出了目标检测中搜索模式、截获模式、跟踪模式、忆跟踪模式和进入盲区5个工作状态是如何转移的。比如,雷达导引头在3次连续收到TZK指令后进入搜索模式;搜索到目标进入截获模式,截获模式截获到目标进入跟踪状态,否则回到搜索状态。
6类图建模
类与对象是面向对象技术的基本元素,类是对本质相同一类事物的抽象。在UML中,类与对象模型用类图和对象图来表示,属于静态建模的范畴。面向对象程序设计与常规面向过程程序设计的重要区别是对象(或类)的封装性。通过类(或对象)的这种封装的属性实现了对程序功能模块的封装,进而使整个程序做到“高内聚、低耦合”。正是这种特性使得软件设计部件化成为可能,程序开发人员利用已开发好的软件部件实现需要的功能,可以大大提高软件开发的继承性;另一方面,由于软件开发可以大量继承前期经过充分验证的软件部件,软件的可靠性无疑也会大幅度提高。我们根据目标检测的状态图,通过分析每个状态的动作,最终确定完成这些动作需要构造哪些类。图5中,我们构造了8个类:目标类、FPGA数据通讯类、伺服控制类、串口通讯类、导引头模式切换类、跟踪滤波类、AGC控制类和直流校正类。每个类都封装了自己的数据和操作。
7序列图建模
仅利用类图,仍然难免有些操作无法预先想到,为此,需要进一步考察类的动态结构,即利用序列图考察程序执行时每一步骤需要执行的具体操作。序列图6通过描述对象之间发送消息的时间顺序显示对象之间的动态协作,重点是对象间消息传递的时间顺序。序列图有两个坐标轴,横坐标轴显示对象,纵坐标轴显示时间。根据静态类图和序列图可以进一步发现开发程序所需要使用的类,从而得到更完备的类图。到此为止,代码编写人员可依据导引头系统的上述UML模型编写出源代码雏形。
结论
本文利用UML建模对雷达导引头系统进行面向对象的软件开发与设计,降低了软件开发难度,保证了软件质量,提高了软件的可维护性和继承性。目前,我们已成功将这项技术应用于某雷达导引头系统软件的开发中,在传统方法的1/4时间内完成了整个系统软件的设计和代码编写,并通过黑盒和白盒测试方法对程序模块进行了充分的测试,进一步提高整个软件系统的可靠性。下一步我们将逐步形成雷达导引头软件产品库,进一步提高代码复用性,同时将此技术推广至其它导引头项目的软件开发中。
作者:刘婷张江华聂强李依林单位:西安电子工程研究所