1.6 本书的内容组织
本书主要介绍了基于MDA的SMP 2.0规范及其应用,其主要内容包括以下几个方面。
第1章介绍了仿真的基本概念、组合仿真方法的发展,给出了一个基于MDA的仿真模型开发方法,并介绍了SMP的目标及其应用。
第2章从一般角度介绍了基于SMP 2.0规范的仿真模型开发与集成过程,讨论了SMP 2.0的基本概念、SMP 2.0的体系结构、运作阶段、运行机制、仿真环境的运行特征。
第3章介绍了基于SMP的模型开发指南、通过示例给出了基于SMP的不同的仿真模型组合方法和仿真模型的开发与集成过程。
第4章介绍了SMP 2.0仿真中使用的组件的平台无关定义。组件模型的基本概念,给出了SMP 2.0的组件包括模型、服务和仿真器,并详细介绍了SMP2.0的仿真服务规范,定义了每个模型必须实现的接口集合和高级组件机制定义的可选的接口集合。服务是模型可能用于与仿真环境进行交互的组件。SMP 2.0定义了每个仿真环境必须提供的服务接口以及高级仿真功能具备的可选的接口。另外,该部分还介绍了用户定义的服务机制。
第5章给出了SMP 2.0的元模型规范,描述了仿真模型定义语言(Simulation Model Definition Language,SMDL),它为模型设计(Catalogue)、模型实例集成(Assembly)和模型实例调度(Schedule)提供了平台无关机制。SMDL支持基于类、基于接口、基于组件和基于事件建模以及数据流建模的设计和集成技术。
第6章从设计角度分析了SMP 2.0模型开发环境及其仿真运行环境中的关键技术,给出了一个SMP 2.0兼容的Sim2000 2.0中模型开发环境和仿真运行环境的设计与实现,并介绍了这些软件工具的使用方法。
第7 章和第8 章介绍了两个基于SMP规范的仿真应用:导弹攻防对抗仿真分析和导航完好性分析,对两个不同领域的模型体系进行了分析,给出了两个仿真应用的基于SMP 2.0 规范的模型框架、想定编辑和试验分析环境的设计,进一步从应用角度说明了SMP 2.0在实际仿真系统开发中的应用过程。
另外,SMP 2.0规范还包括C++代码映射规范和支持模型组件开发的模型开发工具库(Model Development Kit,MDK)。由于本书篇幅所限,这里不再对C++代码映射规范和MDK进行详细介绍。有兴趣的读者可以参考《SMP 2.0 C++ Mapping》和《SMP 2.0 C++ Model Development Kit》规范。
C++代码映射规范给出了SMP 2.0平台无关模型(元模型、组件模型和仿真服务)向平台相关模型的映射,给出了SMP 2.0的模型元素(Catalogue)的ANSI/ISO C++一个映射,确定了SMP的组件模型、仿真服务和元模型所构成的平台无关模型到ISO(International Organization for Standardization)和ANSI(American National Standards Institute)定义的ISO/ANSI C++的平台相关模型的映射方法。
模型开发工具MDK并不是标准的一部分,它提供了一个模型可能实现的所有接口。C++语言的模型开发工具主要用来支持开发符合SMP标准的C++模型,简化用户开发SMP仿真模型的开发工作。MDK给出了用C++模型开发工具实现SMP组件模型接口的方法,描述SMP C++模型开发工具的类和模板。另外MDK还支持相关工具开发人员的相关工作,如SMP模型的代码自动生成工具开发者。虽然模型开发工具只是一个可选的C++库,但是基于模型开发工具的类来开发代码生成工具将会减少自动生成的代码数量,还会增加系统灵活性。如果出现了一些基本问题,那么在模型开发工具库中修复该问题就会自动作用到所有基于它的模型,而不用手工改正每个模型。