文摘

软件架构是一种架构或基础设施旨在使软件组件的集成和互操作。特殊类型的软件框架是那些专门用于支持的复合模型或仿真系统中的其他组件。这种框架的目的是简化装配的过程,一个复杂的模型或仿真系统从简单的组件模型以及促进重用的组件模型。几种不同类型的软件框架模型组成设计和实现;这些类型包括公共图书馆、产品线体系结构、互操作性协议,对象模型,正式的、和综合环境。不同的类型有不同的组件框架,流程组合模型和应用程序。在这个调查软件框架模型的基本术语和概念组成,不同类型的框架解释和比较,和重要的每种类型的例子。

1。介绍

软件架构是一种架构或基础设施旨在支持和启用软件组件的集成和互操作。它可能由概念、技术、工具、协议、标准、控制机制、接口、和过程旨在使快速、高效和柔性装配系统的组件在实际环境中。这里我们关注一个子类的软件框架,特别是那些软件框架的组件是实现模型,例如,一个模型对轮式车辆运动的地形影响,或nonmodel支持组件,例如,地图显示用户界面,和框架旨在支持那些模型的构成和支持组件到更复杂的模型和仿真系统。为简便起见,此类软件框架专门设计用于支持模型和仿真支持组件的组合和集成将称为仿真框架或者当意思很清楚简单的作为框架

本文的范围是仿真框架模型组成。它的目的是审查这样的框架,包括他们的理论特征和功能和在实践中实现和使用。为此,本文既教程和文献调查。作为一个教程,它解释了基本的背景和定义重要术语和提供了一个仿真的分类方案框架类型。文献调查,它引用的研究和总结了出版物和专业文献。在论文的方法的一个重要组成部分,几个现有的软件框架,开发了支持模型组成进行了较为详细的描述。

本文的结构如下。部分2介绍了背景材料,包括上下文和关键定义。部分3定义了类别或类型的仿真框架。部分4描述不同的仿真框架类型的重要例子。部分5提供了一个概述论文的结论和建议。

2。背景

本节介绍的基本背景信息调查了解软件框架。提出了一系列重要的术语定义相关的仿真框架和组件,并使用这些定义将软件框架模型的概念组成的相关思想和技术。软件组件的本质这样一个框架内也进行了讨论。

2.1。定义和上下文

开始,几个仿真框架和组件相关的重要术语定义和解释道。给出的定义不是按字母顺序排列,通常是传统的词典,但在订单旨在使读者理解定义每个构建和取决于前面的定义。

软件重用。软件重用是指使用之前开发的单位,包,或模块的软件不止一次,它最初开发的目的或为新的目标或在一个新的环境。软件重用可以节省时间、精力或开发或测试的成本。如果软件重用是一个模型,再利用可能增加新的应用程序如果软件的可信度进行了验证,验证和认证为其先前的使用(1,2]。

组件。组件的概念是基本的通用软件重用。多个组件的定义可以从软件重用文学;选定的例子包括以下。(1)一个可执行的单元或源代码可供重用(3]。(2)一个可重用的软件包或模块封装了一组相关的功能和与其他组件通信通过一个接口(4]。(3)封装单位软件与一个已知的输入和预期的输出行为的实现细节可能被隐藏或未知;系统的一个可互换的元素,符合规范5]。我们的重点在本文软件框架专门为仿真软件,仿真框架。在模拟框架,一个组件是一种软件组件,所有的属性,但它也可能额外simulation-specific属性。组件可能是一个模型能够模拟全部或部分感兴趣的一些真实世界的系统,比如飞机飞行动力学的基于物理模型,或者它可能有功能具体仿真实现,比如未来的事件列表中一个离散事件仿真。以下,组件将引用组件,而模型组件将引用的组件模型和实现全部或部分仿真组件而不是一个模型组件实现一些simulation-specific支持功能。

