商品描述
本書立足於仿真軟件技術的基礎性與前沿性,面向復雜系統建模與仿真的實際需求,系統闡述仿真技術的理論基礎、開發實踐與運行機制,內容涵蓋仿真軟件開發、仿真架構、仿真程序執行、模型並行設計及分布式通信等關鍵技術環節,註重理論與實踐相結合,力求為讀者構建完整的知識體系與實踐能力框架。 本書可作為高等院校仿真工程、系統工程、計算機科學、自動化等相關專業的本科生與研究生教材,也可供從事仿真系統研發與應用的工程技術人員參考。期望本書能為讀者打開仿真世界的大門,助力讀者在科研創新與工程實踐中實現新的突破。
目錄大綱
第1 章 仿真概述························································································································1
1.1 為何仿真·························································································································1
1.2 何為仿真·························································································································3
1.2.1 從不同視角理解仿真································································································3
1.2.2 基於模型的實驗方法································································································4
1.2.3 仿真的基本要素······································································································5
1.3 仿真的分類·····················································································································7
1.3.1 按模型種類分類······································································································7
1.3.2 按時鐘比例分類······································································································9
1.3.3 按系統性質分類····································································································10
1.3.4 按系統構造分類····································································································11
1.3.5 按軍事用途分類····································································································12
1.4 仿真的應用與限制·······································································································13
1.4.1 仿真的應用···········································································································14
1.4.2 仿真的限制···········································································································16
1.5 軍事仿真的分層···········································································································17
本章小結·······························································································································19
本章習題·······························································································································19
第2 章 仿真軟件概述···············································································································21
2.1 仿真軟件的基本概念···································································································21
2.2 仿真軟件的發展歷程···································································································23
2.2.1 探索期(1955—1965 年) ······················································································23
2.2.2 初始期(1966—1978 年) ······················································································24
2.2.3 發展期(1979—2008 年) ······················································································25
2.2.4 現階段(2009 年至今)··························································································25
2.3 仿真軟件的選擇策略···································································································30
2.3.1 建模特性··············································································································30
2.3.2 運行環境··············································································································31
2.3.3 可視化特性···········································································································31
2.3.4 輸出特性··············································································································32
2.3.5 其他方面的關註點·································································································33
2.4 軍事仿真軟件···············································································································33
2.4.1 仿真應用程序········································································································34
2.4.2 仿真工具軟件········································································································37
2.4.3 常用的軍事仿真軟件······························································································41
本章小結·······························································································································47
本章習題·······························································································································47
第3 章 面向對象的仿真軟件開發···························································································48
3.1 面向對象的軟件開發方法····························································································48
3.1.1 面向對象編程範式·································································································48
3.1.2 面向對象的軟件設計原則·······················································································50
3.1.3 面向對象的軟件開發優勢·······················································································52
3.2 面向對象的軟件開發過程模型····················································································53
3.2.1 瀑布模型··············································································································54
3.2.2 增量過程模型········································································································56
3.2.3 原型模型··············································································································57
3.2.4 螺旋模型··············································································································59
3.3 基於UML 的仿真軟件建模·························································································60
3.3.1 UML 的建模機制···································································································61
3.3.2 仿真常用的UML 建模視圖·····················································································62
3.3.3 基於UML 的仿真概念建模·····················································································76
3.4 仿真軟件開發過程·······································································································79
本章小結·······························································································································82
本章習題·······························································································································82
第4 章 軟件體系結構···············································································································84
4.1 “4+1”視圖模型·········································································································85
4.1.1 場景視圖··············································································································85
4.1.2 邏輯視圖··············································································································85
4.1.3 開發視圖··············································································································86
4.1.4 進程視圖··············································································································86
4.1.5 物理視圖··············································································································88
4.2 經典軟件體系結構風格································································································89
4.2.1 數據流風格···········································································································90
4.2.2 調用返回風格········································································································93
4.2.3 黑板風格··············································································································95
4.2.4 獨立構件風格········································································································96
4.2.5 層次消息總線風格·································································································97
4.3 基於服務的軟件體系結構··························································································101
4.3.1 客戶端/服務器結構······························································································101
4.3.2 瀏覽器/服務器結構······························································································108
4.3.3 混合異構結構······································································································109
4.4 仿真軟件體系結構····································································································.111
4.4.1 DIS ···················································································································.111
4.4.2 DDS ··················································································································.113
4.4.3 HLA··················································································································.114
4.4.4 TENA················································································································.115
4.4.5 LVC ··················································································································.117
本章小結····························································································································.118
本章習題····························································································································.119
第5 章 仿真軟件常用設計模式·····························································································120
5.1 設計模式概述·············································································································120
5.1.1 什麼是設計模式··································································································121
5.1.2 設計模式的分類··································································································121
5.1.3 仿真設計模式······································································································123
5.2 創建型設計模式·········································································································124
5.2.1 單例模式············································································································124
5.2.2 工廠方法模式······································································································127
5.2.3 生成器模式·········································································································129
5.3 結構型設計模式·········································································································131
5.3.1 適配器模式·········································································································131
5.3.2 組合模式············································································································136
5.4 行為型設計模式·········································································································139
5.4.1 模板方法模式······································································································139
5.4.2 命令模式············································································································141
5.4.3 觀察者模式·········································································································144
本章小結·····························································································································149
本章習題·····························································································································149
第6 章 軟件測試與VV&A 技術·····························································································151
6.1 軟件測試概述·············································································································151
6.1.1 軟件測試的發展歷程····························································································151
6.1.2 軟件測試的思想原理····························································································152
6.1.3 軟件測試的原則和目的·························································································154
6.2 軟件測試的過程和策略······························································································156
6.2.1 軟件測試過程······································································································156
6.2.2 單元測試············································································································158
6.2.3 集成測試············································································································159
6.2.4 確認測試············································································································161
6.3 軟件測試技術·············································································································162
6.3.1 黑盒測試············································································································163
6.3.2 白盒測試············································································································167
6.3.3 灰盒測試············································································································173
6.3.4 非功能性測試······································································································174
6.4 VV&A 技術················································································································177
6.4.1 VV&A 的目標·····································································································177
6.4.2 VV&A 的基礎與原則···························································································178
6.4.3 VV&A 的方法·····································································································182
6.4.4 仿真系統的VV&A 過程·······················································································185
本章小結·····························································································································187
本章習題·····························································································································187
第7 章 仿真程序執行與進程管理·························································································189
7.1 仿真程序執行·············································································································189
7.1.1 程序的概念·········································································································189
7.1.2 仿真模型執行機制·······························································································192
7.1.3 程序的編譯執行過程····························································································196
7.2 程序內存分布·············································································································198
7.2.1 存儲器················································································································198
7.2.2 程序內存空間劃分·······························································································200
7.2.3 動態內存分配······································································································200
7.3 進程與進程調度·········································································································202
7.3.1 進程的概念·········································································································202
7.3.2 進程控制塊·········································································································203
7.3.3 進程控制············································································································206
7.3.4 進程調度············································································································210
7.4 進程互斥與同步·········································································································214
7.4.1 進程互斥············································································································214
7.4.2 進程同步············································································································219
7.4.3 進程死鎖············································································································223
本章小結·····························································································································225
本章習題·····························································································································226
第8 章 模型並行編程技術·····································································································227
8.1 模型並行模式·············································································································228
8.1.1 分治模式············································································································229
8.1.2 數據分解模式······································································································233
8.1.3 流水線模式·········································································································235
8.1.4 基於事件的協作模式····························································································239
8.2 基於線程的並發編程·································································································243
8.2.1 線程的概念·········································································································243
8.2.2 線程執行模型······································································································245
8.2.3 POSIX 線程·········································································································245
8.3 線程安全與同步·········································································································248
8.4 基於線程提高模型並行性··························································································250
本章小結·····························································································································254
本章習題·····························································································································255
第9 章 分布式交互通信技術·································································································256
9.1 分布式通信概述·········································································································256
9.1.1 通信概念············································································································256
9.1.2 通信模型············································································································257
9.1.3 通信協議············································································································258
9.2 Socket 通信技術·········································································································258
9.2.1 套接字地址結構··································································································259
9.2.2 套接字函數·········································································································261
9.2.3 客戶端/服務器通信的示例····················································································263
9.3 消息中間件通信技術·································································································267
9.3.1 消息中間件的概念·······························································································267
9.3.2 消息中間件的通信過程·························································································270
9.3.3 常見的消息中間件·······························································································271
9.4 RPC 通信技術············································································································278
9.4.1 RPC 通信的基本概念···························································································278
9.4.2 RPC 通信的基本過程···························································································280
9.4.3 RPC 通信的常見框架···························································································282
本章小結·····························································································································285
本章習題·····························································································································286
第10 章 無人機集群作戰仿真實驗·······················································································287
10.1 軍事想定設計···········································································································288
10.1.1 作戰背景···········································································································288
10.1.2 作戰雙方···········································································································288
10.1.3 作戰環境···········································································································289
10.1.4 任務場景···········································································································290
10.2 模型體系構建···········································································································290
10.3 仿真推演運行···········································································································295
10.4 仿真態勢顯示···········································································································296
10.4.1 紅方無人機集群協同突防打擊·············································································296
10.4.2 藍方反無人機空襲作戰·······················································································298
10.5 綜合分析評估···········································································································299
10.5.1 無人機集群指標體系··························································································300
10.5.2 無人機集群實驗評估··························································································300
10.5.3 關鍵事件分析····································································································304
本章小結·····························································································································307
參考文獻····································································································································308
