基于模型驱动设计方法的雷达仿真系统实现
2013-04-25薛平贞
曹 雷,薛平贞
(西北机电工程研究所2室,陕西 咸阳712099)
在某装备系统研发中,根据项目研制需求,需建立雷达仿真系统。该仿真系统在装备中既可单独工作,又可以与其他节点单元协同工作;能为装备系统的调试提供信号源,同时接收显示装备系统中与雷达有关的命令数据,从而为装备的研制提供调试与验证平台。
雷达仿真系统在开发过程中采用基于模型驱动的设计方法,对系统进行抽象建模,主要创建了包括功能需求模型、工作流程模型、逻辑结构模型以及系统运行交互模型等,建模语言采用UML2.0[1-2]。通过将系统设计的模型化,使得系统在开发过程中设计人员、程序员以及软件测试人员能够在模型的基础上进行直观的沟通交流,最终指导并规范系统的实现与测试。
1 建模环境
Rhapsody是一种遵循UML2.0标准基于模型驱动的(Model-Driven Development,MDD)软件开发平台[3],其专门针对嵌入式操作系统设计,实现了嵌入式操作系统下基于UML2.0可视化建模的应用程序开发。
Rhapsody通过将系统开发过程中的各个层次、结构完全模型化,并能够贯穿系统设计、软件开发以及软件测试等各个环节。有助于优化系统及产品的规格说明、设计、开发、记录以及测试过程。从而使系统工程师和软件设计人员更好地进行协作,以更快的速度交付高质量的系统。
2 系统建模
雷达仿真系统在Rhapsody开发环境中对进行系统建模[4],其主要步骤分为:(1)对系统进行功能需求分析,建立功能需求模型。(2)针对需求模型,明确系统的具体工作流程,构建系统工作流程模型。(3)建立系统的逻辑结构模型,包括类与类图[5]。(4)为表征系统各组成部分之间重要活动时的交互关系,建立系统运作模型。(5)根据第(2)步和第(4)步建立的活动图和顺序图,构建系统状态模型。
2.1 系统功能需求模型
雷达仿真系统包括搜索雷达仿真和跟踪雷达仿真两部分。搜索雷达仿真功能模拟搜索雷达的工作状态、航路、点迹与干扰源数据和故障信息等信号量,并依据通信协议要求进行数据传输。跟踪雷达仿真功能模拟跟踪雷达的工作状态、跟踪数据和故障信息等信号量,并依据通信协议要求进行实时传输。此外,通过对系统的功能需求分析,在Rhapsody中建立相应的功能需求模型并使用用例图表示,具体如图1所示。
图1 系统用例图
在用例图中,外部角色包括:操作者、网络、一层CAN、二层CAN。系统主要包含10个用例,分别是:航路数据显示、PPI画面显示、数据处理、网络数据收发、仿真控制、CAN数据收发、工作状态设置、故障信息设置、航路点迹参数设置以及GUI操作。图中外部角色与具体用例之间由关联线连接,表示二者之间有通信关系。外部角色、用例和关联线共同组成了系统的需求模型。
2.2 系统工作流程模型
若是用例图表征了系统的功能,则系统工作流程模型则指明系统将如何实现其功能,活动图显示了链接在一起的动作(action),代表系统中发生的流程。根据上文建立的系统功能需求模型,概括得出系统活动图如图2所示,“●”代表活动起点;“”代表活动终点;“◇”代表条件判定点。
图2 系统工作活动图
2.3 系统逻辑结构模型
根据系统用例图,将系统逻辑结构从顶层划分为3个模块,分别为界面显示与操作处理模块(itsGUI)、底层通信处理模块(itsCANPro)和GUI与底层的接口对象模块(itsDI),建立系统逻辑结构模型如图3所示,图4~图6分别是图3中对象itsGUI、itsCANPro和itsDI的基类模型图;图3中符号“:”后的名称为对象的类型名称,对象之间的连接(Link)表示两个对象具有相互调用关系,带箭头的线则代表单向调用关系。
图3 系统顶层对象模型图
图4 cl_RadarGUI组成模型图
图5 cl_CANPRO组成模型图
图6 itsDI组成模型图
2.4 系统运作模型
为表达系统各用例之间的交互次序,即执行特定用例时,会发生哪些交互,以及这些交互以何种次序发生,需建立系统运作模型,在UML中使用系统工作顺序图表示。以系统功能需求模型中的航路点迹参数设置、数据处理及CAN总线数据收发3个用例交互关系为例,设计系统工作顺序图如图7所示。
图7 航路点迹参数设置的系统工作顺序图
2.5 对象状态模型
依据各对象的建模结果,以下对各对象的基类属性和操作进行具体实现。在实现各对象功能的基类中采用了事件触发有限状态机之间自动进行转移来管理对象生命周期中的所有活动,由此各对象间以及对象内部之间的动态交互流程更为清晰,增进了程序的可读性。这里只给出顶层设计中对象itsGUI和itsCANPro的功能实现状态图,分别如图8和图9所示。
2.6 系统运行
经多次调试验证,雷达仿真系统的设计达到了研制要求,最终系统主界面运行效果如图10所示。
图8 cl_RadarGUI状态图
图9 cl_CANPRO状态图
图10 雷达仿真系统运行界面
3 结束语
在雷达仿真系统的开发中通过运用基于模型驱动的设计方法,对系统开发中的各个阶段进行建模,能够达到简化系统设计与维护,使系统更容易被理解、开发和测试的目的。另外将系统的开发重点放到顶层的功能分解、结构划分、行为分析和需求规范上,从而提高了系统的可靠性,缩短了项目研制时间。目前该雷达仿真系统已完成验收,并应用于后续自行武器系统的研制和调试之中。
[1]GRADYBOOCH,JAMES R,IVAR J.Unified modeling language user guide(2ndE2dition)[M].New York:Addison-Wesley Professional,2005.
[2]DOUGLASS,BRUCE P.Doing hard time:developing realtime systems with UML,ob2jects,frameworks,and patterns[M].New York:Addison-Wesley,1999.
[3] 王飞.基于模型驱动架构的仿真系统设计与实现[D].北京:北京邮电大学,2007.
[4] 李卉,钟成,黄先锋,等.集成激光雷达数据和遥感影像的立交桥自动检测方法[J].测绘学报,2012,41(3):428-433.
[5] 李禹,计科锋,粟毅.合成孔径雷达图像分割技术综述[J].宇航学报,2008,29(2):407-412.
[6] 王沛.一种基于XML的异构数据库数据转换方法[J].西安邮电学院学报,2011,16(3):73-76.
[7] 芮新芳.XML与数据库的信息交互[J].西安邮电学院学报,2005,10(1):85-88.