框架。软件架构是一种架构或基础设施旨在支持和启用软件组件的集成和互操作。开发的基本想法是,组件兼容的和一致的框架可能结合,连接,和组成的框架内,这些成分可能更容易组装和正确操作的可能性比可能没有框架。软件框架的定义在文献的范围从非常通用的,例如,“一组相互作用的对象,在一起,实现一组函数”(3很具体,例如,“一个子系统包含抽象和具体类型和类设计重用”(6]。在大多数定义的关键概念是组件定义为单位集成,支持他们的集成和互操作的机制和不同的组件可以组合在不同的时间。一些框架强调组件的定义,而另一些强调连接组件的机制;在一个有效的框架中都是至关重要的。图1抽象地说明的概念框架;它显示一组抽象组件,选择从一个更大的组可用的组件存储在一个组件库连接和交互通过提供的结构和功能框架。

可组合性和组成。可组合性的能力选择和装配仿真组件在各种组合成有效的仿真系统来满足特定用户的需求(7]。可组合性的定义特征是不同的仿真系统可以以多种方式组成,每个适合一些截然不同的目的,不同的成分可能会有效地有效。可组合性的早期理论研究解决的问题,当一个模型可以由与其他模型,如果组成,由此产生的成分是否有效(8,9]。同样,结构和可能出现的数值不一致在编写组件,实现基于物理模型基于微分方程已经检查(10]。更直接相关的仿真框架,旨在努力已确定的实际实现的可组合性(11](部分本文使用概念和术语介绍(11])。

鉴于这种可组合性的定义,组成(动词)是选择的过程或者性能和装配组件来执行。如何选择和组装的组件将取决于它们是由框架内。选择组件的细节更依赖框架的图书馆,并组装的细节更依赖框架的实现机制。都将在本调查中讨论。作文(名词)指的是一套组件,生产已经由一个集成或可互操作的整个(在某些情况下,短语,如“组组件”或“组成组件”将使用而不是简单地“构成”作为一个名词。条款是同义词)。

标准。一个标准的定义是一个公认的惯例或要求或规定或某些方面的技术系统。这些标准通常体现为正式和受到控制文档指定了一致的工程或技术标准,方法,过程或实践。的标准可能会被认为是法律上的刚刚描述的正式定义,事实上的时,存在一个特定的产品,格式,或表示变得无处不在,人类的主导,它不使用会导致重大问题或专有的,所拥有和控制的标准(比如实体商业组织(12]。模拟标准是适用于模拟这些标准,是否软件开发实践,模拟的数据定义,或者其他方面。摘要特殊利益的分布式仿真互操作协议,包括分布式交互仿真(DIS) [13),高级体系结构(HLA) [14),并测试和培训支持体系结构(TENA) [15)),它可以被理解为两个标准和框架。

决议。在描述一个模型时,分辨率被定义为“细节的程度与现实世界的模拟”(16]。在描述一个组件时,决议表示组件的大小不是字节或行代码,而是用提供的范围或程度上的功能组件。小组件有一个狭窄和有限的功能和可能有用只有当结合其他组件,例如,一个随机数生成器,而一个大型组件可能有一个广泛的和广泛的功能和可能是独立操作的能力,即使没有其他组件,例如,半自动的部队系统(17)(以下简称,我们将使用术语“小”和“大”来描述组件有意义的定义,即,组件的功能范围,而不是它的大小以字节为单位)。成功的组件,也就是说,那些重用,可以是任意大小。不同大小的构成组件定义了不同级别的可组合性(7]。

图书馆。在框架的背景下,图书馆是一个可重用的组件的集合。图书馆是接受意识到作为一个系统,商店,提供可重用的组件。配置管理的问题(控制和跟踪更改组件)和发现(使潜在用户组件定位和评估组件的重用)是重要的在软件库中,但这个调查的范围之外。图书馆可以存储其他构件除了组件,如元数据、数据或文档。使用一系列密切相关的条款,例如,目录(专门商店发现元数据),注册表(专门存储元数据模式),存储库(可能包含组件独立开发和互操作之前没有意图),和仓库存储系统(通用)(1),但这些术语之间的区别将不需要在这个调查。

配备这些定义,这个调查的主题可以放在上下文中,如图2。图中“可组合性”和“重用”所需的功能,和“框架”和“标准”技术,有助于实现这些功能。技术的机制和目标相互支持、相互支持的带有标签的箭头表示;箭头的方向表示“从“技术或能力支持或允许”到“技术或能力。

2.2。组件的特点

在模拟框架,模型组件通常大于单个模型的特定于域的对象但仍足够小,局限于一个领域的专业技能。当然,并不是所有的组件模型组件;可以提供一些支持仿真系统的基础设施,比如网络接口组件或一个事件队列组件。确定组件的大小或功能不服从规则适用于所有情况,但“满足用户需求”条款内的可组合性的定义提供了一个指导方针;组件应该功能是有用的潜在用户作为一个单元,既不能太小,也不能太大。的标准,确定必然依赖于应用程序。

可组合的初始开发组件往往比一个noncomposable更加困难,但后续的开发变得更加容易使用之前开发的组件。导致了额外的初始工作是需要文档模型的假设和有效性限制更仔细地在一个可组合组件。建模实践已经被认为是积极的,如使用参数而不是常数,记录好,检查输入的有效性限制,实现追求清晰,尤其是有益的发展体现了这些模型的可组合组件。不那么明显,可组合性支持良好的建模实践的需要,例如,要求由可组合性文档模型的假设和限制的有效性将有助于modeler更仔细地考虑他/她的模型开始。

组件与其他组件可以集成和使用只有通过定义良好的接口。组件接口应该定义“…一组属性、方法和事件,外部实体可以通过连接到使用组件”(18]。在某些情况下,组件会定制方面,可以在运行时通过修改接口。

结构化的描述或规格的组件(有时称为元数据和元模型)可以用来指导选择组件的过程为一个特定的目的和确定一组组件可以由(5]。组件的规范(元数据)应该包括详细的组件的接口(s)和模型(s)。

在实践中,通常认为,任何模型组件被放置在一个存储库是有效的,至少在边界表示的组件规范。组件的有效性约束是限制或范围内与组件的模型被认为是有效的,可以定义在一个低水平的物理参数值,时间步大小,等等,或者在一个高水平的有效的应用程序组件。即便如此,它已经表明,单个组件的有效性并不意味着他们的组合可以认为是有效的8]。验证组合可以使用传统的验证方法,如比较组合输出数据和基线数据(19),也可以利用组合的组件结构,如自动为每个组件比较有效的域与数据接收从其他组件组成。

3所示。框架类型

几种不同类型的软件框架模型组合开发。的机制用于实现一个框架可能不同;它们包括规则、协议、标准编程语言结构(例如,类和类型层次结构)、接口定义和实现(例如,应用程序编程接口),数据翻译和转换器,和数据传输工具。这些不同的机制可能是一起使用在一个广泛的组合生成一个框架。此外,不同的框架类型也不同组件的形式和决议框架旨在连接。有些框架设计为小部件,而其他人则为大组件设计。(这里“小”和“大”作为前面定义对分辨率)。由于这种变化机制和设计意图,许多不同类型的框架已经开发和使用在社区内的从业者建模与仿真。每提供一个机制来连接组件以及它们之间传输数据和控制,和每一个目的是为了支持组件在一定范围的水平或决议,但他们不同的关于如何这样做。

本节定义了六个类别或类型的软件框架模型组成和简要确定每种类型的例子。(早期版本分类方案介绍了在使用框架类型(11),框架类型被描述为“可组合性方法工程”)。扩展的描述重要或有趣的例子给出了框架。

