徐科華, 陳 謀, 吳慶憲
(1.南京航空航天大學,南京 211100; 2.上海飛機設計研究院,上海 200232)
民用飛機機載系統設計及集成流程是關系飛機系統安全性、可靠性及系統性能的關鍵問題,直接影響飛機研制進度和成本,借鑒國際民機研制領域的先進流程及經驗,結合當前我國實際國情,研究嚴密且符合自身實際情況的系統設計流程是主機單位重點關注和解決的問題。國際上關于大型系統工程設計和集成長期以來一直都遵循嚴格的設計流程,早期國外機載系統集成大多使用瀑布式模型,即自頂而下的流水式模型。瀑布式系統開發模型雖然可用迭代方法改進開發過程中出現的問題,但該方法具有迭代次數多、時間周期長的缺點,不適合復雜大型系統開發。20世紀90年代初,提出了快速原型螺旋形開發技術,該方法包括3個主要回路,即虛擬開發、快速原型及制造與試驗評估,強調系統設計及反復迭代,過程比較復雜。在快速原型及瀑布式開發流程基礎上,先進的機載系統采用自頂而下的設計思想和自底而上的驗證思想,即把機載系統作為飛機的一個子系統對待,作為一個整體進行優化設計與驗證,即V模型開發流程。V模型開發流程與傳統的瀑布型模式非常相似,但是V模型強調在設計階段對系統進行充分的驗證,當前,民機制造商普遍采用V模型系統集成流程[1-2]。隨著民用飛機機載系統綜合性、復雜性的提高,機載系統綜合化、模塊化、開放式架構已經成為未來發展的趨勢;此外,隨著硬件性能的提高和嵌入式軟件的發展,飛機平臺對機載系統設備功能、性能要求不斷提高,其復雜性大幅增加;電子產品快速更新換代也加速了機載系統更新換代。因此,機載系統設計面臨復雜度提高和設計周期縮短的雙重壓力,設計方法和技術面臨新的挑戰,傳統的設計流程已難以適應目前系統設計要求,迫切需要改進目前的設計思想和手段,對傳統設計流程進行再造及優化,采用先進的設計方法和系統驗證環境,保證系統的安全性、可靠性和后向擴展性,降低系統研發成本[3-4]。
傳統民用飛機機載系統設計開發流程主要包括瀑布型流程和V形開發流程及螺旋式開發流程,下面對這3種開發流程進行分析。
1)瀑布式開發流程。
瀑布式開發流程是一種基礎性的流程式開發方式,適合于小型系統或需求比較明確的大中型系統[5],如圖1所示。

圖1 瀑布式開發流程Fig.1 The cascade design procedure
瀑布式開發流程為:初步設計→詳細設計→硬件搭建→軟件編碼。采用線性設計、自頂向下逐步推進的方式,前一模塊的輸出作為下一模塊的輸入。模塊之間需要進行階段性評審。
瀑布式開發便于進行工程管理和評估,但并未很好地解決各個環節上的溝通問題,開發效率也不是很高。其原因主要包括:
①各個環節采用不同的描述方式,缺乏統一有效的描述,造成對需求和設計的理解發生偏差,導致設計錯誤的引入,造成研制發生錯誤,出現大量的后期更改;
②航空電子系統的開發主要采用任務功能依賴于資源平臺,即系統的應用任務與系統資源平臺密切關聯,無法進行系統的并行設計,無法進行資源的復用;
③缺乏有效的仿真、驗證手段,沒有在系統設計的各個階段分別對系統設計進行必要的仿真和驗證,尤其沒有進行充分的需求驗證,無法保證各個階段任務完成的正確性、一致性;
④軟件開發各個階段之間銜接的程度和自動化程度不高。
2)V形開發流程。
機載系統V形開發流程是設計過程與綜合驗證過程緊密聯系在一起交叉進行的,如圖2所示。

