王 桐 杨 萍 赵海龙 欧阳海波 徐子斌
(第二炮兵工程学院 西安 710025)
模型库具有要素多、规模大、结构复杂、功能综合等特点,模型库里的模型能够对许多问题进行分析、预测、评价和优化,建立导弹作战模型库可以大规模地将仿真模型资源合理的组织、存储、管理起来,最终实现模型的重用,减少仿真开发中人力、物力、财力和时间的重复支出,加快开发速度,提高开发效益[1~3]。
UML(Unified Modeling Language,统一建模语言)是概念建模的重要工具,也是一种面向对象的语言[4],它统一了面向对象的基本概念、术语、图形符号,为人们建立了便于交流的共同语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档[5]。作为一种通用的图形建模语言,UML的最大优点在于用户能很快掌握该方法并应用到实践中去,它的使用能够为导弹作战模型库仿真开发提供强大的支持作用[6]。
导弹作战模型库需要满足两方面的需求,分别是用户和管理员。用户需要模型库能够方便用户查询模型,并且能够返回可视化的评估结果,甚至可以提供仿真视图,增加模型的表达能力和可信性;在模型运行时,可以被用户控制,增加用户与模型库的交互性[7]。而管理员需要能够方便对模型库进行静态管理和动态管理,即模型的增添、删除、修改、查询和模型的调用、组合、生成、匹配等。
这些需求要求导弹作战模型库必须对库内模型本身进行合理的、标准化的设计,采用面向对象的思想及方法构建模型,提取对象中的共同特征形成类,加强导弹作战模型的重用性、通用性、互操作性、建模效率,以适应使用、维护的需求,增加项目发起人和开发者之间的交互行为,提高仿真开发效率,节省人力、物力、财力[8~9]。
导弹作战模型库的静态结构主要由类图表示,类图是面向对象的核心技术。按照面向对象的方法可以将导弹作战模型元素划分为实体类(Entity-Class)、战 场 环 境 类 (BattlefieldClass)、通 信 类(CorrespondenceClass)、过程类(ProcessClass)、方法类(MethodClass)、作战效果类(EffectClass)。
2.2.1 实体类(EntityClass)
实体类是类图中最为关键的部分,它是所有实体模型的集中体现,它包括指挥实体、装备实体和信息实体三个子类,子类继承了父类的实体名称、交互名称、实体数量、实体行为、位置等属性以及和其它模块的交互操作。指挥类又有自身的能力、信息列表、行动列表、状态、数据等属性和分析、决策等操作;装备类又包括与指挥类机理不同的能力、ID角色、状态、数据等属性和行动等操作;信息类包括信息ID、任务、信息类型、数据列表等属性和行动等操作。同时,实体类的三个子类能够经过聚合形成聚合类实体,聚合实体还能够继续聚合,而生成的聚合类实体具有新的功能与属性。如图1所示。
图1 实体类图
2.2.2 战场环境类(BattlefieldClass)
战场环境类主要用于对战场环境的分析,为指挥实体决策提供外部信息支持,它包括自然环境类和作战环境类两个子类,子类继承了父类环境名称、数据列表等属性以及数据交换的操作。同时,自然环境类和作战环境类包含了相关属性和相应的模型调用操作。
2.2.3 通信类(CorrespondenceClass)
通信类主要用于解决导弹作战中对象实体间的通信行为,它包括通信协议、通信交互和通信链路三个子类,子类继承了父类通信名称、参数集等属性及其数据传输的操作。通信协议类包含了交互格式、交互时间、要求列表等属性和提交协议的操作;通信链路类包含了延迟时间、误差、传输消耗等属性和对延迟时间的处理的操作;通信交互类包含了发送实体、接收实体、交互方式等属性和信息交互操作。当接收到发送实体命令后,通信交互类按照通信协议将信息无衰减的及时传送给接收实体。
2.2.4 过程类(ProcessClass)
过程类用于对认知和行动过程进行描述,它包括认知过程和行动过程两个子类,子类继承了父类过程类型、操作序列、动作集、前件和后件条件等属性和运行模型的操作。认知过程类包含了知识和算法类型的属性和认知分析的操作;行动过程类包含了装备ID、行动名称等属性和作战行动的操作。
2.2.5 方法类(MethodClass)
方法类是指在认知时所采取的方法的集合,它具有方法名称、输入输出数据列表等属性和运行模型、返回结果两个操作,包括算法类和知识类两个子类。
2.2.6 作战效果类(EffectClass)
作战效果类用于对用户展示结果,它包括效能评估类和可视化仿真类。父类的属性包括接收到的数据、运用算法和知识的类型等;效能评估类和可视化仿真类的属性分别是评估名称和仿真的名称以及各自的输入输出列表,操作分别是评估和仿真。
当用户调用模型时,模型库内不一定遍历每一类,要根据具体条件和模型所需调用相应的类或组件。
系统的动态结构设计主要体现在协作图上,协作图能够梳理模型各部分之间的协作关系,较好地分析和解释了系统的动态情况,如图2所示。1)表示装备实体聚合;2)示信息实体聚合;3)表示指挥实体聚合或决策;4)表示聚合实体继续聚合;5)表示返回;6)表示返回;7)表示返回;8)表示返回;9)表示调用自然模型;10)表示返回结果;11)表示调用战场环境模型;12)表示返回结果;13)表示指挥实体分析;14)表示返回分析结果;15)表示调用算法模型;16)表示返回结果;17)表示调用知识模型;18)表示返回结果;19)表示作战行动;20)表示反馈信息;21)表示制定通信协议;22)表示调整误差;23)表示发送消息;24)表示接收消息;25)表示调用过程信息;26)表示返回;27)表示调用相关数据;28)表示可视化仿真;29)表示运用算法;30)表示返回;31)表示运用知识;32)表示返回;33)表示调用相关数据;34)表示进行效能评估。
图2 导弹作战模型库协作图
由以上分析可知,UML是一种通用的、有效的、面向对象的概念建模方法[11],通过图形的描述,全面、细致地勾勒出导弹作战模型库的雏形,增进了发起人与开发者之间的交互,对后续的仿真开发起到了至关重要的作用。实践表明,UML的应用较大幅度地提高了导弹作战模型库仿真开发的进度与质量,为模型库的有效使用奠定了基础,也为模型库的重用与升级打下了夯实的基础。
[1]解本巨,李晓娜,宫生文.UML与Rational Rose 2003从入门到精通[M].北京:电子工业出版社,2010
[2]毕义明,刘伟,刘良.军事建模与仿真[M].北京:国防工业出版社,2009
[3]高洪深.决策支持系统(DSS)理论、方法、案例[M].第二版.北京:清华大学出版社,2000
[4]严悍,刘冬梅,赵学龙.UML2软件建模:概念、规则与方法[M].北京:国防工业出版社,2009
[5]周峰,周德云.基于UML的防空导弹武器系统效能评估[J].系统仿真学报,2006,18(5):1089~1092
[6]齐照辉,等.基于UML的导弹攻防仿真系统设计及实现[J].系统仿真学报,2006,18(3):602~603,606
[7]韩钧,等.地面防空作战模型库管理系统UML建模研究[J].火力与指挥控制,2009,34(7):28~31
[8]张龙祥.UML与系统分析设计[M].北京:人民邮电出版社,2001
[9]邵维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,1998
[10]刘向阳,杜晓明,严凤斌.基于UML的装备指挥概念模型研究[J].计算机与数字工程,2011,39(1)
[11]郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社,1999