3.1。常见的图书馆

公共图书馆仿真框架是基于一组或一组可组合或可重用的软件模块或组件通过符合一个标准接口或一组接口,允许在图书馆模块与其他模块进行互操作或其中的一个子集。典型的组件在一个通用的库框架不是模型,可以在独立模式下,执行虽然不是一个公司的特点。框架还包括工具、服务和标准。公共库是使用一组通用的开发基础的假设模型内部以及它们之间的通用协议数据传输。组件是故意设计从一开始就相互合作在不同的组合。图书馆可能包括组件与不同程度的可组合性,也就是说,一些模块可能与全部或大部分可组合的组件库,而其他组件可能只有一小部分的其他组件。

实现公共图书馆仿真框架的例子包括联合建模与仿真系统(JMASS) [20.- - - - - -23),通用仿真框架(CSF) (24),普遍存在系统Indoor-GIS (PSI) [25),而J-Sim(26]。通常情况下,公共图书馆仿真框架从一开始或发展成为专注于某一特定类别的仿真应用。JMASS专注于飞机航空电子设备和电子系统建模,CSF在建模战术导弹系统中,ψ无处不在的计算应用程序J-Sim在计算机和通信网络。CSF和CSFA将稍后将详细介绍。

3.2。产品线体系结构

产品线体系结构仿真框架是基于多个相关的精心策划的发展模拟产品,尽可能,分享共同的软件组件。体系结构是使用两个软件开发过程实现的。首先是开发的一套组件,各成分将被整合到产品中。第二个是集成这些组件的子集为特定的产品。产品线体系结构包括的组件库和自动或半自动的过程或工具将它们集成到产品(27]。产品的范围可能提前知道并记录在一个详细的规范。组件的设计从一开始就一起工作在这些特定的产品。与公共图书馆框架,通常没有一个组件是一个独立的仿真产品。

数据和控制组件之间的接口在一个预期的产品提前记录为每个组件的规范。架构可能会提供一个数据传输协议中使用的产品。

的例子仿真产品中实现产品线体系结构仿真框架包括一个飞行仪表培训师(27),合成环境模式28武器),一个基于物理模型对建筑物和构筑物的影响(29日),两个家庭的生活训练仪器系统(30.,31日),和一个半自动的部队,一个实时建设性的战斗模式32]。工作将在稍后详细描述。

3.3。互操作性协议

一个互操作性协议仿真框架是基于运行时的仿真数据或服务交换,通常使用一个分布式仿真互操作协议如ALSP说,HLA或TENA [33]。在这个框架类型,仿真系统由模型或支持工具,每一种都是一个独立执行过程或程序计算分布在多个平台,执行期间交换数据通过网络模拟。数据传输机制来分配和提供根据定义所使用的协议。HLA的术语,它是一个架构标准和互操作性协议等系统,模拟联合和分布式仿真系统联合会(14]。联合可以独立运行,但通常交互执行期间通过网络消息发送和接收数据。仿真框架而言,联合分布式仿真互操作协议的组件和连接机制。然而,遵守这样一个协议不保证语义可组合性和实现可能需要相当大的额外努力超出最初的技术集成的系统;例如,参见[34]。

它是有用的区分专用联合会,开发和用于单个或有限数量的执行(如练习、分析或实验)和持续的联合会,重复使用和可能在更长时间的修改或增强。有许多互操作性协议仿真框架的例子,即持久联合会使用分布式仿真开发协议。例子包括联合训练联盟(35,36),战斗创伤病人模拟(茶多糖)37- - - - - -39),联合兵种战术教练(土)40),近距离格斗战术教练(CCTT) [40),建模架构技术,研究和实验(MATREX) [41,42),事件管理框架(鳍)[43]。MATREX将稍后将详细介绍。

3.4。对象模型

对象模型仿真框架是基于一个标准组件规范;注意,规范的标准,不是组件的实现。组件符合规范标准是为了彼此的可组合性和可重用的应用程序。通常组件本身并不是独立的模拟系统,而是彼此是由整个仿真系统的上下文中。定义标准支持的交互模型和工具和服务通过标准化的接口和设计与HLA等协议的互操作性。

主要实施对象模型仿真框架的例子基本对象模型(BOM)标准(44,45]。物料清单的标准将稍后将详细介绍。

3.5。正式的

正式的模拟框架取决于一个正式的数学符号来定义组件(通常是模型),组成的模型,以及它们之间的接口。组件连接机制提供了一个实现环境,实际上提供了连接指定的正式定义。正式的框架类型是出于渴望组件可以组合的数学证明,并获得他们的结合行为组成。

正式的仿真框架的例子包括离散事件系统规范(开发者)46)和基于模型的系统工程(MBSE) [47]。开发者的形式支持可组合性通过使用(即“耦合”。复合)模型,使用“港口”(即传递数据。、接口)。基于模型的系统工程(MBSE) [47)是另一种形式模拟的适用性。开发者和MBSE语法完全不同但语义上几乎相同的,他们有非常相似的数学特性和限制48,49]。开发者文学很大,许多理论研究和示例应用程序是可用的;特别相关的仿真框架,使用组件(50,51]。可以说,正式的定义特征的方法,数学形式主义指定组件的使用,可以增加使用大型实际应用的困难。

3.6。综合环境

综合环境模拟框架是一个软件开发和执行环境是用于连接组件可能是之前没有写意图进行互操作。组件可能是可执行的模型或数据文件,和模型组件可能用不同的语言或工具,如Excel和c++。专业软件包装和脚本仿真框架的一部分用于连接组件。综合环境提供了它们之间的通信渠道。综合环境执行组件和继电器的组件之间的通信渠道。