圖2 V形開發流程Fig.2 V-shaped design procedure
在V形系統設計流程中,機載系統被劃分為設計過程和綜合驗證過程。系統設計過程按照自頂而下的方法層層分解進行;而系統綜合驗證過程則是自下而上逐步綜合的。由于系統設計過程不產生真實的設備和系統,這個過程又被稱為虛設計過程(Virtual Design Process);系統綜合驗證過程直接產生真實的設備和系統,被稱為實設計過程(Real Design Process)。
在系統設計過程中,每一層設計過程的設計輸入都是上一層設計過程的輸出,它的設計結果又是下一層設計工作的設計輸入,同時也是對應層綜合驗證的依據。與系統設計過程相反,綜合驗證過程自下而上進行,每一層綜合的對象是下一層綜合驗證后交付的產品,綜合的依據則是相對應設計層的設計規范。
V形設計流程是按照系統工程思想建立的完整而系統的設計方法流程,對指導機載系統設計工作起到了重要的作用。V形設計模型理論發展比較成熟,工程實踐經驗積累豐富,在研制過程中對設計、綜合、驗證工具的要求相對較低,研制過程的質量控制和技術狀態控制管理的難度也相對較低,適合在綜合化程度比較低、系統功能相對比較簡單的機載系統的研制過程中使用。目前國內大部分機載系統研制過程采用這種設計方法[6-9]。
3)螺旋式開發流程。
螺旋式開發方法是當今業界大力提倡的設計方法,其開發流程如圖3所示。

