第一節 總體設計的概念及基本思路
20世紀80年代,我軍各種計算機模擬訓練系統的研制工作,是以國外同類系統和我軍訓練經驗為兩大直接源泉,其中主要是以國外系統為參考進行技術設計后,即展開技術研制,是以各種數學、電子計算機和其他工程技術人員為主體的[2]。20世紀90年代,提出了系統軍事總體設計的概念;21世紀初進一步形成了以軍事總體設計為主體的系統設計理論。只有充分理解這些系統設計實踐與理論的時代背景和條件、創新思路和意義,以及所存在的局限性,才能夠針對當前的現實情況和客觀需求,提出系統設計的新概念新思路。
一、早期系統技術設計基本思路
早期我軍各種軍事信息系統的建設中,由于理論和經驗的雙重匱乏,往往缺少正規的系統設計,也沒有相對獨立的系統設計階段。小型的軍事信息系統,技術人員和相關軍事人員溝通、了解基本的需求,提出概略的技術設想后,即直接開始軟件研發;較為復雜的軍事信息系統,則由技術人員根據軍事人員提出的各種需求,形成一個總體技術方案,各部分的技術實現人員各司其職,在研發過程中遇到了技術困難再進行討論、解決。具體實踐中,主要可區分為兩種不同的基本思路。
第一種,以軍事任務和基本過程作為系統設計的依據。主要是由軍事人員講述軍事任務和基本過程,結合講述的內容提出一些具體的工作需要,譬如,研發模擬訓練系統時,把作戰或演習的任務及過程講述清楚,研發部隊值班勤務系統把日常部隊值班的任務及處置過程講述清楚。技術人員以此為基礎,結合各種可用的技術手段來完成總體技術設計。這一思路,既可以使得軍事問題“透明化”,為相應軍事信息系統的設計提供“軍事剖面”;同時,可以將軍事問題簡單化,可操作性很強。但是,從實踐經驗來看,這一思路主要存在三方面的問題。一是軍事人員對軍事問題講述的準確性、全面性難以保證。以模擬訓練系統為例,通常不可能由一個或者少數幾個軍事人員就將整個作戰或演習的任務、過程都講述清楚,而是需要多個指揮層級、各個指揮要素的相關軍事人員分別進行講述,各自講述的某些內容可能是重復交叉的,而某些內容又可能是大家都沒有講到的。并且,在當時的條件下,軍事人員幾乎沒有接觸過完整的模擬訓練系統,因此其講述的軍事問題以及提出的各種工作需要,都難以針對系統建設而言。最終,各個軍事人員想到哪些就講哪些,自己怎么認為的就怎么講。二是技術人員對軍事問題理解的準確性、全面性難以保證。由于計算機技術人員一般不懂軍隊的戰役戰術訓練,也不了解指揮作業和演習,對此沒有任何直觀的認識。就算是軍事人員反復向他們講述指揮作業和演習的全過程以及每一個環節,但是由于欠缺基本的軍事知識,這樣臨時性的突擊學習軍事知識,從根本上違反了軍事學習的系統性、實踐性規律(也違反一般知識學習的規律),最終,不但不能夠解決軍事與技術結合的根本問題,還可能對系統建設的方法產生誤導。因此,計算機技術人員只能夠理解成什么樣就設計成什么樣,理解多少就實現多少。三是系統的適用性和可用性難以保證。軍事人員在講述軍事任務和基本過程時,通常會受到本單位具體任務的局限。技術人員更難以由點及面,舉一反三,將具體軍事任務及其過程進行抽象化。這就導致研制出來的系統,往往適用范圍較小,換一個單位使用或者本單位的任務稍有變動,系統就難以滿足使用需求。而要想從根本上解決這一問題,就需要反復地進行大量的同類型系統研制,最終形成適用性和可用性較好的系統,但在現實中幾乎是不可能的。因此,這種思路主要用于解決軍事信息系統“從無到有”的起步階段。
第二種,以系統的“軍事需求”作為系統設計的基本依據。主要是在系統研制的前期,將軍事人員與技術人員“捆綁”在一起,從軍事問題描述、使用需求、技術需求等方面來形成較為全面的“軍事需求”,技術人員再以此為基礎完成技術總體設計,作為后續工程研制的依據。這一思路相對于前一種有了較大的進步,但在實踐過程中仍然遇到了一些問題。一是軍事人員難以提出完整、具體的軍事需求。由于當時軍事指揮人員大多不懂計算機技術,不了解計算機有什么特點和功能,能夠幫助指揮員和參謀人員具體干什么,因此,對模擬訓練系統的期望五花八門,表達的隨意性也很大。不同層級、不同崗位的軍事人員會提出各種各樣的需求,但沒有較好的完整性、層次性和可操作性,更難以講清各種需求的內在本質聯系。二是技術人員難以全面、準確地落實軍事需求。面對軍事人員提出來的軍事需求:“實現導演部對參演雙方指揮作業的遠程監控”“多個部隊遠程異地演習”“××級指揮員下達命令,系統進行模擬對抗”等。但技術人員往往認為:這些需求要么過于簡單,要么過于抽象零散,無法實現。回過頭來看,這樣的“軍事需求”確實反映了部隊和院校對于模擬訓練系統的期望,也算得上實實在在的需求,而且相當準確與精煉。但是對于工程技術人員而言,僅僅憑借這樣一些需求,就設計實現一個實用的模擬訓練系統,其困難是可想而知的,需要很多相應的軍事知識和計算機技術知識作為支撐。這一思路,對于當時的軍事指揮人員和工程技術人員,都要求過高了。在實踐中,往往是參照國外某些相似系統(通常資料并不完整),結合宏觀的、零散的軍事需求來進行系統的設計與研發。等到系統基本成形時,軍事指揮人員通過試用才能知道,哪些內容和功能基本適應使用要求,哪些脫離了實際需求,再要求技術人員進行修改,而由于時間、經費的制約以及系統本身結構的限制,通常只能針對某些局部或細節進行修改完善,最終形成勉強堪用的系統。
二、軍事總體設計的提出及發展
經過20世紀80年代,我軍第一次軍事信息系統建設的高潮期,一些負責或參與過系統建設的軍事專家,在20世紀90年代初總結經驗、教訓的基礎上,提出了“軍事總體設計”這一基本概念[3],對于計算機戰役戰術訓練模擬系統軍事總體設計的基本要求、內容和方法、戰斗行動模擬的軍事設計以及圖形設計等進行了探討,反映了軍事信息系統,尤其是模擬訓練系統設計與研發的客觀需求。軍事總體設計是建立在兩個重點的基礎之上的:軍事專家不斷積累計算機技術和模擬訓練知識、經驗;技術專家逐步了解軍事指揮和演習訓練的基本情況。但是,當時計算機仍然非常稀有,計算機知識遠未普及,僅僅是極少數的軍事專家掌握一定的計算機技術和模擬訓練知識,大多數軍事人員對此仍然處于“啟蒙”階段。因此,當時對于系統軍事總體設計的研究與闡述,雖然具有開創性意義,一些基本原理當前仍具有一定的參考借鑒意義,但很多具體內容今天看來已經屬于科普知識了,譬如,模擬訓練系統與指揮自動化系統之間的區別、圖形要素及電子地圖的制作等。
進入20世紀90年代,在軍委新時期軍事戰略方針的指引下,以高技術條件下局部戰爭的軍事需求為牽引,以總部首長關于訓練方法模擬化的指示精神為依據,我軍又掀起了研制軍事信息系統的熱潮,一些合同戰役戰術訓練模擬系統進入部隊與院校應用。從20世紀90年代末至21世紀初,有關軍事信息系統總體設計的專著陸續出版[4]。其中,理論體系最為完整、闡述最為清晰的是郭衛平教授主編的《指揮自動化系統軍事總體設計原理》。雖然從書名來看,是針對“指揮自動化系統”而言的,但由于郭衛平教授也是20世紀90年代出版的《計算機戰役戰術訓練模擬系統軍事總體設計原理》的副主編,所以不僅該書中所闡述的軍事總體設計方法對于模擬訓練系統是完全適用的,而且在第四編(全書總共包括四編)中系統闡述了“指揮網演習”功能的軍事總體設計原理和方法,其實質就是針對模擬訓練系統而言的。
軍事信息系統的設計可分為三個層次:第一是系統的軍事總體設計。這是對系統的軍事使用方法及各個軍事工作組成部分的總體描述。第二是系統的技術總體設計。這是為了保證系統的軍事使用,而對系統的技術實現方法及各個技術組成部分的總體的基本描述。第三是系統的具體技術設計。這是為了保證系統的技術總體設計的實現,而對系統的技術實現的具體方法及各個具體技術組成部分的詳細描述[5]。其中,系統的軍事總體設計,就是在系統的最高層次上(頂層),對系統的要素,要素間相互關系和聯系,以及系統的全部功能和各要素的基本功能的設計。更概括地講,“軍事使用與軍事需求”的總和,實現“全部功能”,包括“全部要素”,包括“全系統結構”的設計,就是系統的軍事總體設計[6]。
21世紀初我軍對于軍事信息系統設計,尤其是軍事總體設計的理論認識,主要是對我軍第二輪軍事信息系統建設經驗、教訓的總結和提煉。反過來,軍事總體設計這一概念的提出以及完善,對于我軍各種軍事信息系統的建設,發揮了重要的理論指導作用,使得系統設計與建設水平有了新的進步。但是,如果我們真正從用戶的角度來思考,就會發現我軍各種軍事信息系統,尤其是模擬訓練系統的實用性、可信度問題仍然沒有得到根本性解決,系統生命力比較短暫,很少真正受到部隊和院校使用人員的歡迎。
究其原因,首先固然是由于我軍作戰模擬主要以“modeling and simula?tion”為核心,輕視實踐經驗和非物質因素(這一點在第一章已有詳細論述),同時也與系統設計理論的局限性有一定的關系。具體表現在兩個方面:一是造成了軍事與技術之間新的“鴻溝”。軍事總體設計與技術總體設計的“二分法”,從概念上就讓人感覺前者是由軍事人員來完成的,后者則是由技術人員負責的。但是,在21世紀前后,雖然參與系統設計的軍事人員通常掌握了一定的計算機知識,但主要是基礎性技能,并不足以從模擬系統研發的角度形成完整的軍事總體設計。同時,軍事人員不全面深入地參與技術總體設計,就無法判斷技術人員是否準確理解了軍事總體設計,以及技術總體設計是否能夠有效地滿足軍事需求,及時糾正可能出現的偏差,最終的結果是技術人員按自己的理解來進行技術總體設計,理解成什么樣就設計成什么樣,理解到什么程度就設計到什么程度。二是弱化了軍事規則與模型的具體設計。在完成軍事總體設計之后,就進入到技術總體設計和具體技術設計環節,并沒有進一步的具體軍事設計環節。而在軍事需求分析和軍事總體設計中,只對作戰行動進行總體分析,并未完整地設計軍事規則和模型。這就從系統設計方法與程序上,導致了軍事規則與模型的具體設計被弱化,甚至是在軍事專家沒有完整、準確地進行軍事概念建模的前提下,直接由軍事運籌人員、計算機技術人員建立各種數學模型,以此來模擬各種作戰行動及裁決結果,導致了系統模擬與裁決結果難以令軍事人員信服。
同時,時代的發展也對系統設計提出了新的需求。一方面,隨著信息化戰爭形態和聯合作戰的深入發展,模擬訓練系統的復雜性、技術難度大幅提高。只有軍事人員與技術人員密切協作,才能夠在軍事問題分析的基礎上,提煉出全面、準確的軍事需求,提出合理的、實用的功能要求。同時,技術人員也需要盡早介入到系統設計中,而不能被動地接受和理解所謂的“軍事總體設計”。另一方面,計算機技術的迅猛發展,導致軟件系統設計與研發的分工更加精細。除了大力加強各個專業技術人員之間的溝通之外,更必要的解決辦法是在具體技術設計之前,對系統的總體“技術標準”進行更為詳細的設計與規范,否則各個分系統就無法有機地組成統一的大系統,至少無法發揮其全部功能。這個問題已經越來越需要作為一個相對獨立的設計環節來對待。第三方面,計算機技術和各種作戰模擬系統的廣泛應用,使得軍事人員能夠在一定程度上參與系統技術設計,而數字地圖、標圖和文書擬制,甚至于三維顯示等問題,已經不再是系統設計需要考慮的重難點。另外,兵棋系統的實踐性特征,也要求以作戰行動規則、模型和數據設計為核心,以科學好用為目的,安排獨立的具體軍事設計層次。
三、以總體設計為核心的新思路
系統設計“三個層次”理論的局限性,以及時代發展的新需求,呼喚著在軍事信息系統設計上提出新的思路和新的概念。經過十多年來參與研發以“modeling and simulation”為核心的傳統作戰模擬系統,以及設計多款聯合戰役、戰術層級兵棋系統所積累的經驗和教訓,并參考借鑒國外在系統設計中“頂層設計”概念的目的和作用,我們建立了以“總體設計”為核心的兵棋系統設計新思路。兵棋系統設計區分為兩個層次、三個部分,即總體設計和具體設計兩個層次,而具體設計又區分為具體軍事設計與具體技術設計,如圖2.1所示。雖然具體技術設計原則上應該服從和服務于具體軍事設計,但這兩個部分的內容基本可以并行展開,只需要及時進行對接與溝通。其他軍事信息系統的設計,也可以在一定程度上借鑒這一設計思路。
圖2.1 以“總體設計”為核心的系統設計思路
兵棋系統的總體設計是指軍事人員與技術人員通用合作,針對系統的軍事問題及技術實現方法進行總體性的研究與描述。兵棋總體設計又可以分為四個階段,即在軍事需求分析的基礎上,設計形成兵棋規則的總體框架,設計完成系統的總體架構,并針對主要功能的實現進行總體設計。其目的是通過總體設計,為軍事人員和技術人員的密切協作提供一個具體的抓手,技術人員能夠比較全面、準確地把握軍事人員的需求和想法,并貫徹在兵棋系統的具體技術設計與研發之中;而軍事人員能夠比較直觀、全局地了解系統最終的組成和功能,及時查找出不符合軍事需求和使用方法的問題。通俗來講,就是先使技術人員明白軍事人員想要做出什么樣的系統來,再使軍事人員明白技術人員準備做出什么樣的系統來,兩相對照,及時修正。
規則總體框架設計,主要是基于一定的單位分辨率和行動分辨率,對所需要模擬的作戰過程進行分解、歸并、提煉,確定系統需要支持的作戰行動及對應的指令名稱,對其進行簡要描述,包括可能隱含的作戰行動,如遭遇戰,并初步確定各種毀傷效果的分類及基本裁決思路。這是具體軍事設計,尤其是具體規則、模型、數據設計的基本依據,為具體技術設計提供概略的需求牽引。這一部分內容并沒有很復雜、系統的原理論述,主要是結合兵棋推演的目的、層級以及具體的作戰任務、樣式等進行分解和提煉。一般性的討論,可以參考借鑒以前的一些專著[7]。針對性的討論,則必須結合具體的作戰任務、樣式來展開,因難以處理保密問題,本書中對此不再專門展開論述。
系統總體架構設計,可以視為系統設計的“總體之總體”。是基于系統體系結構[8]這一概念及相關理論,結合作戰模擬系統,尤其是兵棋系統建設的經驗和教訓所提出的。其基本思路是基于軍事需求分析及規則總體框架,構建直觀的功能架構;再針對部署環境和運用方式,提煉形成典型的部署(物理)架構;然后結合具體的設計理念(思路)提出系統的邏輯(組成)架構;進一步完成系統技術架構和通信架構的設計;通常還需要對交互界面及其邏輯關系進行總體設計。總體架構設計,是一個由軍事向技術逐步過渡、初步形成系統最終狀態及功能的“藍圖”。總體架構設計,可以為軍事人員和技術人員提供溝通對接的平臺和語境,及時糾正可能出現的偏差,確保系統研發的基本方向和思路正確。
不同類型的兵棋系統,其主要功能存在較大差別;同一類型的兵棋系統,主要功能的區分及描述也可能差異很多。本書主要針對聯合戰役、戰術訓練兵棋,將其主要功能歸并提煉為推演準備功能、推演實施功能、推演總結功能和基礎支撐功能等四部分。主要功能的總體設計,是對以往“技術總體設計”的精簡與完善。技術總體設計,沒有原理的論述,只是對系統的技術實現方法及各個技術組成部分的基本描述,因此難以形成具有普遍指導意義、可公開出版的著作。而主要功能的總體設計,則是從技術實現的角度,概要闡述各個主要功能子系統(模型),對功能要點進行分析,進而提煉出基本的邏輯思路,初步設計其交互界面。雖然不涉及太多的理論分析與闡述,但其基本思路及內容,具有一定的普遍指導意義和參考借鑒作用。
具體軍事設計,不僅是在詳細分析作戰行動過程及影響因素的基礎上,設計作戰規則、模型和數據[9],也包括設計各種作戰指令的具體參數及輸入方式、執行情況報告及行動結果戰報,并且還需要設計軍事檢查驗收方案及檢驗調試的想定。以往的系統設計,尤其是軍事總體設計中,軍事概念模型的設計往往被忽視,更重視數學模型和程序模型的設計與編寫工作[10]。對于作戰指令的參數輸入及結果報告與輸出,軍事指揮人員則很少進行完整、詳細的設計。往往是由技術人員根據自己的理解、參考其他系統直接進行研發。這是導致最終研發出來的系統可操作性、用戶友好度較差的主要原因之一。具體軍事設計,就是針對這一問題而提出來的。
具體技術設計,是以系統的總體架構設計、各項主要功能的總體設計為基礎,著重解決所存在的具體技術問題,詳細描繪出各個技術要素的細節,可供技術人員在研制工作中進行直接操作。具體技術設計,可以認為是各種計算機技術、通信技術、人工智能技術等在具體兵棋系統中的應用。通常可能包括態勢信息顯示、數據綜合管理、網絡通信、規則引擎、地圖引擎、態勢回放等方面的具體技術設計。哪些方面需要進一步展開具體技術設計,以及各技術要素設計的具體內容,通常都需要結合具體的兵棋研制任務來確定和展開。