实施综合环境仿真框架的例子包括VisualComposer [52),ModelCenter(53]。VisualComposer专注于电力系统建模,而ModelCenter是一个通用的框架。ModelCenter稍后将详细介绍。

4所示。示例框架

本节描述六个重要或有趣的例子仿真框架。框架的历史意义,其技术特点的新颖性和有效性,及其效用说明的比较优势和劣势的每个框架类型都考虑在选择的例子。为每个示例框架,设计意图、功能、技术特点,选择示例应用程序解释道。

4.1。公共图书馆的例子:通用仿真框架

美国陆军航空和导弹研究开发和工程中心(AMRDEC)委托通用的仿真框架的发展(CSF)在1999年。框架是作为一个标准化的结构动态模拟(24]。尽管最初设计领域中立,也就是说,能够在技术上支持许多领域的动态模拟,它迅速发展成为一个工具包集中在战术导弹系统的建模与仿真24]。

以下4.4.1。设计意图

CSF是为了提供一个通用的仿真环境和培养模型重用(24]。CSF被视为一种框架进行动态模拟来支持系统的采集和测试的管理和组织通过提供一个标准的面向对象的模型,进而可以组合成定制的模拟系统。框架的目的是提供一个同质的模拟环境,提高重用组件模型,支持快速发展,减少工程师的学习曲线之间的过渡计划。作为一种面向对象的仿真环境,CSF的主要目标是能够组装定制仿真系统通过组合现有的面向对象的模型符合其规格。

4.1.2。功能

组件模型变量的容许决议;组件接口的框架只需要符合CSF的规范。任何模型组件的详细程度的分解为子组件不是标准的限制,只要通信和调用服务的坚持框架的建立接口。然而,框架的设计鼓励model-submodel结构遵循实际硬件组件的结构建模(24]。系统提供了一个图形用户界面组装复合模型。单个模型被视为插件为整个仿真系统(54](“插件”是一种软件组件,它添加了一个特性或功能,现有的软件应用程序,它连接到一个预定义的接口。插件依赖于应用程序连接到独立,不能执行)。

4.1.3。技术特点

3(一个)描述了分层CSF架构。传统的分层架构,软件功能在一个CSF层,可能在它下面的层调用函数。CSF是为了支持各种底层硬件平台和操作系统,如Linux、Windows和IRIX。它同时支持离散事件仿真和微分方程的连续系统仿真(55]。CSF在c++中实现使用客户机-服务器方法分别(用户界面和模型)。框架本身是由操作系统、编程语言和一组通用实用工具。兼容的模型构建基于框架的执行。为了最大化重用和可移植性,模型编码使用标准c++库服务器端框架(55]。一旦框架模型编译和链接成一个可执行程序。通过方法调用模型执行期间交换数据。

支持模拟框架层提供了一些特性,包括模型执行调度,文件输入和输出,数值积分的物理模型和仿真动力学(24]。支持实时和非实时仿真时间。

4.1.4。示例应用程序

导弹组件库的CSF (MCLib)是一个典型的例子应用程序。MCLib开发促进一致性和一致性在战术导弹模拟提供一个普通的图书馆用户的模拟。为对象类的集合它提供通用仿真支持在两个领域:6个自由度推进空气动力学控制和运动学模块(6-PACK)和模块化面向对象的传感器评估套件(摩西)。导弹运动学的6-PACK模块提供了一组对象类模型模拟导弹的飞行轨迹。以面向对象的方式,这些类可能会延长终端用户提供额外的功能或修改底层模型的默认行为。摩西模块的集合CSF-native模型捕捉传感器目标探测的行为,收购,和跟踪。摩西与6-PACK一样,可以定制或扩展以面向对象的方式。在架构上,MCLib一层高于脑脊液框架,提供了一个对象类库,调用创建单个导弹模型,没有删除的灵活性(直接访问框架的特性57]。图3 (b)显示脑脊液之间的关系,MCLib和定制missile-specific模型。

第二个CSF应用扩展框架支持半实物(HWIL)测试54]。框架内实时支持功能扩展到提供结构支持HWIL操作所必需的。为外部硬件提供实时监控能力,框架是增强通过添加一个实时监测类。监控类作为一个单独的线程来避免运行框架的性能下降。HWIL支持证明了驾驶与模拟导弹六自由度运动模拟器费率表实时轨迹。

4.1.5。讨论

CSF的面向对象的设计和简单的使用界面导致广泛使用在建模战术导弹系统(54视线外),例如,发射系统(56]。

4.2。公共图书馆的例子:可组合仿真框架的体系结构

在朝鲜军事仿真的使用是不断在进步的同时在其国防科技和武器系统。在韩国,传统仿真软件开发项目通常从头开始;因此,许多仿真系统设计与整体non-component-based结构。这种系统的投资是被人们认为是低效的,因为由此产生的系统经常有冗余或重叠的功能在军事仿真应用程序等领域的培训,运筹学,战斗分析。作为回应,韩国国防科学研究所(ADD)发起的研究对可组合模拟组装的可重用的软件组件。可组合仿真框架架构(CSFA)是一个模拟框架试点项目可行性研究开始于2010年。CSFA具有混合架构可以分为公共图书馆或一个对象模型框架。

4.2.1。准备设计意图

组件可组合性,由组件之间的语义一致性是一个关键因素7]。CSFA的因此,一个重要的设计目标是促进可组合的重用组件采用一个包罗万象的参考模型的结构化表示相关领域知识和导游的复合组件。此外,参考模型支持检查组件组成的语义一致性。组件开发根据领域知识的参考模型和存储在一个存储库或公共图书馆。用户从不同的领域可以共同的组件组装到自定义仿真系统为每个用户的应用程序。CSFA分层体系结构,使用户能够独立的特定领域模型组件领域通用仿真引擎和支持工具。特定领域模型组件分层模拟引擎和工具层之上,以促进域模型的可重用性。