圖3 螺旋形設計及驗證流程Fig.3 The spiral design procedure and its verification process
螺旋形流程的設計過程如圖3a所示,每個設計過程都被分為設計層和驗證層兩個緊密聯系的部分,而不是僅僅包括設計層。所增加的驗證層使用快速原型的方法對本層的設計結果進行驗證。這種包括快速原型驗證的設計過程又被稱作虛擬快速原型設計過程,階段劃分上對應于V形設計流程的虛設計過程(Virtual Design Process)。
螺旋形流程的綜合驗證過程如圖3b所示,系統綜合的過程非常明確地采用了自下而上的逐步綜合方法,在逐步綜合的每一層迭代都包含有設計修正,甚至一些設計開發工作,因此這一階段的工作被稱為系統綜合過程而不是系統試驗。因為這一過程是以實物而不是仿真模型進行的,因此系統的自下而上的逐步綜合驗證過程又被稱為實物綜合過程,階段劃分上對應于V形設計流程的實設計過程(Real Design Process)。
螺旋式開發通過建模與模型驗證,建立用于模型驗證的原型平臺,解決了系統開發的正確性問題,建立起需求分析模型、功能分析和綜合模型。通過對模型進行形式化的驗證、測試、優化,保證系統設計的正確性,通過自動化的模型轉換,保證各開發階段設計的一致性,從而提高機載系統開發的效率和軟件產品的可靠性。基于螺旋式軟件開發方法通過引入風險評估機制,對各個階段模型進行螺旋式的迭代評估與驗證,從而在概念設計階段、原型仿真階段和系統初步設計階段降低研制的技術實現的風險,減少因設計引入的錯誤,提高系統設計質量。另外,通過基于模型驅動的開發方法,模型的自動轉換與代碼和文檔的自動生成,解決了軟件開發過程中的設計、代碼和文檔的一致性問題[10]。
傳統的設計方法主要包括系統需求與需求分析、系統方案論證、系統初步設計和詳細設計、系統軟硬件開發、系統模塊集成、系統綜合、系統驗收測試。在整個設計過程中,上一設計階段產生的結果是下一設計階段的輸入,相鄰兩個設計階段具有因果關系,緊密相聯。為了防止前一個階段的設計錯誤蔓延到后續的各個階段,在每一階段的設計任務完成后,都必須對其階段性產品及結果進行驗證、評審,認定正確后再轉入下一設計階段。
經過多年的實踐與研究分析,發現目前的系統設計開發過程存在如下不足情況。
1)需要以完整的、精確的需求分析為基礎才能開展下一步工作。按照要求,每個階段的輸入是上個階段的輸出,即只有在明確上一階段的輸出的條件下才能開展下一步的工作。對于簡單系統而言,在系統設計初始給出完整的需求是有可能的,但是,對于一個復雜的大系統,尤其是面對新系統的設計,這實際是難以做到的,而我國開展民機研制基礎比較薄弱,人員經驗不足,更加劇了問題的嚴重性。
2)文本描述的缺陷。采用傳統的系統設計文件,無論是需求還是技術規范,均采用文本文檔進行說明。相對圖形化描述而言,僅用文字和數字表達準確及正確進行閱讀理解都是費時費力的,難免出現差錯。隨著系統復雜性不斷增加,靜態的書面文檔通常很難提供足夠的系統動態行為描述和規范說明,對于不同文化背景的人,對文本的需求常常有不同的解釋或者文本需求本身存在有含糊不清的地方,因此,造成對需求理解的差異,設計出錯的概率增加。
3)無法直觀進行交流。在系統開發早期,設計師無法向用戶展示其設計成果,無法與用戶直接進行溝通,滿足用戶的需求,也無法對設計進行驗證,難以發現設計錯誤。通常情況下,用戶在與設計師共同完成需求分析之后就被排除在產品開發決策過程之外,用戶主要參與各階段的階段成果的評審,此時,只能憑借個人的經驗,對系統設計提出意見,往往要等到設計過程完成,生產出樣品以后,用戶才能參與對產品設計的評價。這時,如果用戶發現設計者對其意圖的理解上有偏差,需要進行修改設計及研制,那么往往會對整個設計項目帶來很大的損失,甚至需要重新開始設計。
4)系統頂層設計和實現相分離。根據現行的開發流程,設計活動與相關測試活動之間存在著一種可追溯的對應關系。即詳細設計的正確性通過單元測試來驗證,系統設計的正確性通過系統綜合集成測試來驗證,依此類推。也就是說,在傳統的設計過程中,越是在整個設計過程中處于上游的設計活動,其正確性得到確認的時間越晚。上游設計是下游設計的基礎和依據,但是上游設計結果的正確性卻一直要等到下游設計完成之后才能得到確認,這樣就無法保證下游的設計工作有一個正確的前提。缺乏系統需求的正確性驗證與測試性驗證,導致系統設計與實現相互分離。
5)缺乏協同設計。在系統開發過程中,通常硬件設計師和軟件設計師在自己工作方面都能滿足設計要求,而往往在系統進行綜合時,就未必能滿足用戶的需求。出現這種問題一般都是在系統的綜合階段(開發的后期)才能發現。據統計,后期發現設計錯誤進行修改所花費的費用是前期發生費用的10~1000倍,甚至更多。導致出現上述問題的原因是,在軟、硬件設計時,缺乏協同設計,忽略了各自間的相互聯系。
V形開發流程的最大特點是上一層的設計結果作為下一層的設計輸入,而不進行驗證,因此,導致最頂層的設計反而到最后才進行驗證,把前期的隱患帶入后期,造成設計更改困難,進度延遲,代價巨大,但是V形流程的需求、設計、系統綜合及驗證的關聯性、可追溯性確實具有強大的生命力,V模型的缺點可以結合螺旋形開發流程的優點進行改進,采用螺旋形開發流程對V形開發流程進行改進和再造將是未來復雜系統設計、集成的主流方法,詳細過程如下。
在V形開發流程自頂而下設計過程的每一層次,引入快速原型設計概念進行迭代設計。每個設計過程都被分為設計層和驗證層兩個緊密聯系的部分,而不是僅僅包括設計層。所增加的驗證層使用快速原型的方法對本層的設計結果進行驗證。每一層的設計過程包括如下內容。
1)來自上一層的設計要求是本層的設計輸入。
2)對該設計輸入進行需求分析,得到本層的設計要求(規范)。
3)依據本層設計要求(規范)開展詳細設計等工作,形成本層的設計結果。
4)建立系統快速原型、進行仿真驗證。
5)對設計結果進行評審。如果快速原型仿真證明設計是正確可行的,即可在對設計進行修正后轉入下一層工作;如果仿真結果發現設計存在根本的錯誤和問題,則需要重新進行本層的工作。
機載系統綜合及驗證過程相對于自頂而下層層分解的設計過程,是一個自下而上逐步綜合的迭代過程。每一個驗證迭代過程包括以下工作項目。
1)詳細設計或前一層綜合所產生的產品是本層綜合的對象,這個對象可能是軟硬件、設備、子系統或系統。
2)機載系統設計模型中對應層設計的結果是本層進行測試驗證的依據,如系統綜合層的測試驗證依據是系統設計層產生的系統規范。
3)對綜合過程進行計劃,包括系統綜合構形、綜合進行的步驟、綜合記錄數據的判據等。
4)按照計劃對真實軟硬件、設備或系統進行測試驗證。
5)根據測試驗證結果對所綜合的對象進行分析評估。
6)根據驗證結果對設計進行修正,并進行階段評審。如果系統綜合的結果符合本層設計要求,則可以進行下一階段的綜合工作;如果沒有達到設計要求,則需要根據測試驗證結果對設計進行修改,之后重新進行本層綜合過程。
上述設計流程如圖4所示。
通過采用螺旋形開發流程對V形開發流程進行改造,系統設計流程既具有V模型的虛設計過程及實設計過程,又體現了螺旋形模型強調層層驗證的優勢,對開發大型復雜系統更有利。

