第1章 概述1.1 文档目的与定位本文档是《Command: Modern OperationsCMO作战仿真引擎》的系统设计还原文档即依据反编译工程 Command48.sln 的源码结构反向重建其软件设计决策回答“这套引擎是怎么建起来的”。它与此前提交的《CMO 作战仿真引擎模型分析报告》构成互补关系分析报告回答“它算什么、怎么算”模型与算法层面本文档回答“它如何组织、如何运行、如何扩展”软件工程层面。两份文档共用同一套源码证据基础交叉引用时以“见分析报告第 X 章”标注。需要明确的是本文档不是原厂设计文档CMO 官方从未公开其软件设计说明书。文中的分层划分、模块职责界定、时序描述与设计意图判读均为依据代码结构做出的重建性结论其可信度按 1.2 节的证据等级标注。1.2 还原方法与证据等级反编译工程经 SmartAssembly 混淆内部方法名已被替换为无语义标识符如 InsertStub、LogoutBridge、smethod_0但下列信息完整保留构成本次还原的证据来源• 公开类型名、字段名、属性名、枚举成员名——混淆器为保证反射与序列化兼容而保留• 接口定义与方法签名——ISimConnector、IEventExporter、ITerrainProvider 等完全可读• 文件与目录组织——工程的物理结构未被打乱• 第三方程序集引用——依赖关系可直接判读• 部分中文 XML 文档注释与中文运行期字符串——本汉化版特有为控制结论的可靠性本文档对每一项设计判断标注证据等级表 1-1 设计结论的证据等级定义等级 含义 判定依据 本文标注方式A 确证 结论可由源码直接读出无解释空间 接口定义、字段声明、枚举成员、常量数值、目录结构 直接陈述附源文件与行号B 强推断 结论由多处一致的代码证据交叉印证 调用关系、命名约定、数据流向、构造函数初始化顺序 陈述并说明推断依据C 设计意图判读 对“为何这样设计”的解释 结合工程常识与领域惯例的合理推断 以“推测/应是/其意图在于”等措辞明示凡涉及关键架构结论者均为 A 级或 B 级C 级判读集中于第 10 章的设计评述。1.3 系统定位与设计目标从代码结构可反推出该引擎的四项核心设计目标B 级。表 1-2 设计目标与代码层面的对应证据设计目标 代码层面的证据数据驱动模型行为由装备数据库决定而非硬编码 DAL 层 366 KB 的 DBFunctions.cs、SQLite 装备库、所有实体均以 DBID 为构造入口、DatabaseCache 按类别缓存 DataTable工程级物理保真探测与毁伤按公开工程模型求解而非查表或经验系数 RadarModel 直接实现 ITU-R P.676 / F.1245 与 EREPS 波导模型PhysicalConstants 中玻尔兹曼常数取到 1.380 650 424E-23大规模想定可运行支持数千实体的战役级推演 11 级时间轮分频、Scenario 中二十余个 Cache_ 字段、62 处 Parallel 并行调用、ThreadSafeCollections 自建并发容器可扩展与可集成作为分析工具接入外部体系 14 个扩展接口、IEventExporter 支持 10 种导出目标、ISimConnector 支持 DIS 分布式仿真、32 个文件的 Lua 脚本子系统、16 项想定级特性开关1.4 术语与缩写表 1-3 术语表术语 全称 / 含义Pulse脉冲 一个仿真推进步引擎的最小时间推进单位ActiveUnit活动单元 具备运动、探测、交战能力的实体基类Contact接触 某一阵营对某一实体的感知结果含误差与不确定性Doctrine条令 交战规则集合按“单元→编组→任务→阵营”逐级继承WRA Weapon Release Authorization武器使用规则DBID 装备数据库主键实体构造的唯一入口DP Damage Point毁伤点数1 DP 1 kg TNT 当量DIS Distributed Interactive Simulation分布式交互仿真协议IEEE 1278DAL Data Access Layer数据访问层LOS Line of Sight视线通视判定TOT Time on Target到达目标时刻OODA Observe-Orient-Decide-Act单元 AI 的决策循环SDD Software Design Description软件设计说明书1.5 本文档结构本文档按“自顶向下、由静到动”的顺序组织共 10 章• 第 1 章本章概述文档目的、还原方法、证据等级、系统定位与术语约定。• 第 2 章 总体架构分层划分、模块依赖关系与运行时拓扑。• 第 3 章 数据访问层DAL装备数据库、DatabaseCache 与实体构造入口。• 第 4 章 仿真内核时间轮调度、推进步Pulse与并行执行模型。• 第 5 章 实体模型ActiveUnit、运动、探测与毁伤求解。• 第 6 章 感知与交战Contact、Doctrine、WRA 与 OODA 决策循环。• 第 7 章 想定与场景Scenario 结构、特性开关与大规模想定装载。• 第 8 章 扩展与集成14 个扩展接口、IEventExporter、ISimConnector 与 Lua 子系统。• 第 9 章 并发与性能ThreadSafeCollections、62 处并行调用与缓存策略。• 第 10 章 设计评述对关键设计取舍的 C 级意图判读与改进建议。第2章 总体架构2.1 分层划分与模块职责依据反编译工程 Command48.sln 的物理目录结构与程序集引用关系可将引擎划分为七个逻辑层B 级依据目录结构、命名空间与调用关系交叉印证表 2-1 七层架构与职责划分层次 核心职责 关键类与文件 证据等级数据访问层DAL 装备数据库读写、缓存与实体构造入口 DBFunctions.cs366 KB、SQLite 装备库、DatabaseCache、DBID 构造入口 A仿真内核 时间推进、调度与并行执行 11 级时间轮、Pulse 推进步、62 处 Parallel 调用 A实体模型 运动、探测与毁伤求解 ActiveUnit、RadarModel、PhysicalConstants A感知与交战 接触管理、条令继承与决策循环 Contact、Doctrine、WRA、OODA A想定与场景 想定装载、特性开关与大规模场景管理 Scenario、Cache_ 字段、16 项特性开关 A扩展与集成 外部接口与脚本子系统 14 个扩展接口、IEventExporter、ISimConnector、Lua 子系统 A并发与性能 并发容器与缓存策略 ThreadSafeCollections、Parallel 调用点 A各层之间通过明确的接口与数据流衔接层内高内聚、层间低耦合整体呈“数据驱动、自底向上支撑”的结构。2.2 模块依赖关系依赖方向总体为“上层依赖下层、下层不反向依赖上层”。核心依赖链如下仿真内核依赖 DAL 提供的装备数据与实体构造入口实体模型依赖仿真内核的时间推进与调度服务感知与交战依赖实体模型的探测与毁伤求解结果想定与场景依赖实体模型与感知交战层负责装载与组织大规模实体扩展与集成层依赖以上各层对外提供接口与脚本能力并发与性能层作为横切关注点为各层提供并发容器与缓存基础设施。横切支撑横切支撑横切支撑横切支撑横切支撑横切支撑DAL 数据访问层仿真内核实体模型感知与交战想定与场景扩展与集成并发与性能2.3 运行时拓扑与启动序列引擎启动遵循“先数据、后内核、再场景”的固定顺序B 级依据构造函数初始化顺序与调用关系推断初始化 DAL加载 SQLite 装备库构建 DatabaseCache 缓存初始化仿真内核建立 11 级时间轮准备 Pulse 推进步装载想定通过 Scenario 结构读取场景数据实例化实体启动推演循环按时间轮分频推进各层并行执行对外输出经 IEventExporter 导出事件经 ISimConnector 接入 DIS 分布式仿真。渲染错误:Mermaid 渲染失败: Parse error on line 15: ...频推进第3章 数据访问层DAL3.1 DBFunctions 与 ---------------------^ Expecting (), SOLID_OPEN_ARROW, DOTTED_OPEN_ARROW, SOLID_ARROW, SOLID_ARROW_TOP, SOLID_ARROW_BOTTOM, STICK_ARROW_TOP, STICK_ARROW_BOTTOM, SOLID_ARROW_TOP_DOTTED, SOLID_ARROW_BOTTOM_DOTTED, STICK_ARROW_TOP_DOTTED, STICK_ARROW_BOTTOM_DOTTED, SOLID_ARROW_TOP_REVERSE, SOLID_ARROW_BOTTOM_REVERSE, STICK_ARROW_TOP_REVERSE, STICK_ARROW_BOTTOM_REVERSE, SOLID_ARROW_TOP_REVERSE_DOTTED, SOLID_ARROW_BOTTOM_REVERSE_DOTTED, STICK_ARROW_TOP_REVERSE_DOTTED, STICK_ARROW_BOTTOM_REVERSE_DOTTED, BIDIRECTIONAL_SOLID_ARROW, DOTTED_ARROW, BIDIRECTIONAL_DOTTED_ARROW, SOLID_CROSS, DOTTED_CROSS, SOLID_POINT, DOTTED_POINT, got NEWLINE