4.2.2。功能

CSFA框架有两个主要部分,参考模型和软件。CSFA参考模型,文档作战领域知识和定义了系统的范围,有两个部分,一个本体和一个概念模型。参考模型的本体包含表征的战斗元素(即。,entities, units, and systems) corresponding to the likely participants in the battlefield engagements of interest to ADD. The ontology specifies the capabilities of the individual elements. A portion of the ontology is stored in a database, allowing it to be used to check the consistency of components selected for composition with the ontology. The reference model’s conceptual model specifies the possible interactions between the combat elements defined in the ontology. Importantly, as a matter of policy the CSFA reference model can not be easily modified. Proposed changes to the reference model must be reviewed and approved by an administrative organization serving as a configuration control board.

CSFA软件同样有两个部分,一个组件库存储组件,根据参考模型(即已经开发。,the elements in the ontology and the interactions in the conceptual model) and middleware that implements the underlying simulation engine as well as supporting tools for functions such as scenario authoring. Figure4显示CSFA及其上下文的四个部分。每个部分的简短解释如下。

(1)本体。军事领域知识本体表达,包括战场要素、组织层级结构。它提供了语义内容和CSFA最有特色的方面比其他传统的模拟系统。在本体,战斗元素分为物理或抽象;物理元素代表了战场实体如战士、汽车、武器、岩石、和建筑,而抽象元素代表元素,如运动的行为方面,行动,任务或任务。本体是用来检查组装组件之间的一致性。

(2)概念模型。概念模型指定的行为方面战场本体中定义的元素,尤其是他们的交互,因此反映了战场实体之间的相互作用模式。规范模板中使用概念模型是深受基本对象模型(BOM)的输出标准(44),这将在稍后详细描述。每个概念模型规范包括相互作用的模式和行为状态机。相互作用的模式和状态机表示为标准UML表示,分别一个序列图和状态机图。概念模型也用来检查的一致性所选组件,它提供了组件开发规范。

(3)组件库。组件库,它可以被视为一种常见的库,允许模拟用户选择和组合组件。组件的实现方面参考模型(本体和概念模型)。开发人员产生组件根据规范的参考模型。

(4)中间件。中间件是CSFA执行软件;它包括运行时模拟引擎,支持工具。模拟引擎解析场景文件,加载组件和组装复合模型根据执行情况,并执行组装模型。它支持分布式仿真使用高级体系结构协议的互操作性。中间件的支持工具支持模拟的不同阶段准备、执行和分析;包括场景编辑、存储库管理、组件组成,模拟执行控制,2 -和三维可视化,事后回放和审查。

4.2.3。技术特点

CSFA软件是用c++语言编写的使用Microsoft Visual Studio集成开发环境和被实现为一个插件。这个环境是一致的添加强调商业产品的使用。图5说明了CSFA Explorer的组件,组件的一部分组成支持工具。在左面板的图,黄色的文件夹对应于本体中的元素或类型的元素和黑图标实现组件。组件不能被添加到存储库中,除非有一个对应的本体中的元素。由于政策限制本体修改前面所提到的,添加和修改黄色的文件夹是严格控制,从而防止组件潜在的发展不一致的参考模型。

4.2.4。示例应用程序

因为这是书面,CSFA是一个正在进行的项目;因此,没有在实际应用的例子。然而,建了两个仿真模型使用CSFA可行性示范:直接火活动在不同的近距离空中支援武器类型和大规模攻击的蓝色红色机械化营步兵部队。前模型实体级别的战斗,后者在单元级别上,展示CSFA模拟战斗的能力在多个分辨率的水平。图6显示屏幕图像从实体级模型(左)和单元级模型(右)。实体级模型包括算法反映实体级活动,比如射击武器杀死概率和目标的损伤评估。在单元级模型中,兰彻斯特摩擦函数(58)模型之间的战斗部队,考虑的因素包括的武器数量,类型的武器,和单元危险系数。

4.2.5。讨论

韩国军方已经采用OneSAF(稍后介绍),但它在实际使用是有限的在韩国,因为本土韩国战术,武器,和环境。CSFA是为了克服这些限制的一种手段。迄今为止,CSFA发展只取得了初步组件重用目标,重用的组件反映参考模型本体中的元素。

进一步发展计划重用的范围扩展到nonmodel组件部分的软件产品。CSFA的一个重要的和先进的特性是系统之间的紧密联系的“文档”,其本体中包含的参考模型和概念模型,及其“软件”,组件库和中间件。这个连接提供了语义上下文和一致性为框架组件开发,从而增加他们的可组合性。概念模型在促进模型的有用性的互操作性和可组合性已经被其他人观察到(59]。

4.3。项目架构的例子:一个半自动的力量

工作是一个美国陆军建设性实体级作战模型用来模拟旅和低于实体级别的战斗和非战斗的操作(32]。1996年开始开发工作;它不断扩展和增强。作为一个半自动的力系统,工作产生思考正确的战术行为到一支部队(17,30.]。

4.3.1。设计意图

工作的目的是成为一个通用的实体级模型,减少重复在美国陆军的建模与仿真的开发工作,提供改进的互操作和重用,和模拟满足未来的需求(60]。预期使用的工作包括高级概念的开发原则和策略,培训单位指挥官和员工,开发新的武器系统,支持测试和评估,生产其他模拟数据作为输入。