圖4 改進的機載系統設計流程Fig.4 The improved design procedure for airborne system
綜上所述,傳統的瀑布式開發流程、V形開發流程及螺旋形開發流程都存在一定的局限性,難以滿足大型綜合復雜系統的設計及集成要求。而采用螺旋形開發流程對現行的V形開發流程進行改造,具備兩個開發流程的優點。因為系統設計和驗證不再是時間上相對獨立的兩個開發過程。在系統自頂而下虛設計過程中包含著系統的虛擬仿真驗證過程;在系統自下而上綜合的實設計過程中包括系統設計和開發工作。每個設計和綜合層次都需要對系統的設計進行驗證,并根據驗證結果對設計進行修正,所不同的是所驗證的對象逐漸由抽象變為具體,由虛擬變為真實。
另外,改進后的開發流程使用設計與綜合驗證循環迭代的思想,縮短了設計驗證周期,盡可能在本階段的綜合驗證中發現并修正設計錯誤,降低設計風險。但對用于設計和綜合驗證的工具和手段提出了很高的要求,對設計質量保證和技術狀態控制的要求也比較高,非常適合在復雜的大型民用飛機機載系統設計研制過程中使用。目前,民機機載系統開發及集成工具正逐漸走向完善和成熟,在現階段可通過引進這些設計驗證工具,研究上述優化的機載系統設計流程的工程實踐方法,逐漸在后續系統研制過程中嘗試使用。
[1] OOLLA K,KHARGONEKAR P,TIKKU A,et al.A timedomain approach to model validation[J].IEEE Transactions on Automatic Control,1994,39(5):951-959.
[2] HENZINGER T A,HO P H,TOI H W.HyTech:A model checker for hybrid systems[J].International Journal on Software Tools for Technology Transfer,1997,1:460-463.
[3] 李向東,仇振安,蘇文強.懸掛物管理功能仿真通用技術應用研究[J].電光與控制,2011,18(10):82-86.
[4] 李宏,吳衡,胡丙華,等.基于網絡通信架構的分布式測試系統[J].電光與控制,2011,18(10):73-75.
[5] 金明霞,吳曉燕,朱昌葵.建模與仿真生命周期綜述[J].計算機仿真,2003,20(8):46-48.
[6] MAIER M W.Architecting principles for systems-of-systems[J].System Engineering,1998,1(4):267-284.
[7] LIU J,EKER J,JANNECK J W,et al.Actor-oriented control system design:A responsible framework perspective[J].IEEE Transactions on control Systems Technology,2004,12(2):250-262.
[8] OSES N,PIDD M,BROOKS R J.Critical issues in the development of component-based discrete simulation[J].Simulation Modelling Practice and Theory,2004,12(7/8):495-514.
[9] MURPHY B,WAKEFIELD A.Early verification and validation using model-based design [J].EDN,2009,54(13):39-41.
[10] HARDEBOLLE C,BOULANGER F.Exploring multiparadigm modeling techniques[J].Simulation,2009,85(11/12):688-708.