张永亮, 曹 雷, 潘明聪
(解放军理工大学指挥信息系统学院, 江苏 南京 210007)
构建科学合理的作战仿真模型资源,是当前我军开展作战模拟系统建设和作战仿真实验的迫切需求。作战模拟系统开发实践表明:在一体化建模思想指导下,通过规范建模过程和结果,构建可重用、易维护的模型资源库,以满足不同层次作战模拟系统的开发需要,已成为当前我军作战模拟与仿真实验领域亟待完成的一项前瞻性基础工程,这一过程将有力促进我军军事仿真模型标准化进程,具有广阔的应用前景。运用一体化建模方法构建作战仿真实体模型,既是从方法论的角度对一体化建模理论的进一步发展和深化,同时也是对我军仿真模型工程建设的积极探索与实践。
一体化建模方法强调各建模阶段遵循一定的建模规范,实现不同形态模型的平滑过渡,从而使军事概念模型与程序仿真模型之间可以互相转换。模型转换方式有3种:1) 技术开发人员利用自身专业知识完成对模型设计说明的人工转换,然后进行编码实现;2) 把模型框架与共有功能提取出来,形成模型开发向导,技术人员利用模型开发向导实现模型半自动转换;3) 充分利用前2种方法,定义模型间协议接口规范,把技术人员对模型的推理、转换与实现过程进一步抽象,描述成可以自动处理的“推理机”,实现军事概念模型到程序模型的自动转换。基于一体化建模技术开发作战仿真实体模型采用后2种模型转换方式实现,其总体思路分3步展开。
1) 以作战实体模型需求分析为牵引,运用面向实体的模板化概念建模方法完成对作战实体概念模型的格式化描述,进而运用基于统一建模语言(Unified Modeling Language,UML)的军事概念建模方法和规范化的建模工具,获取完备的、可读性强的“半形式化”军事概念模型资源,为概念模型向数学逻辑模型和程序组件模型转换创造条件。
2) 在面向实体的一体化建模方法规范下,分别从作战实体属性、行为和关系3要素出发,实现对作战实体概念模型的定量分析与描述,完成概念模型向数学逻辑模型的一致性转换。
3) 以面向对象的程序设计思想为指导,基于组件对象模型(Component Obiect Model,COM)的软件工程方法完成作战实体仿真模型组件开发。首先,依据实体需求模型,确定需要开发的若干功能模型组件;然后,完成功能组件的规划,实现组件接口的设计;最后,完成对仿真模型组件的测试和管理。作战仿真实体模型开发的总体思路如图1所示。
图1 基于一体化建模的作战仿真实体模型开发总体思路
目前,在需求分析阶段,可采用结构化的分析方法或用况驱动的分析方法[1]对开发系统的功能和目标需求进行分析。结构化的分析方法通过系统中的数据流动和系统的内部活动来对系统的功能进行分析,其缺点是:在需求分析的初期就必须深入过多内部的细节,这样反而对系统功能的分析不利,而且其整个建模策略与面向对象的建模思想相偏颇。而运用基于用况的需求分析方法来构建作战实体仿真模型的需求模型,其优势在于:1) 基于用况的实体模型需求描述为模型的用户需求(主要是功能需求)提供规范而准确的表达,有利于建模人员准确地理解模型需求,并进行互动式的模型开发;2) 该方法可以全面、详尽地描述出模型系统的功能需求,为建模人员提供准确的依据;3) 该方法与面向实体的建模方法都源于面向对象思想,符合人们的自然思维方式,军事人员与技术人员更易沟通与交流;4) 基于用况的需求描述支持工具环境,如Rational Rose、PlayCASE、StarUML等,都提供了用况图表示法,可以与基于UML的实体概念模型图(类图、顺序图等)有机衔接,便于实现对实体军事概念模型的形式化或半形式化描述。
为此,本文采用基于UML的用况图对模型功能需求进行描述,采用表格将模型需求的文字式描述与用况图描述进行整合,以完整表达实体的需求模型;然后,以表格的形式将模型的用况图与用况规约进行综合,形成规范化的需求模型文档。依据基于用况的需求建模表示法,只要对模型的参与者名称、用况(即模型应实现的功能)名称、用况图规约及用况图进行描述,就可以完整表达实体模型全部主要功能的需求内容。基于用况的作战仿真实体需求建模过程如图2所示。
图2 基于用况的作战仿真实体需求建模过程
作战实体一体化建模对概念建模的要求是:1) 采用面向实体的建模思想指导军事概念建模,以便达成建模人员之间理解问题的一致性;2) 运用系统工程的理论和方法规范化地描述和管理概念模型,确保提高概念模型质量的同时,促进概念模型的共享和重用;3) 基于通用的语义和语法(Common Semantics and Syntax, CSS)环境构建形式化或半形式化的概念模型,为实现一体化建模中的仿真模型正逆工程创造条件[2-4]。
借鉴“概念建模工程”思想和国内关于军事概念建模的研究成果[5-8],本文提出基于概念模型模板进行格式化描述和基于统一建模语言UML进行半形式化描述的2阶段概念建模思路。首先,技术人员依据作战实体概念模型属性、行为和关系3要素描述信息,以表格式模板引导军事人员完成对作战实体静态特征、动态行为和交互关系的格式化描述;然后,在此基础上以技术人员为主,以军事人员为辅,运用UML实现对实体概念模型半形式化表达。前一阶段主要完成对作战实体军事领域知识进行准确、完整和详尽的描述,以解决军事人员与技术人员之间沟通难的问题;后一阶段主要实现由格式化描述信息向UML模型图的转换,为作战实体概念模型的校验和仿真实现奠定基础。面向军事人员的作战仿真实体概念模型模板体系如图3所示。
图3 面向军事人员的作战仿真实体概念模型模板体系
在概念模型格式化描述过程中,作战使命空间在“使命—任务—行动”分解的基础上,可进一步对作战实体行为进行“动作—规则—数据”层层分解,即通过自顶而下的使命任务空间分解,从而得到需要的实体行为概念模型;按照“元动作—控制规则—支持数据”的描述方法描述作战实体行为,然后自底向上地对作战行为的元动作概念模型进行“封装”,可实现对实体行为的完整表达。作战实体的使命任务空间分解过程如图4所示。
图4 作战实体的使命任务空间分解过程
基于UML的作战实体概念模型半形式化描述,是利用UML把其格式化的实体概念模型信息从属性、行为和关系3个层面,以明确语义和规范化模型图予以表达。这一阶段不仅要实现基于UML来描述实体静态结构和动态行为信息,还需确保实体、任务、行为、交互等概念建模元素的格式化描述信息与UML模型图描述内容的一致性映射。目前,诸如IBM Rational Rose、StarUML等建模工具支持从基于UML的概念模型到软件代码的自动生成,极大地方便了工程技术人员的理解与使用。
为了弥补UML对概念模型动态行为内容描述的缺陷,实现模型间的要素信息转换不失真,目前主要有2种解决办法:1) 利用可执行UML(Executable UML);2) 将UML与对象约束语言(Object Constraint Language,OCL)相结合使用。从实践来看,比较可行的办法是利用形式化的OCL来弥补作战实体各阶段模型信息的缺失[9],使得基于UML的概念模型更精确和完备。采用OCL规约来描述模型额外的附加信息,可以通过程序生成工具把模型及规约提供的模型信息自动转换为源程序。作战仿真实体概念建模的基本过程如图5所示。
图5 作战仿真实体概念建模的基本过程
数学逻辑建模在面向实体的一体化建模中处于承上启下的位置,是实现概念模型向程序模型转换的关键环节,因而,无论是实现对概念模型的定量化描述,还是从数学模型到仿真模型的程序转换,都对其提出了规范的建模要求:1) 适应一体化建模中模型联动开发的需要,遵循面向实体的建模思想,实现数学模型与其他形态模型的有机衔接;2) 选择合理的算法和建模过程指导,以构建规范化的数学逻辑模型;3) 实现数学逻辑模型规范化的形式化表达,以缩短其与软件编程的距离。
为满足一体化建模中作战实体数学建模的要求,本文将从作战实体概念模型的构成要素出发,运用数学或逻辑表达方法描述作战实体的静态属性、动态行为及其关系。具体来看,实体概念模型的实体层包括实体分类、属性、行为分类和关系分类等描述信息,可以直接通过数据采集,定性变量与定量变量转化的方法,完成对实体静态属性描述信息的量化,而不需要相应算法的支持,其结果表现为一组便于程序设计人员对照编程的数据结构(输入数据);实体概念模型的行为层主要描述作战勤务活动、指挥决策活动和作战行动等,可以通过建立行动规则的逻辑流程图和相关算法来反映各元动作内容及元动作间的逻辑和时序关系;实体概念模型的关系层主要描述实体与其他实体间的静态和动态关系,供程序设计人员明确作战实体模型间的调用关系。
总体来看,作战实体数学逻辑模型可以有2种描述形式:1) 通过逻辑流程图的方式,对作战指挥决策和作战行动规则进行逻辑判断和推理,以反映整个作战活动的执行过程;2) 对实体行为元动作核心算法以数学解析式的形式予以描述,以反映元动作的内在变化规律。最终,将数学算法嵌入到描述相应实体行为的逻辑流程图中,完成对数学逻辑模型的一体化描述。遵循一体化建模中数学逻辑建模规范,所构建的作战实体数学逻辑模型如图6所示。
1) 实现基于用况的需求模型向基于UML的概念模型映射。这一过程可以分2步:一是遵循基于用况的需求分析思想,对作战实体模型需求进行分析与描述;二是从作战实体需求模型的用况图中找出该模型所涉及的模型参与者(即与之相关联的实体模型)和用况。
图6 基于一体化建模的作战实体数学逻辑模型
2) 在面向实体建模思想的指导下,从用况图和用况规约中找出相应实体类及行为,按照面向对象的建模思想,分别从实体的静态属性、动态行为及关系3个层次完成对实体的概念化描述。这一过程可以用基于UML的类图来描述需求模型中的若干实体类,用顺序图、活动图、交互图等行为图进一步完善和细化实体用况图,以反映其动态行为特征。利用军事概念建模软件平台,基于UML、IDEF(Intergrated computer aided manufacturing DEFinition)等知识描述形式[10],最终可以实现对实体模型的概念化表达,生成便于计算机存储和理解的数据格式,这是实现模型自动、半自动化转换的前提条件。从基于用况的需求模型到基于UML的概念模型的迭代开发过程如图7所示。
图7 从基于用况的需求模型到基于UML的概念模型的迭代开发过程
3) 实现从基于UML/OCL的实体概念模型图和模型规约向其逻辑数学模型转换。可单纯由数据结构描述的实体属性表就不必进行数学建模,可直接用于程序实现;实体行为概念模型可继续分解为更详细的逻辑流程,并通过确定各框图间的逻辑关系、各框图内部的局部算法以及模型的总体算法来定量表达。最终构建的作战实体数学逻辑模型可在数学逻辑建模软件平台和军事概念—数学逻辑模型转换工具的支持下,实现从概念模型数据向数学逻辑模型数据的映射和整合,从而方便其向程序代码的转换。
4) 按照模型一体化设计要求,将生成的程序源码按照COM组件技术规范和框架进行封装、集成,就形成了易于调用和管理的作战实体仿真模型组件资源。从概念模型和数学逻辑模型向程序组件模型转换,只有遵循规范的格式标准,才能确保其与程序模型的无缝连接,其关键原因在于不同形态模型的语法和语义存在着差异。在软件工程领域,UML已经成为事实的标准建模语言,诸如Rational Rose、PlayCase、Power Designer等开发工具都支持从基于UML的静态概念模型转换为多种程序语言(VC++、Java等)的源代码。为了确保异构模型数据之间进行互操作和集成,必须要将多种多样的知识表述形式和异构数据转换成统一的数据标准。目前,利用可扩展标记语言(eXtensible Markup Language,XML)作为数据交换与集成的数据标准,已成为大多数模型开发者实现模型之间数据交换的选择[11]。
一体化建模的逆向工程主要任务是实现模型从仿真模型向可视化概念模型转换,旨在帮助开发人员在迭代式的模型开发中不断提高模型可信度,同时为模型校验提供方法手段。为了满足一体化建模过程中模型信息逆向转换的需要,本文从以下2个方面进行技术准备。
1) 在面向对象思想的指导下,运用面向实体的一体化建模方法实现对作战仿真实体模型的开发,实现问题空间与模型空间的一致性映射。面向实体的建模方法遵循面向对象的建模思想,使用了与问题域一致的概念、词汇与原则,分别从实体属性、行为和关系3个层次实现从需求模型到程序模型的映射,这种一致性将保持到模型设计、编程、测试及维护等各个阶段。在Rational Rose建模工具及Soda等附属工具的支持下,可以实现基于UML的概念模型与程序模型间的自动、半自动化的转换。在模型测试和校验过程中,以类的概念为中心,利用继承、关联等关系所提供的信息,可以发现程序仿真模型与概念模型不一致的错误,而且当程序中发现错误时,可以逆向追踪到概念模型和问题域。
2) 在作战实体模板化概念建模过程中,分别对作战实体概念模型模板体系中的3层10类模型模板描述信息设置相应的编码。作战仿真实体概念模型描述信息编码体系如图8所示,可以看出:其概念模型通过模型编码信息间的继承和聚合关系,分别从属性、行为和关系3个层面对概念模型要素每一项模型描述信息进行唯一标志。在面向对象的程序设计过程中,只要将概念模型的编码信息作为其在联合作战仿真模型资源库的定位标签,就可以实现模型程序源码与概念模型描述信息的相互映射,为模型逆向转换提供技术支持。这种模型描述思想与面向对象的程序设计理念是一致的。
图8 作战仿真实体概念模型描述信息编码体系
目前,面向实体的一体化建模技术在军事仿真领域的应用还处于从理论到实践的过渡阶段,距离指导工程应用还有一定的差距,主要体现在:1) 一体化建模基础理论中的建模规范、建模过程还未达成共识;2) 主要建模环节的转换技术还有待攻克,即如何建立模型与代码之间的映射机制,实现军事概念模型与仿真模型的有机衔接和相互转换。因而,本文通过研究作战仿真实体模型的一体化建模过程,旨在探索指导作战仿真模型一体化建模的工程方法,进一步完善一体化建模理论体系。
参考文献:
[1] Jacobson I. Object-oriented Software Engineering: A Use Case Driven Approach [M]. New York: Addison-Wesley Professional, 1992.
[2] 黄俊领, 谭东风, 张向波. 军事仿真概念模型开发研究[J]. 计算机仿真, 2005, 22(2): 15-18.
[3] 吴永波,沙基昌,谭东风. 基于本体的两阶段任务空间概念模型开发方法[J]. 国防科技大学学报, 2005, 27(6): 120-125.
[4] OMG. Unified Modeling Language Specification, Version 1.5 [EB/OL]. (2003-03-01)[2013-10-21]. http://wwwoma.ore/
[5] 谢卫平, 邓苏, 谭东风, 等. 概念模型工程研究[J]. 计算机仿真, 2003, 20(2): 120-122, 125.
[6] 汪文元, 沙基昌, 谭东风. 基于概念模型工程的工作流建模研究[J]. 计算机工程与科学, 2006, 28(1):139-142.
[7] 郑娟, 冯书兴, 曹裕华. 军事概念模型分阶段分层次开发过程研究[J]. 计算机仿真, 2007, 24(7): 9-12, 129.
[8] 胡斌, 常青. 军事概念模型建模实践分析与研究[J]. 系统仿真学报, 2008, 22(12): 3085-3088.
[9] 邵维忠, 杨芙清. 面向对象的系统分析[M].2版. 北京: 清华大学出版社, 2007.
[10] 王杏林, 曹晓东. 概念建模[M]. 北京: 国防工业出版社, 2007.
[11] Laurent S S. XML基础教程[M].2版. 康晓林, 伊希荣, 陈维义, 等译.北京: 电子工业出版社, 2000.