工作是建立在模拟框架称为OneSAF产品线体系结构框架旨在“组织、分类和定义一个分层的软件结构,以不断满足工作要求”(61年]。框架的目的是支持各种用户与多个应用程序域工作从一组常见的体系结构和组件62年]。框架内,组件、工具和服务可以组合成产品特定于用户的应用程序和系统组成。工作的产品线体系结构框架被广泛描述(62年- - - - - -66年]。

4.3.2。功能

OneSAF产品线体系结构框架,如图7,被组织成层的产品和组件和采用分层组合的过程。开始与组件层中间的图和移动,组件定义的框架内。组件可以四种类型之一:模型、工具,基础设施,和存储库(62年]。组件的框架允许独立发展;他们必须有完整的服务和接口定义和正式的文档。一个组件可以用于多个产品和系统组成;相反,多个单个组件的实现是可能的情况下,当一个特定的产品需要一个特定的组件的变化。一个或多个组件组合成产品,图中所示产品层。每个产品都是一个不同的单元模拟或仿真的支持功能。最后,产品组成系统配置、系统组成层的图所示,这是完整的可执行的系统,提供配置任务区域内终端用户操作使用功能,如分析或培训。典型的例子系统组成一个平台独立的可执行文件用于力结构分析或多平台联合执行用于分布式员工培训(61年]。

下面的层组件层图包含的组件提供的功能将被用于大多数或所有产品或使合成过程。组件支持层提供常见的模拟和组合服务组件或使用的用于构建组件。repository组件层是一组存储库存储组成和仿真数据。公共服务层提供共享和non-domain-specific服务,如数据库管理、时间同步和互操作性协议服务。最后,平台抽象层的硬件和软件环境组件,产品,和系统组成。

4.3.3。技术特点

框架内的组件可以组装成十二个特定产品,共同构成OneSAF产品线(30.,62年]:(1)系统的作曲家组合成产品和产品组件系统组成。(2)知识工程环境商店和组织作战领域知识。(3)活动策划人计划在准备活动和任务模拟事件或运动。(4)模型的作曲家组成原始模型,如物理或行为模型,为组合模型。(5)模拟信号发生器选择地形和一个执行的场景信息。(6)技术经理支持执行配置、性能预测和基准测试。(7)仿真的核心作为一个模拟的运行时引擎执行。(8)模拟控制器提供机制,比如地图、覆盖、运行控制和监控的模拟执行。(9)C4I适配器连接工作系统的组成和实际指挥、控制、通信、计算机和情报(C4I)设备。(10)分析和审查提供记录、回放和分析仿真执行的数据。(11)Repository manager支持本地和远程组件的创建和使用和数据。(12)维护环境提供了一个集成的软件开发环境。

4.3.4。示例应用程序

工作已被用于一个广泛范围的分析,收购,和培训的应用程序。除了日常应用中,一些不寻常的例子包括创建一个工具提供的分析和任务演练功能(67年真正的C4I系统),测试算法(68年],二战坦克作战建模[69年),创建一个“网络范围”网络战争分析和培训(70年),虚拟培训操作施工设备(71年]。

4.3.5。讨论

产品线体系结构方法使用层的组件和产品开发特定的仿真系统。这种类型的仿真框架的优点是只有一个特定的用户应用程序所需的组件组成,减少计算要求;组件可以更换,宽松的维护和升级;和开发新的模型和工具鼓励重用现有组件上下文的能力(61年]。然而,在框架中定义的产品和系统成分通常是进步,和工作没有内在机制执行组件的假设和依赖项如果是在不同的上下文中重用(72年]。最终,开发人员负责确保由产品是有效的。

4.4。互操作性协议的例子:建模架构技术,研究和实验

美国陆军的发展开始建模架构技术,研究和实验(MATREX)在2006年[41]。MATREX包含大量不同的作战相关模型和仿真工具的互操作通过HLA或TENA [42)的一个例子是一个互操作性协议可能作为仿真框架。(HLA的术语和TENA略有不同;在这个描述MATREX HLA的术语。)

4.1.1。设计意图

MATREX旨在支持一体化的生活、虚拟和建设性的模型操作实体或工程级(41]。从HLA的角度来看,MATREX是一个持久的联盟,也就是说,一个HLA联邦初始开发重复使用多次后,也许修改和改进,在很长一段时间。像许多持久联合会,MATREX不是特定于任何特定的应用程序;相反,它的目的是成为适应各种应用程序或通过扩展。

10/24/11。功能

MATREX联邦包括大约30种不同的模拟应用程序或联合。一个重要MATREX联合OneSAF(前面描述),它提供了广泛的功能来模拟各种作战实体类型和交互。更专业的联合模型特定类型的实体,相互作用,详细现象提供高保真或根据需要更高分辨率的模拟。其中包括航空移动服务器,将计就计服务器,服务器导弹,天气服务器,车辆动力学迁移服务器,化学生物仿真套件(73年),全面的弹药和传感器仿真、物流服务器和人类性能模型的车辆水平。五MATREX联合,统称为C3电网,提供服务相关的建模命令,控制和通信行为和效果。除了提供建模功能的联合,MATREX包括一组nonmodel工具,支持测试和调试,执行控制和结果记录和分析。

4.4.3。技术特点

MATREX架构大致分成三层(41]。第一层包括联合本身,它可能包括高保真基于物理工程战场的模型车、传感器、武器等等,以及工具以支持系统集成、测试和分析。第二个层是核心架构,其中包括HLA接口,使用的对象模型MATREX联合会,和软件中间件层站之间的互操作性协议和联合的模型相关的代码。第三层是分布式执行的基础设施,包括一个安全的网络,MATREX联合分布式站点的链接。联合MATREX中间件是常见的;在运行时通过它与人交流。它包括一个应用程序编程接口和抽象的细节能够软件的互操作性协议和对象模型(74年]。

