中航工業(yè)第一飛機(jī)設(shè)計(jì)研究院 葛立敏 劉遠(yuǎn)恒 王 揚(yáng)
傳統(tǒng)設(shè)計(jì)流程的每個(gè)階段都是基于文檔描述的形式,通過大量的、各種不同的文檔傳遞信息。隨著系統(tǒng)規(guī)模和復(fù)雜度的不斷增加,文檔的數(shù)量和種類成倍增加,而且在整個(gè)過程中主要依賴于人,人的經(jīng)驗(yàn)和質(zhì)量意識(shí)影響系統(tǒng)設(shè)計(jì)的結(jié)果?,F(xiàn)代飛機(jī)的航電系統(tǒng)功能越來越復(fù)雜,綜合化程度不斷提高,給傳統(tǒng)設(shè)計(jì)帶來了新的挑戰(zhàn)[1]。表現(xiàn)為:
(1)在需求階段的投入不足。其詳細(xì)的需求分析沒有科學(xué)的指導(dǎo)方法,系統(tǒng)設(shè)計(jì)的需求會(huì)存在很多隱患,而需求的捕獲、分析及定義對(duì)于開發(fā)一個(gè)成功的系統(tǒng)至關(guān)重要。
(2)前期需求缺少驗(yàn)證的手段,在后續(xù)設(shè)計(jì)和實(shí)現(xiàn)階段發(fā)現(xiàn)大量需求存在的問題,耗費(fèi)大量人力、物力和時(shí)間,直接影響系統(tǒng)開發(fā)的成敗。
(3)設(shè)計(jì)文件基于文字形式描述,信息傳遞差、標(biāo)準(zhǔn)化程度低,容易產(chǎn)生二義性,難以表述各種活動(dòng)。
(4)更改難度大。所有信息都包含在不同的文檔中,要確保所有需要更改的內(nèi)容都得到更改,將是個(gè)艱難的工程。
(5)方案設(shè)計(jì)、詳細(xì)設(shè)計(jì)、開發(fā)、仿真和驗(yàn)證,整個(gè)過程之間缺少有效的需求追蹤關(guān)系。
現(xiàn)代飛機(jī)航電系統(tǒng)這樣復(fù)雜的任務(wù)不可能靠一個(gè)人來完成,因?yàn)闆]人能精通整個(gè)系統(tǒng)所涉及的全部專業(yè)知識(shí),也沒人能有足夠的時(shí)間來完成數(shù)量驚人的技術(shù)協(xié)調(diào)工作。這就需要有一套科學(xué)的方法將人員、物質(zhì)、資金等組織起來,有條理、高效率地完成工程任務(wù)。
系統(tǒng)工程設(shè)計(jì)方法分析與設(shè)計(jì)過程的目標(biāo)是將用戶需求轉(zhuǎn)化為設(shè)計(jì)說明,即能夠指導(dǎo)系統(tǒng)實(shí)現(xiàn)的一套解決辦法。簡(jiǎn)單地講,系統(tǒng)工程就是開發(fā)解決問題的系統(tǒng)的思想方法,按照這樣的方法和步驟就可以幫助人們了解一個(gè)系統(tǒng),對(duì)復(fù)雜的系統(tǒng)就不會(huì)感到無從下手,從而用流程和方法來保證系統(tǒng)設(shè)計(jì)的質(zhì)量[2]。
基于模型的系統(tǒng)工程采用通用的系統(tǒng)建模語(yǔ)言SysML[3]對(duì)系統(tǒng)進(jìn)行建模分析?;谀P偷南到y(tǒng)工程設(shè)計(jì)流程如圖1所示分為兩大階段,即黑盒分析和白盒分析過程。簡(jiǎn)而言之,黑盒分析過程明確系統(tǒng)要干什么,白盒分析過程確定如何實(shí)現(xiàn)。
基于模型的系統(tǒng)工程設(shè)計(jì)方法是基于需求分析和設(shè)計(jì)的指導(dǎo)方法,而非進(jìn)行需求捕獲的方法。采用DOORS工具對(duì)需要進(jìn)行管理,可根據(jù)需要定義需求屬性。
基于模型的系統(tǒng)工程設(shè)計(jì)方法只針對(duì)ARP4754中描述的功能性需求進(jìn)行建模。功能性需求是系統(tǒng)需求的核心,先有功能性需求才會(huì)提出對(duì)應(yīng)的性能需求、操作需求和接口需求等[4]。
將系統(tǒng)的涉眾需求歸納為初步系統(tǒng)需求,把DOORS中的需求導(dǎo)入建模工具Rhapsody中。建模過程中的所有活動(dòng)都以需求作為驅(qū)動(dòng)。
2.1 系統(tǒng)用例圖
USE CASE圖看似簡(jiǎn)單,但卻是非常困難和重要的一個(gè)階段。用例圖包括3部分信息:邊界、用例(功能塊)和參與者,如圖2所示。初步系統(tǒng)需求往往是非常龐大的,而且信息比較雜亂,如何有效地從中提取系統(tǒng)的相關(guān)需求變得尤為重要。用例圖提供了一種科學(xué)的指導(dǎo)方法:(1)一定要站在系統(tǒng)的角度來抽象系統(tǒng)要完成的功能。剛開始只關(guān)注系統(tǒng)要完成的功能,根據(jù)功能對(duì)需求進(jìn)行整理,明確系統(tǒng)邊界。(2)現(xiàn)代飛機(jī)航電系統(tǒng)提供的功能非常繁雜,避免一開始就陷入需求的細(xì)節(jié)。要對(duì)關(guān)鍵功能需求進(jìn)行抽象,根據(jù)功能的相關(guān)性抽象幾個(gè)大的功能塊,功能塊之間盡可能獨(dú)立。(3)分析完系統(tǒng)的邊界和系統(tǒng)的功能塊,緊接著考慮每個(gè)用例分別給“誰”提供信息,又需要“誰”參與,定義系統(tǒng)的參與者。
整個(gè)分析過程就是對(duì)系統(tǒng)需求的充分理解,隨著對(duì)系統(tǒng)認(rèn)識(shí)的深入必然對(duì)需求有所更改,進(jìn)一步更新完善系統(tǒng)需求。
2.2 用例圖需求追蹤
建立需求追蹤矩陣,再次確認(rèn)用例分析過程中沒有遺漏主要功能項(xiàng),特別是分析中更改、完善的需求。
完成系統(tǒng)用例圖后,按用例進(jìn)行分工,針對(duì)每一個(gè)用例進(jìn)行系統(tǒng)功能分析。功能分析只關(guān)注系統(tǒng)的功能,不考慮系統(tǒng)的架構(gòu)和實(shí)現(xiàn)方式。把系統(tǒng)當(dāng)作一個(gè)黑盒,通過活動(dòng)圖、時(shí)序圖、端口和接口、狀態(tài)機(jī)運(yùn)行多個(gè)視角分析系統(tǒng),形成一個(gè)反復(fù)迭代、逐步深入的過程。用模型的方式更直觀地展示系統(tǒng)的功能,最為關(guān)鍵的就是通過模型的運(yùn)行,能夠盡早地驗(yàn)證、確認(rèn)功能需求[5]。
采用這樣的功能分析方法,能夠進(jìn)一步明確系統(tǒng)的功能需求,幫助思考以下幾點(diǎn):(1)是否正確地理解系統(tǒng)的功能需求;(2)功能需求是否存在沖突、重復(fù)、二義性和錯(cuò)誤;(3)是否有遺漏的功能需求。
黑盒活動(dòng)圖的目的是識(shí)別系統(tǒng)的所有功能和主要的功能流,關(guān)注系統(tǒng)內(nèi)在功能和可能發(fā)生的交互;規(guī)定系統(tǒng)的業(yè)務(wù)流程,功能之間的邏輯關(guān)系,隱含了功能之間的依存關(guān)系;動(dòng)態(tài)有交互地展現(xiàn)系統(tǒng)的功能需求,如圖3所示。
(1)建模過程是站在系統(tǒng)的角度看待系統(tǒng)的活動(dòng),要注意區(qū)分系統(tǒng)使用流程和系統(tǒng)活動(dòng)之間的區(qū)別。(2)建立活動(dòng)圖時(shí),先關(guān)注互相獨(dú)立的關(guān)鍵功能,把問題先分解最后再整體考慮。(3)建立活動(dòng)圖的過程中對(duì)系統(tǒng)的認(rèn)識(shí)越來越深入,會(huì)考慮到系統(tǒng)功能的很多細(xì)節(jié),包括對(duì)外部參與者的輸入、輸出?;顒?dòng)圖中涵蓋定義所有的外部參與者。(4)活動(dòng)圖建模過程中避免使用含糊的描述,明確指出系統(tǒng)需要輸入的具體參數(shù),引出系統(tǒng)的端口和接口。
圖1 基于模型的系統(tǒng)工程設(shè)計(jì)流程
圖2 航電系統(tǒng)進(jìn)近階段用例圖
在活動(dòng)圖的基礎(chǔ)上考慮系統(tǒng)運(yùn)行的場(chǎng)景,將注意力集中于每一個(gè)場(chǎng)景,而不是整個(gè)系統(tǒng)。讓設(shè)計(jì)者的關(guān)注點(diǎn)更加集中,再次明確系統(tǒng)功能的動(dòng)態(tài)過程以及與外部參與者的交互。順序圖相比活動(dòng)圖并沒有增加新的內(nèi)容,而是將活動(dòng)圖中的活動(dòng)轉(zhuǎn)換為序圖中的行為。但因?yàn)槠洫?dú)特的展現(xiàn)方式能更有效地揭示系統(tǒng)與外界參與者之間的交互內(nèi)容,更加凸顯系統(tǒng)的時(shí)序性,有時(shí)也稱為時(shí)序圖。
(1)在活動(dòng)圖的基礎(chǔ)上建立系統(tǒng)的多個(gè)不同場(chǎng)景,場(chǎng)景中必須涵蓋活動(dòng)圖中所有活動(dòng)。
(2)順序圖中重點(diǎn)關(guān)注系統(tǒng)外部交互,明確系統(tǒng)與外部交互的具體內(nèi)容,用于后續(xù)生產(chǎn)端口和接口(系統(tǒng)級(jí)邏輯ICD)?;顒?dòng)圖中的每個(gè)參與者標(biāo)識(shí)“actor pin”都會(huì)對(duì)應(yīng)一個(gè)事件“event”。
(3)順序圖是在活動(dòng)的基礎(chǔ)上,且信息都來源于活動(dòng)圖,切忌把順序圖建成活動(dòng)圖的翻版。順序圖并非換了種方式來描述活動(dòng)圖,而是要幫助設(shè)計(jì)人員認(rèn)知系統(tǒng)。每個(gè)順序圖對(duì)應(yīng)一種特定的場(chǎng)景,使用多個(gè)順序圖盡可能遍歷系統(tǒng)的所有運(yùn)行場(chǎng)景。
(4)順序圖中的行為和活動(dòng)圖中的活動(dòng)的描述必須一致,不能出現(xiàn)遺漏和增加。
順序圖中包含了系統(tǒng)之間通信的具體數(shù)據(jù),明確了每個(gè)數(shù)據(jù)的使用場(chǎng)景。創(chuàng)建系統(tǒng)的IBD圖(內(nèi)部塊圖),確定系統(tǒng)之間的端口。
系統(tǒng)之間的接口包括了與所有外部參與者的數(shù)據(jù)。與人員(飛行員和地勤)之間的接口即是系統(tǒng)的顯示控制需求,與外部系統(tǒng)之間的接口就是系統(tǒng)之間的邏輯ICD(接口控制文件)。為系統(tǒng)設(shè)計(jì)文件ICD(接口文件)和POP(飛行員操作程序)提供依據(jù),可以保證所有的設(shè)計(jì)文件是有追溯的,是通過系統(tǒng)的建模分析得到的,這也正是系統(tǒng)設(shè)計(jì)思想的核心。
狀態(tài)機(jī)表達(dá)了系統(tǒng)基于狀態(tài)變遷的行為邏輯。隨著系統(tǒng)的建模分析,設(shè)計(jì)人員對(duì)系統(tǒng)的認(rèn)識(shí)越來越明確、深入。在這種情況下,設(shè)計(jì)人員就能夠全面考慮系統(tǒng)運(yùn)行的行為。
圖3 氣象探測(cè)黑盒活動(dòng)圖
狀態(tài)機(jī)的組成包括:有限的系統(tǒng)狀態(tài);狀態(tài)之間的變遷;狀態(tài)內(nèi)系統(tǒng)的活動(dòng)?;顒?dòng)圖和順序圖中已經(jīng)分析了系統(tǒng)的活動(dòng),狀態(tài)機(jī)中包括了二者的所有信息,但缺少系統(tǒng)何時(shí)運(yùn)行、觸發(fā)的事件和條件等信息。在狀態(tài)機(jī)中設(shè)計(jì)者重點(diǎn)思考系統(tǒng)運(yùn)行狀態(tài)之間的變遷事件和條件。之前的模型中只要通過“語(yǔ)義”能把系統(tǒng)的分支情況表述清楚即可,但狀態(tài)機(jī)中必須符合“語(yǔ)法”來描述分支條件,故要對(duì)系統(tǒng)中的條件建立屬性。
狀態(tài)機(jī)模型中包含了系統(tǒng)的所有信息。為了更有效地驗(yàn)證系統(tǒng)模型,將狀態(tài)機(jī)生成可執(zhí)行模型。通過模型的運(yùn)行來檢驗(yàn)系統(tǒng)運(yùn)行,再次思考模型是否合理,是否能夠明確表達(dá)系統(tǒng)需求,以及系統(tǒng)需求的描述是否與模型一致。
如圖4所示,通過狀態(tài)機(jī)模型的執(zhí)行和仿真系統(tǒng)內(nèi)部的運(yùn)行活動(dòng),可以更直觀地檢查系統(tǒng)行為。在執(zhí)行狀態(tài)機(jī)模型時(shí),多考慮系統(tǒng)異常情況,可能發(fā)現(xiàn)系統(tǒng)新的需求和新的活動(dòng)。模型的執(zhí)行就是檢驗(yàn)系統(tǒng)模型,明確系統(tǒng)的功能性需求。在模型執(zhí)行過程中會(huì)暴露出一些問題,設(shè)計(jì)人員必須再次完善系統(tǒng)功能性需求,一次次地迭代,直至驗(yàn)證系統(tǒng)功能性需求描述正確,系統(tǒng)模型確認(rèn)無誤。
經(jīng)過模型的執(zhí)行和驗(yàn)證,得到有效的系統(tǒng)黑盒模型;緊接著要建立模型和系統(tǒng)需求之間的“satisfy(滿足)”追蹤關(guān)系,確保系統(tǒng)的功能性需求都在模型中體現(xiàn),模型中涉及的系統(tǒng)功能都有相應(yīng)的需求項(xiàng)描述;再次思考系統(tǒng)模型和需求之間的關(guān)系,確保分析過程的正確性。
設(shè)計(jì)綜合分為架構(gòu)分析和架構(gòu)設(shè)計(jì)兩部分。架構(gòu)分析過程中定義關(guān)鍵系統(tǒng)功能,確定候選解決方案,通過權(quán)衡分析合并解決方案,形成系統(tǒng)架構(gòu)。架構(gòu)設(shè)計(jì)過程將系統(tǒng)的功能分配到架構(gòu)中,分析過程類似于系統(tǒng)功能分析,本文不做詳細(xì)描述;最后進(jìn)行用例合并,完成模型交付。
通過建模分析,得到基于模型的系統(tǒng)工程設(shè)計(jì)成果。
圖4 氣象探測(cè)黑盒狀態(tài)機(jī)
(1)通過對(duì)系統(tǒng)建模,無歧義且有效地描述系統(tǒng)的各種活動(dòng),避免了文字描述中容易出現(xiàn)的理解偏差,解決了文字描述復(fù)雜系統(tǒng)的缺陷,便于后期更改、維護(hù)和升級(jí)。
(2)標(biāo)準(zhǔn)化的模型設(shè)計(jì),有利于信息傳遞,并且提高了溝通交流的效率。
(3)設(shè)計(jì)活動(dòng)的追溯性。系統(tǒng)模型的建立涵蓋系統(tǒng)的整個(gè)生命周期過程,包括需求、功能分析、設(shè)計(jì)、驗(yàn)證和確認(rèn),是一個(gè)統(tǒng)一整體的過程,可以提供一個(gè)完整的、一致的并可追溯的系統(tǒng)設(shè)計(jì),確保所有的系統(tǒng)活動(dòng)都是有依據(jù)的,是一個(gè)面向需求的設(shè)計(jì)過程。
(4)系統(tǒng)生命周期中包含著許多信息的傳遞和轉(zhuǎn)換過程,模型更便于知識(shí)的存儲(chǔ),使得信息的獲取以及再利用都更加方便有效。
(5)通過模型多角度地分析系統(tǒng),分析更改的影響,并支持在早期通過狀態(tài)機(jī)的運(yùn)行來驗(yàn)證和確認(rèn)系統(tǒng)需求,從而可以降低風(fēng)險(xiǎn),避免了通過物理樣件的試驗(yàn)來發(fā)現(xiàn)系統(tǒng)功能性需求問題,提高設(shè)計(jì)效率和設(shè)計(jì)質(zhì)量。
(6)為后續(xù)系統(tǒng)設(shè)計(jì)過程提供設(shè)計(jì)輸入,例如為系統(tǒng)設(shè)計(jì)文件ICD和POP提供依據(jù),因此就可以保證所有的設(shè)計(jì)文件是有追溯的,是經(jīng)過一系列科學(xué)分析的結(jié)果。
綜上所述,基于模型的系統(tǒng)工程設(shè)計(jì)方法,就是在模型的基礎(chǔ)上,采用科學(xué)的指導(dǎo)方法,幫助和引導(dǎo)系統(tǒng)設(shè)計(jì)人員始終圍繞著需求逐步深入了解、明確系統(tǒng)的過程。該設(shè)計(jì)方法有效地解決了傳統(tǒng)設(shè)計(jì)中的不足和弊端,完成了由經(jīng)驗(yàn)研發(fā)向需求研發(fā)的轉(zhuǎn)變。
本文共有參考文獻(xiàn)5篇,因篇章有限,未能一一列出,讀者如有需要,請(qǐng)向本刊編輯部索取。