MATREX联邦对象模型(FOM)最初是基于实时平台参考FOM的HLA FOM指定尽可能相同的实体、属性、交互、和DIS协议中定义的参数75年]。扩展MATREX FOM对象和特殊利益MATREX用户社区的互动。

4.4.4。示例应用程序

MATREX应用程序包括人类行为模型的集成到MATREX架构(76年),支持分布式测试的事件对网络中心战系统(77年),和网络化的指挥和控制效果41]。

4.4.5。讨论

MATREX框架的一个重要特性是它的中间件,它提供了一个接口之间的联合和互操作性协议被用于连接它们。中间件旨在减少或消除需要修改时联合修改协议的互操作性和支持软件,例如,RTI的不同版本,以及对象模型之间的区别。MATREX版本的HLA RTI有多种参数允许用户配置HLA服务,如数据分布管理,最适合他们的应用程序(78年];适当配置MATREX RTI的数据分布管理需要一些关心79年]。

4.5。对象模型的例子:基本对象模型

基本对象模型(BOM)规范(基本对象模型的描述是改编自部分(45]),由仿真标准化互操作性标准组织(输出)2006年,目的是使模型开发者和仿真工程师创建模块化和可组合概念模型和对象模型,可以用于设计或规范可执行模拟或仿真环境(44]。

4.5.1。设计意图

BOM的标准是为了提供一个标准化手段来表示概念模型的重要方面。概念模型一般不是可执行;,而他们通常作为一种前兆开发一个可执行的后续发展模式19,80年]。概念模型是用来记录和沟通”是代表什么(可执行模型),假设限制那些表示,和其他功能需要满足用户的需求”(81年]。

BOM模型(这个词基本对象模型和缩略词使用BOM在文献中引用的标准和概念模型的一个特定的实例或对象模型根据标准。为了减少潜在的混淆,在本文中,我们将使用这个短语“BOM模型”,后者的意思,虽然这句话是冗余技术在BOM的“M”代表“模型”)的目的是成为一个“可重用的信息代表一个独立的模拟相互作用模式”,提高“互操作、重用和可组合性,通过提供“模式”和“组件”,模拟的相互作用,可以用作构建块的装配仿真和模拟企业”(44]。BOM标准目的是用于目的如指定系统功能,代表场景的事件序列,并定义可重用的类结构。的主要效用标准作为一个可行的机制来表示概念模型的方式独立于特定的分布式仿真互操作协议或软件架构。

4.5.2。功能

一个例子的BOM模型可用于文档一个场景的事件序列如图8统一建模语言,它是一个序列图(82年]。图显示了一个简化版本的直接参与战斗近距离空中支援任务的一部分。顶部序列图的几个通用的概念实体已确定:AirOperationsCenter AirMissionControlFunction,拦截器和目标。BOM的每一个概念实体映射到特定的对象模型类在一个可执行的模型,可以支持概念实体,如果后者是已知的。例如,概念实体AirOperationsCenter可以被映射到一个特定的联合空中作战中心对象类,AirMissionControlFunction e - 3哨兵机载预警和控制系统飞机对象类,拦截f - 22猛禽战斗机对象类,米格- 29支点对象类和目标。从概念性的实体映射到特定的对象模型类可以改变,提高BOM模型的可重用性,可以重用相同的BOM模型在不同的场景中不同场景特定概念的映射实体对象模型类。

8也显示了典型的序列的交互(“相互作用模式”)中出现的概念实体,例如,AssignControlOfInterceptor。在BOM模型,行动可以指定为一个概念性的事件,它定义一个消息或触发发生在仿真或另一个概念模型的模式提供一个更详细的表示行为。概念事件在BOM模型可以映射到特定的对象模型类属性更新或交互类。从实体概念和概念的映射事件支持对象模型类提供了一个有用的机制在选择底层模拟和系统需要支持一个练习。

4.5.3。技术特点

定义了两种类型的BOM模型(44]。接口BOM模型信息和触发器相关的一个或多个类的对象,并提供一个可重用的相互作用模式。封装的BOM模型包括附加的信息,如行为建模。多个BOM模型可能构成一个完整的概念模型。复合BOM模型可以转化为一个HLA联邦对象模型支持互操作性通过HLA互操作性协议(83年]。然而,BOM的概念建模和模型映射特性提供的标准与体系结构无关的特征不是HLA联邦对象模型。

从BOM模型映射的概念实体可以是其他BOM模型或更具体的类定义对象模型,如HLA联邦对象模型或TENA逻辑对象模型。后者具体对象模型包括特定于协议的实现细节,不是为了成为BOM模型的一部分。

4.5.4。示例应用程序

在美国和欧洲,BOM模型开发了几个军事应用。所选样本的这些应用程序如下。(1)联合组成的对象模型:BOM模型作为概念模型在项目发展中对象模型可用多个模拟架构(84年]。(2)中档弹道攻击弹药:BOM模型的控制台操作符的概念模型混合German-Israeli武器系统。(3)模板驱动代码生成器:BOM模型作为概念模型来描述组件行为在荷兰仿真组件框架85年]。(4)表面船舶导航:BOM模型被用作一个海上的水面舰艇导航概念模型模拟在土耳其(86年]。(5)鱼雷工程:BOM模型作为可重用组件的概念模型实现水声模型(87年]。(6)机载电子攻击:BOM模型由美国国防部体系架构框架(DoDAF)观点是用作机载电子攻击体系结构概念模型为美国空军(88年]。(7)人类行为建模:BOM模型已经被提议作为一个标准的机制来编码和记录人类行为多分辨率模型(89年]。

4.5.5。讨论

目前还不清楚BOM标准完全有资格成为仿真框架定义。的BOM标准组件规范(组件模型和对象模型),而不是组件,它不提供显式积分机制,根据标准开发的连接组件。相反,BOM标准假定其他一些框架,通常一个分布式仿真互操作协议如HLA或TENA,将链接的组件是BOM标准开发的。

BOM模型旨在补充语义信息出现在一个互操作性协议对象模型,但是从BOM模型提出了本体映射提供额外的语义内容之外的BOM模型本身(90年]。

4.6。综合环境的例子:ModelCenter

ModelCenter(ModelCenter凤凰城是一个商业产品的集成。)是一个图形工具包和软件框架工程设计集成和优化。它允许探索设计空间识别有前途的方法来分析下这个问题。

4.6.1。设计意图

ModelCenter旨在促进集成多个不同的模型用于工程设计的过程。它支持创建链接的应用程序通过启用自动运行时不同模型之间的数据交换。ModelCenter旨在提供易用性,整合现有的分析和建模的形式包允许直接重用现有的模型,改进工程设计,通过支持设计问题的早期识别和分析的贸易空间,和减少误差,通过自动化创建模型之间的数据交换通道的过程(53]。

4.6.2。功能

ModelCenter的功能分为三个主要区域(53,91年]。

(1)模型包装。连接多个模型构成的复合模型,自动数据交换通道是由“包装”的组件模型。三种不同类型的包装器支持各种形式的数据。文件包包装现有的输入和输出数据文件创建文件的各种组件和阶段模型通过识别哪些项目在每个模型的文件作为输入,和每个模型必须输出供后续阶段使用。脚本包完成通过ModelCenter应用程序编程接口来处理格式(如微软的COM协议。定制的包装高级语言编写的应用程序可以通过定制如c++或Java。这个方法当第三方模型提供了api,允许访问内部函数。

(2)视觉模型/流程集成。图形界面允许建设的设计,通过连接应用程序和模型和仿真的执行。链接通过拖放来完成接口和支持不仅直接连接,也有条件和循环之间的关联模型。执行和直接支持与组件之间的数据流模型如Excel, MATLAB,或共同的计算机辅助设计和计算机辅助工程工具,以及额外的自定义模型类型。其他组件可能需要执行脚本或用户干预。

(3)分析和优化。一旦集成,综合模型可以重复执行贸易空间探索或设计优化。ModelCenter能够处理离散和连续变量的目标最小化,最大化,或解决给定的属性,而满足指定的约束。

4.6.3。技术特点

模型包装都可以通过一个单独的工具和一个本地组件ModelCenter。后者能够用ASCII文件通过单击界面标识变量在文件。文件定义的结构,如FORTRAN名称列表和名称-值对,匹配模式可以创建自动化包装过程。此外,它将处理文件从商业计算机辅助工程产品。脚本功能和功能也可用。

除了前面提到的拖放功能和模拟控制功能,图形界面提供了一组健壮的逻辑连接器,包括if - then,开关,并行分支,循环,可以用来连接组件模型。描述类型的数据交换的链接(价值观、数组、文件或对象)也是可能的。

ModelCenter可以生成和分析反应表面。数据组合表面可能来自先前的模拟运行或可能近似中创建工具箱。流程支持曲线拟合类型如多项式或插值方法。产生的响应表面可能会被纳入相关的集合模型。反应表面由模拟可能包含代替模拟。

另一个ModelCenter组件执行变量的优化设计。优化器使用遗传算法和推荐算法的方法和变量选择从问题到工程师的设计和它的目标。最后的结果是通过优化提供报告。一个软件开发工具包,允许用户实现他们自己的优化程序,这可能是保留供以后使用,也可用。

4.6.4。示例应用程序

ModelCenter已被用于各种各样的应用程序。多学科优化设计的自主水下航行器使用多目标遗传优化执行例程。电子、船体几何形状和性能、可行性、成本和风险模型集成(92年]。直升机的概念设计的优化探索土星的卫星泰坦被认为是典型的飞机设计问题在一个陌生的环境。遗传算法应用于评估最佳解决方案考虑到直升机空气动力学,性能,推进,电力、重量、尺寸93年]。ModelCenter作为一个生命周期成本分析模型的综合环境为国家航空和宇宙航行局的星座飞船(94年]。

4.6.5。讨论

ModelCenter通常被认为是通用的和容易使用。自主水下航行器设计中的应用,它被视为“高度集成的基本设计系统”(92年]。泰坦直升机概念模型研究报告成功优化离散和连续变量,基于使用梯度和随机优化器。另一方面,研究遇到损失的决议在一些低影响变量,而不是优化以及其他(93年]。

5。摘要和结论

软件架构是一种架构或基础设施旨在使软件组件的集成和互操作。仿真框架软件框架专门为了简化装配的过程复杂的模型或仿真系统从简单的组件模型以及促进重用的组件模型。至少六个不同类型的软件框架模型组成开发和每一个存在的例子。不同的仿真框架类型有不同的组件,流程组合模型和应用程序。表1总结了6个模拟框架类型。为每种类型的表标识的组件可以组合框架内和机制组成。

本文的主要结论是,最好的类型的仿真框架使用取决于应用程序。模拟开发人员打算构成传统软件组件可以考虑公共图书馆或产品线体系结构。如果独立执行模型有关,建议一个互操作性协议。提高语义可组合性可能会从一个对象模型框架的使用。一个正式的框架可以使正式的数学分析组件可组合性。最后,一个综合的环境可以快速连接一组不同的文件和工程分析模型来支持。

利益冲突

作者宣称没有利益冲突有关的出版。

确认

本文的准备资金和提供的项目是基于韩国国防科学研究所和REALTIMEVISUAL Inc .)他们的支持。