馬 贊,王 鵬,崔明山
(1.中國(guó)民航大學(xué) 適航學(xué)院,天津 300300;2.北京暢研匯明科技有限公司,北京 100107)
功能需求(functional requirement)是系統(tǒng)設(shè)計(jì)的關(guān)鍵輸入,但有效的獲取方法一直是需求分析的難點(diǎn)[1]。目前,系統(tǒng)越來越復(fù)雜,功能需求越來越多,充分獲取功能需求也越來越困難。
對(duì)于獲取功能需求的具體要求,CMMI 中給出了明確的說明[2],但并沒有給出如何獲取需求的具體方法。
實(shí)際工程應(yīng)用中,最常用的方法是“基于調(diào)研和訪談的需求分析方法”[3]、“基于知識(shí)的需求獲取方法”[4]和“基于場(chǎng)景的需求獲取方法”[5]。這3 種需求分析方法,都要求參與需求分析的人員具有非常豐富的系統(tǒng)開發(fā)經(jīng)驗(yàn),非常熟悉系統(tǒng),如果經(jīng)驗(yàn)不足,很容易遺漏某些需求方面,從而造成需求識(shí)別不充分,在沒有其他技術(shù)手段保障的情況下,充分準(zhǔn)確的識(shí)別系統(tǒng)需求將越來越困難。
從實(shí)際工程中應(yīng)用的技術(shù)手段看,需求獲取的常用技術(shù)方法主要有“面向?qū)ο蟮男枨螳@取方法”[6]、“基于特征的需求分析法”[7]、“基于本體的需求獲取法”[8-9]、“基于質(zhì)量功能展開法”[10-11]等。這些方法重點(diǎn)關(guān)注的是采用“用例圖”“活動(dòng)圖”“順序圖”“狀態(tài)機(jī)”“質(zhì)量功能展開圖”等來表示需求,識(shí)別需求之間的依賴和關(guān)聯(lián)關(guān)系,沒有關(guān)注需求的獲取及功能需求完整性問題。
最新的需求獲取研究領(lǐng)域有2 個(gè)方面,一方面是“從需求文檔對(duì)需求建模,通過模型仿真來驗(yàn)證需求是否完整充分”[12-13],另一方面是“基于用例的面向方面的需求建?!盵14]。前者屬于從需求文檔來驗(yàn)證需求完整性,有一定的意義,但難度很大,效果不明顯;后者從狀態(tài)空間角度進(jìn)行了系統(tǒng)劃分,但分類不完善,還有很大的改進(jìn)空間。
從檢索的文獻(xiàn)看,功能需求的獲取依然存在問題,主要?dú)w結(jié)為以下3 類。
(1)主觀性過強(qiáng):文[3—5]的需求分析方法重點(diǎn)是靠“人的知識(shí)和經(jīng)驗(yàn)”為主,由于人的經(jīng)驗(yàn)、知識(shí)存在局限性,人本身也隨著情緒狀態(tài)的變化而不穩(wěn)定,因此,雖然方法簡(jiǎn)單,卻最容易造成主觀性過強(qiáng),需求分析結(jié)果不完整或受到主觀影響而發(fā)生偏差。
(2)完整性不足:文[6—11]則重點(diǎn)是從需求的某個(gè)側(cè)面或某種表示形式上入手,例如,需求特征、需求本體、質(zhì)量功能展開、面向?qū)ο蠓椒?,雖然對(duì)特定的某些需求可能有效,但不能有效的獲取相對(duì)完整的功能需求。
(3)結(jié)構(gòu)化程度不高:文獻(xiàn)中所提到的功能需求分析方法,普遍結(jié)構(gòu)化程度不高,這就容易造成難以普及使用,實(shí)際工作中效率低的問題。
本文以EDFA 為基礎(chǔ),建立一種“相對(duì)客觀”“關(guān)注完整性”“結(jié)構(gòu)化程度高”的功能需求獲取方法,能提高功能需求分析的快速性、準(zhǔn)確性和有效性。
本文提出了一種擴(kuò)展確定有限自動(dòng)機(jī)(EDFA),并在此基礎(chǔ)上,提出了基于EDFA 的結(jié)構(gòu)化的功能需求分析方法和流程,并結(jié)合自適應(yīng)巡航系統(tǒng)(ACC)實(shí)例進(jìn)行了驗(yàn)證。與傳統(tǒng)的需求分析方法相比,本方法在充分研究系統(tǒng)狀態(tài)特征的基礎(chǔ)上,依托DFA 表征系統(tǒng)內(nèi)在特性的優(yōu)勢(shì),從系統(tǒng)狀態(tài)空間、輸入空間、輸出空間完整劃分的角度出發(fā),以結(jié)構(gòu)化的分析流程和方法為指引,對(duì)系統(tǒng)功能需求進(jìn)行充分分析,降低對(duì)需求分析人員經(jīng)驗(yàn)的依賴,提高系統(tǒng)需求分析的完整性。
確定有限自動(dòng)機(jī)(determine finite automata,DFA)是具有離散輸入輸出系統(tǒng)的抽象數(shù)學(xué)模型,目前已經(jīng)被軟件開發(fā)人員所重視,用于計(jì)算機(jī)控制系統(tǒng)開發(fā)、編譯程序以及應(yīng)用軟件開發(fā)、自動(dòng)控制軟件開發(fā)等。
DFA 定義如下[15]:
其中:M 是確定有限自動(dòng)機(jī);Σ是一個(gè)有窮字母表,它的每一個(gè)元素稱為一個(gè)輸入激勵(lì);S 是一個(gè)有限狀態(tài)集合,它的每一個(gè)元素稱為一個(gè)狀態(tài);f 是轉(zhuǎn)移函數(shù),定義了從S×Σ→S 上的一個(gè)單值映射,即 f(p,a)=q ∈S,指明當(dāng)前的狀態(tài)為p,當(dāng)輸入激勵(lì)為a 時(shí),則轉(zhuǎn)移到下一個(gè)狀態(tài)q,q 稱為p 的后繼狀態(tài);在狀態(tài)轉(zhuǎn)移的每一步,根據(jù)有限自動(dòng)機(jī)當(dāng)前所處的狀態(tài)和所面臨的輸入激勵(lì),便能唯一地確定有限自動(dòng)機(jī)的下一個(gè)狀態(tài);0s ∈S 是一個(gè)唯一的初始狀態(tài);Z ?S 是一個(gè)終止?fàn)顟B(tài)集。
為了使用DFA 進(jìn)行系統(tǒng)需求識(shí)別分析,有必要對(duì)DFA 進(jìn)行擴(kuò)展。為了更好地說明有限自動(dòng)機(jī)的擴(kuò)展原理,假設(shè)溫度控制系統(tǒng)可以用圖1 表示。
1.2.1 輸入-輸出關(guān)系擴(kuò)展
考慮到DFA 只是描述了系統(tǒng)內(nèi)部狀態(tài)之間的關(guān)系,并沒有與系統(tǒng)輸入和輸出關(guān)聯(lián)起來,因此,無法直接通過DFA 識(shí)別系統(tǒng)的需求,需要對(duì)標(biāo)準(zhǔn)DFA 進(jìn)行輸入、 輸出擴(kuò)展,以便與系統(tǒng)的輸入和輸出關(guān)聯(lián)起來。
圖1 溫度控制系統(tǒng)模型
圖1 可以看出,輸入激勵(lì)a 與輸入溫度T 有關(guān),輸出H 和C 與當(dāng)前所處狀態(tài)p 和輸入激勵(lì)a 有關(guān),因此,有如下映射關(guān)系:
其中:h 是當(dāng)前狀態(tài)p 下,在a 輸入激勵(lì)的作用下,對(duì)外部輸出H 的映射函數(shù);c 是當(dāng)前狀態(tài)p 下,在a 輸入激勵(lì)的作用下,對(duì)外部輸出C 的映射函數(shù)。
考慮更一般的情況,有如下映射關(guān)系:其中:U 是系統(tǒng)的外部輸入(包含外部信號(hào)的輸入、時(shí)鐘的輸入等);K 是從系統(tǒng)外部輸入U(xiǎn) 到Σ的映射函數(shù)(從單一輸入激勵(lì)a 推廣到Σ集合);Y 是系統(tǒng)外部輸出集合;G 是系統(tǒng)在狀態(tài)S 下,在Σ輸入激勵(lì)下,對(duì)外部輸出的映射函數(shù)(從單一輸出H 和C 推廣到所有輸出Y 集合)。
經(jīng)過公式(3)的擴(kuò)展,EDFA 將系統(tǒng)的輸入U(xiǎn)、確定有限自動(dòng)機(jī)M、系統(tǒng)的輸出Y 有機(jī)結(jié)合起來。
1.2.2 系統(tǒng)外部輸入信號(hào)等價(jià)集合
對(duì)DFA,Σ是一個(gè)有窮字母表,而對(duì)于一般的系統(tǒng)來說,外部輸入U(xiǎn) 的每一個(gè)信號(hào),都可能具有無窮多的數(shù)值,這些數(shù)值無法一一映射到Σ中的輸入符號(hào),因此必須對(duì)外部輸入信號(hào)進(jìn)行預(yù)處理,以滿足Σ的條件要求。為此,引入外部輸入信號(hào)等價(jià)集合的定義。
系統(tǒng)外部輸入信號(hào)等價(jià)集合的定義:系統(tǒng)外部輸入信號(hào)的完整空間中,Σ中輸入激勵(lì)對(duì)DFA 中狀態(tài)的觸發(fā)效果一致的信號(hào)空間集合。
以上述溫度控制系統(tǒng)為例,則Σ={a1,a2,a3,a4},其中:1a 代表大于-5℃,a2代表小于-10℃,3a 代表大于40℃,a4代表小于35℃。
如果T 的輸入范圍是[-100℃,+100℃],那么,T ∈( -5,100]為外部輸入信號(hào)T 的一個(gè)等價(jià)集合,該范圍內(nèi)所有T 的數(shù)值對(duì)應(yīng)Σ中的輸入激勵(lì) a1,處于“加熱”狀態(tài)時(shí)是“等價(jià)”的。
T ∈[ -1 00,- 10)為外部輸入信號(hào)T 的一個(gè)等價(jià)集合,該范圍內(nèi)所有T 的數(shù)值對(duì)應(yīng)Σ中的輸入激勵(lì) a2,處于“不加熱不制冷”狀態(tài)時(shí)是“等價(jià)”的。
T ∈ (40,100]為外部輸入信號(hào)T 的一個(gè)等價(jià)集合,該范圍內(nèi)所有T 的數(shù)值對(duì)應(yīng)Σ中的輸入激勵(lì) a3,處于“不加熱不制冷”狀態(tài)時(shí)是“等價(jià)”的。
T ∈[ -1 00,35)為外部輸入信號(hào)T 的一個(gè)等價(jià)集合,該范圍內(nèi)所有T 的數(shù)值對(duì)應(yīng)Σ中的輸入激勵(lì) a4,處于“制冷”狀態(tài)時(shí)是“等價(jià)”的。
經(jīng)過對(duì)系統(tǒng)外部輸入信號(hào)進(jìn)行等價(jià)集合的劃分,可以避免在識(shí)別系統(tǒng)需求時(shí),因?yàn)闊o法窮舉所有外部輸入的數(shù)值,而無法充分識(shí)別系統(tǒng)輸入的所有組合。
1.2.3 輸入激勵(lì)集Σ劃分
系統(tǒng)需求分析過程中,由于系統(tǒng)復(fù)雜、系統(tǒng)的狀態(tài)較多,因此系統(tǒng)的輸入激勵(lì)集合Σ的元素很多,一次性識(shí)別系統(tǒng)輸入符號(hào)集合Σ有一定難度。
實(shí)際系統(tǒng)需求分析時(shí),往往都是根據(jù)系統(tǒng)狀態(tài)集合中的獨(dú)立狀態(tài),逐個(gè)分析系統(tǒng)的需求,根據(jù)獨(dú)立狀態(tài)分別識(shí)別對(duì)應(yīng)的輸入激勵(lì)集合則相對(duì)容易。因此,引入符號(hào)標(biāo)記Σsi。
假設(shè)DFA 狀態(tài)集合S 中包含n 個(gè)狀態(tài),分別為s1,s2,…,sn,那么,每個(gè)狀態(tài)對(duì)應(yīng)的輸入激勵(lì)子集合標(biāo)記為Σsi,其中 i=1,2,…,n,并且
1.2.4 轉(zhuǎn)移函數(shù)f 劃分
由于系統(tǒng)一般都比較復(fù)雜,并且系統(tǒng)的狀態(tài)比較多,因此狀態(tài)轉(zhuǎn)移函數(shù)的數(shù)量也比較龐大。實(shí)際系統(tǒng)需求分析時(shí),往往都是根據(jù)系統(tǒng)狀態(tài)集合中的獨(dú)立狀態(tài),逐個(gè)分析系統(tǒng)的需求,根據(jù)獨(dú)立狀態(tài)分別識(shí)別對(duì)應(yīng)的轉(zhuǎn)移函數(shù)則相對(duì)容易。因此,引入符號(hào)標(biāo)記fsi。
假設(shè)DFA 狀態(tài)集合S 中包含n 個(gè)狀態(tài),分別為s1,s2,…,sn,那么,每個(gè)狀態(tài)對(duì)應(yīng)的轉(zhuǎn)移函數(shù)標(biāo)記為fsi,其中 i=1,2,…,n,并且
功能需求即在不考慮物理約束的情況下,用戶希望系統(tǒng)所能夠執(zhí)行的活動(dòng),這些活動(dòng)可以幫助用戶完成任務(wù)。功能需求主要表現(xiàn)為系統(tǒng)和環(huán)境之間的行為交互。實(shí)際上,功能需求主要指當(dāng)外界有輸入信息進(jìn)入時(shí),系統(tǒng)對(duì)外界的響應(yīng)和交互。
根據(jù)EDFA 的要求,基于EDFA 的功能需求分析過程,將從以下幾個(gè)方面進(jìn)行分析。
(1)DFA 系統(tǒng)狀態(tài)集S 的識(shí)別。
狀態(tài)集S 的識(shí)別是基于EDFA 分析法的關(guān)鍵步驟之一。 因?yàn)樽R(shí)別了狀態(tài)集S,就可以根據(jù)狀態(tài)集中的n 個(gè)狀態(tài)( s1,s2,…,sn),分別識(shí)別不同狀態(tài)下系統(tǒng)在外界輸入的情況下,對(duì)外界的響應(yīng)和交互。
基于狀態(tài)集S 識(shí)別系統(tǒng)需求的優(yōu)勢(shì)有:
①對(duì)系統(tǒng)需求的全空間進(jìn)行劃分,按照狀態(tài)集S中的狀態(tài)依次識(shí)別不同狀態(tài)下的功能需求,縮小每次需求識(shí)別的空間大小和復(fù)雜度,減低了識(shí)別難度,有利于準(zhǔn)確、高效、盡可能完整的識(shí)別需求;
②由于DFA 的特點(diǎn),狀態(tài)集S 中的所有狀態(tài)一般都是“獨(dú)立”的,因此,基于狀態(tài)集S 所識(shí)別的系統(tǒng)功能需求也是彼此獨(dú)立的,共同構(gòu)成系統(tǒng)需求。
(2)和外部系統(tǒng)信號(hào)接口(輸入/輸出)的識(shí)別。
系統(tǒng)輸入/輸出的識(shí)別,可以借助SysML/UML 中的用例圖識(shí)別,用例從外部參與者獲得的信號(hào)作為系統(tǒng)輸入信號(hào),系統(tǒng)向外部參與者輸出的信號(hào)作為系統(tǒng)輸出信號(hào)。
一般的系統(tǒng),輸入/輸出信號(hào)可能較多,考慮基于不同系統(tǒng)狀態(tài)逐個(gè)識(shí)別每個(gè)狀態(tài)對(duì)應(yīng)的輸入/輸出信號(hào)種類;也可以一次性識(shí)別系統(tǒng)的所有輸入/輸出信號(hào)種類;針對(duì)系統(tǒng)的所有輸入/輸出信號(hào),不同信號(hào)的有效范圍是不同的,因此,需要針對(duì)每個(gè)信號(hào)獨(dú)立識(shí)別其有效范圍。
(3)DFA 輸入激勵(lì)集Σ的識(shí)別。
輸入激勵(lì)集Σ的識(shí)別,對(duì)于識(shí)別系統(tǒng)功能需求是非常重要的。輸入激勵(lì)集Σ是觸發(fā)當(dāng)前狀態(tài)跳轉(zhuǎn)到下一狀態(tài)的關(guān)鍵因素,而系統(tǒng)處于當(dāng)前狀態(tài)下,會(huì)完成基于當(dāng)前狀態(tài)下的系統(tǒng)功能,如果跳轉(zhuǎn)到下一狀態(tài),則開始完成下一狀態(tài)下的功能;因此,輸入激勵(lì)集Σ是完成“一類功能需求”切換到“另一類功能需求”的關(guān)鍵因素。
根據(jù)前述分析,對(duì)于整個(gè)系統(tǒng)DFA 來說,輸入激勵(lì)集Σ過于龐大,因此,根據(jù)系統(tǒng)當(dāng)前所處的狀態(tài)is,識(shí)別對(duì)應(yīng)的輸入激勵(lì)集Σ的子集Σsi將會(huì)比較容易,而最終系統(tǒng)的輸入激勵(lì)集Σ是所有Σsi的并集
(4)DFA 轉(zhuǎn)移函數(shù)f 的識(shí)別。
轉(zhuǎn)移函數(shù)f 代表了在當(dāng)前狀態(tài)下,在輸入激勵(lì)集Σ激勵(lì)下,系統(tǒng)對(duì)應(yīng)的下一狀態(tài)。根據(jù)前述分析,由于整個(gè)功能需求是基于狀態(tài)集子狀態(tài)以此進(jìn)行識(shí)別的,因此,轉(zhuǎn)移函數(shù)也依照不同子狀態(tài)進(jìn)行識(shí)別(is 狀態(tài)下的轉(zhuǎn)移函數(shù)記為fis),最后統(tǒng)一匯總稱為DFA 的轉(zhuǎn)移函數(shù)
(5)系統(tǒng)輸入U(xiǎn) 向輸入激勵(lì)集Σ的映射K 的識(shí)別。通過系統(tǒng)外部輸入信號(hào)等價(jià)集合來識(shí)別系統(tǒng)輸入信號(hào)與激勵(lì)集合Σ的映射關(guān)系。
由于系統(tǒng)輸入U(xiǎn) 在不同的信號(hào)范圍內(nèi)對(duì)激勵(lì)集Σ的映射可能是不同的,因此,需要識(shí)別不同的輸入信號(hào)范圍與激勵(lì)集中激勵(lì)信號(hào)的對(duì)應(yīng)關(guān)系。一般來說,這種對(duì)應(yīng)關(guān)系是基于不同的狀態(tài)is 得出的,因此,這里建議基于子狀態(tài)逐個(gè)識(shí)別輸入信號(hào)向激勵(lì)集Σ的映射關(guān)系Kis,最后統(tǒng)一合并為(類似輸入激勵(lì)集的劃分模式)。
(6)系統(tǒng)狀態(tài)S 和輸入激勵(lì)集Σ向系統(tǒng)輸出Y 的映射G 的識(shí)別。
系統(tǒng)狀態(tài)S 和輸入激勵(lì)集Σ向系統(tǒng)輸出Y 的映射G 實(shí)際上就是代表系統(tǒng)的功能需求(因?yàn)檫@里的Y 就是系統(tǒng)對(duì)外界的響應(yīng))。
參照前述內(nèi)容,對(duì)系統(tǒng)狀態(tài)集S 中的每個(gè)狀態(tài) si,依次識(shí)別在輸入激勵(lì)集Σ(也可以是輸入激勵(lì)集Σ的子集Σsi)的激勵(lì)下,系統(tǒng)的輸出映射 Gsi,從而得到系統(tǒng)的輸出 Ysi,最后綜合系統(tǒng)的輸出映射 Gsi,得到系統(tǒng)的總映射G,綜合所有輸出 Ysi,得到系統(tǒng)的總輸出Y。
(7)DFA 初始狀態(tài) s0的識(shí)別。
初始狀態(tài) s0代表了系統(tǒng)初次運(yùn)行時(shí)所處的第一個(gè)狀態(tài),一般根據(jù)系統(tǒng)的實(shí)際情況,在狀態(tài)集S 中進(jìn)行識(shí)別,并進(jìn)行標(biāo)記。
(8)功能需求的整理模板。
經(jīng)過前面的分析初步獲得了分析結(jié)果,可以按照下面的模板整理功能需求。
<當(dāng)前狀態(tài)>下,當(dāng)<系統(tǒng)輸入U(xiǎn) 向Σ映射K>時(shí),系統(tǒng)跳轉(zhuǎn)到<轉(zhuǎn)移函數(shù)f 的目標(biāo)狀態(tài)>,同時(shí),<向系統(tǒng)輸出Y 的映射G>。
(9)整理/補(bǔ)充系統(tǒng)功能需求。
按照(1)-(8)的步驟,逐個(gè)分析系統(tǒng)狀態(tài),獲得所有狀態(tài)下的功能需求,然后,將所有的需求綜合整理,就得到了系統(tǒng)的完整的功能需求。
系統(tǒng)功能需求分析方法流程參見圖2,將來可以考慮程序化處理。
圖2 基于EDFA 功能需求分析流程
(1)依托DFA,表征系統(tǒng)需求內(nèi)在特性:DFA 的狀態(tài)集合、輸入激勵(lì)、轉(zhuǎn)換函數(shù),既體現(xiàn)了系統(tǒng)不同運(yùn)行模式,也體現(xiàn)不同模式之間的轉(zhuǎn)換和轉(zhuǎn)換條件要求,從本質(zhì)上抓住了系統(tǒng)的關(guān)鍵特征要素,對(duì)提升功能需求分析的有效性和完整性非常重要。
(2)從系統(tǒng)狀態(tài)空間、輸入空間完整劃分的角度出發(fā)充分識(shí)別系統(tǒng)功能需求:狀態(tài)空間對(duì)系統(tǒng)的運(yùn)行模式和關(guān)鍵特征進(jìn)行了劃分,通過狀態(tài)空間確保系統(tǒng)的運(yùn)行模式可以識(shí)別完整;通過輸入空間的完整劃分,可以確保在不同的運(yùn)行模式下,對(duì)完整輸入空間的響應(yīng)是完全避免功能需求識(shí)別過程中,遺漏特殊輸入組合的情況。
(3)具有結(jié)構(gòu)化的分析流程和方法,易于自動(dòng)化處理。
(4)通過將輸入激勵(lì)集、轉(zhuǎn)移函數(shù)劃分,不但可以表示簡(jiǎn)單的系統(tǒng),也可以表示復(fù)雜的系統(tǒng)。
為簡(jiǎn)化起見,僅以自動(dòng)巡航系統(tǒng)(ACC)的“跟車模式”狀態(tài)為例,驗(yàn)證EDFA 功能需求分析流程及適用性,分析步驟參見圖2。
(1)識(shí)別系統(tǒng)狀態(tài)。
根據(jù)ACC 系統(tǒng)的特點(diǎn),經(jīng)過分析ACC 系統(tǒng)一共有4 個(gè)狀態(tài):
①速度控制模式(SpeedCtrl):主要是維持當(dāng)前車速為設(shè)定的巡航速度不變,適用于前方?jīng)]有車輛的情況。
②跟車模式(FollowMode):主要是前方有車并且車速低于設(shè)定的巡航速度時(shí)的控制策略。策略上,本車保持與前車車速一致,進(jìn)行跟隨。
③設(shè)置速度模式(SetSpeed):在沒有啟動(dòng)巡航模式情況下,駕駛員設(shè)置巡航速度,并可以啟動(dòng)巡航。
④待機(jī)模式(Standby):系統(tǒng)上電后,處在待機(jī)狀態(tài),等待輸入指令。
因此,EDFA 的狀態(tài)集合為
(2)識(shí)別和外部系統(tǒng)的信號(hào)接口。
識(shí)別的外部相關(guān)對(duì)象一共有 4 個(gè):駕駛員(Driver)、發(fā)動(dòng)機(jī)(Engine)、剎車系統(tǒng)(Brake)、雷達(dá)(Radar)。
系統(tǒng)用例圖參見圖3。
圖3 ACC 系統(tǒng)用例圖
識(shí)別在跟車模式FollowMode 下,外部的所有輸入/輸出信號(hào)接口,參見表1 和表2。
表1 跟車模式下所有輸入信號(hào)接口
表2 跟車模式下所有輸出信號(hào)接口
(3)識(shí)別輸入激勵(lì)集。
在跟車模式(FollowMode)下,識(shí)別輸入激勵(lì)集Σs1,參見表3。
(4)識(shí)別轉(zhuǎn)移函數(shù)f。
在系統(tǒng)的4 個(gè)狀態(tài)中,根據(jù)實(shí)際系統(tǒng)的要求,可以在跟車模式和速度控制模式之間進(jìn)行切換,另外,當(dāng)退出跟車模式時(shí)會(huì)進(jìn)入到待機(jī)模式。
根據(jù)輸入激勵(lì)集以及當(dāng)前所處的跟車模式,識(shí)別在當(dāng)前狀態(tài)下EDFA 的轉(zhuǎn)移函數(shù)f1s,參見表4。
(5)識(shí)別“跟車模式”下輸入U(xiǎn) 向激勵(lì)集Σ的映射K。
根據(jù)ACC 系統(tǒng)特點(diǎn),“跟車模式”下識(shí)別的輸入U(xiǎn) 對(duì)激勵(lì)Σ的映射關(guān)系K1s,參見表5(未提到的輸入信號(hào)表示無影響)。
表3 跟車模式下輸入激勵(lì)集Σs1
表4 跟車模式下轉(zhuǎn)移函數(shù)f1s
表5 跟車模式下輸入U(xiǎn) 與激勵(lì)集Σ的映射關(guān)系K1s
表6 跟車模式下識(shí)別向系統(tǒng)輸出Y 的映射G 關(guān)系
(6)識(shí)別向系統(tǒng)輸出Y 的映射G。
根據(jù)ACC 系統(tǒng)的特點(diǎn),“跟車模式”下識(shí)別的向系統(tǒng)輸出Y 的映射G 關(guān)系參見表6。
(7)識(shí)別初始狀態(tài)s0。
根據(jù)ACC 系統(tǒng)的特點(diǎn),系統(tǒng)上電后處于Standby模式,因此,s0=Standby。
(8)定義當(dāng)前狀態(tài)下功能需求。
根據(jù)前述分析原理,參考“功能需求整理模板”(<當(dāng)前狀態(tài)>下,當(dāng)<系統(tǒng)輸入U(xiǎn) 向Σ的映射K>時(shí),系統(tǒng)跳轉(zhuǎn)到<轉(zhuǎn)移函數(shù)f 的目標(biāo)狀態(tài)>,同時(shí),<向系統(tǒng)輸出Y 的映射G>),整理得到如下的“跟車模式”的功能需求:
①跟車模式下,當(dāng)本車車速在[25,120] km/h 之間,并且與前車距離大于100 m、沒有剎車、沒有加油、取消巡航按鈕沒有按下,系統(tǒng)進(jìn)入速度控制模式、本車車速大于前車車速時(shí),系統(tǒng)跳轉(zhuǎn)到速度控制模式;
②跟車模式下,當(dāng)剎車踏板踩下或者油門踏板踩下,或者收到結(jié)束巡航信號(hào),或者車速大于120 km/h,或者車速小于25 km/h,系統(tǒng)退出跟車模式進(jìn)入Standby模式,同時(shí)向駕駛員提示警告信息;
③跟車模式下,當(dāng)前車速度小于本車速度,且本車車速大于25 km/h,小于120 km/h、前車距離本車小于100 m、取消按鈕沒有按下、沒有剎車、沒有加油,系統(tǒng)保持跟車模式。
(9)整理/補(bǔ)充系統(tǒng)功能需求。
前述基于狀態(tài)的需求分析過程中,已經(jīng)可以識(shí)別出若干系統(tǒng)總體的功能需求,補(bǔ)充如下。
①ACC 系統(tǒng)一共有4 種運(yùn)行模式:速度控制模式SpeedCtrl,跟車模式FollowMode,待機(jī)模式Standby和設(shè)置速度模式SetSpeed;
②ACC 系統(tǒng)上電后的初始狀態(tài)為待機(jī)模式Standby。
根據(jù)功能需求分析流程,逐個(gè)對(duì)其他3 個(gè)狀態(tài)的功能需求進(jìn)行分析,然后綜合所有狀態(tài)下的需求和系統(tǒng)的總體功能需求,就可以得到ACC 系統(tǒng)的功能需求。
在上述分析中,只對(duì)“跟車模式”進(jìn)行了功能需求分析,從分析可以看出,通過狀態(tài)空間劃分,將系統(tǒng)分解為4 種獨(dú)立運(yùn)行狀態(tài)(減小分析空間的大?。缓竺糠N狀態(tài)獨(dú)立分析其功能需求,最后綜合稱為系統(tǒng)的整體功能需求。
每種狀態(tài)功能需求分析過程中,首先識(shí)別從該狀態(tài)向外部和自身狀態(tài)轉(zhuǎn)移的可能輸入激勵(lì)和轉(zhuǎn)移函數(shù),這樣就可以從整體上識(shí)別4 種運(yùn)行狀態(tài)之間的工作模式切換(實(shí)際上是從整體上識(shí)別了系統(tǒng)的整體運(yùn)行需求)。
在獲得輸入激勵(lì)后,將系統(tǒng)的外部輸入映射到輸入激勵(lì)上,也就是說,外部輸入會(huì)直接影響系統(tǒng)內(nèi)部的輸入激勵(lì),從而識(shí)別在不同的外部輸入下,哪些輸入組合條件會(huì)造成系統(tǒng)在不同的工作模式之間切換,從而將外部輸入信號(hào)組合與輸入激勵(lì)聯(lián)系起來。
根據(jù)轉(zhuǎn)移函數(shù),識(shí)別在每次轉(zhuǎn)移的時(shí)候,在當(dāng)前狀態(tài)和輸入信號(hào)組合情況下,所對(duì)應(yīng)的系統(tǒng)外部輸出信號(hào)要求,從而將系統(tǒng)狀態(tài)、輸入激勵(lì)、轉(zhuǎn)移函數(shù)、輸入信號(hào)組合與系統(tǒng)輸出關(guān)聯(lián)起來。
綜合來看,通過該結(jié)構(gòu)化方法可以按步驟、有條理地分析出系統(tǒng)的功能需求。在系統(tǒng)比較復(fù)雜的情況下,通過識(shí)別系統(tǒng)的狀態(tài)集合,再按照不同的狀態(tài)分析系統(tǒng)功能需求,可以減小需求分析的復(fù)雜度和難度,同時(shí),由于其分析過程的結(jié)構(gòu)化特性,更易于掌握并且流程化,有利于使用和推廣。
系統(tǒng)功能需求是后續(xù)設(shè)計(jì)開發(fā)的基礎(chǔ),具有重要作用。本文基于EFDA 提出了一種需求獲取的結(jié)構(gòu)化方法。
基于EFDA 的功能需求獲取法,從系統(tǒng)狀態(tài)入手,通過識(shí)別不同狀態(tài)下的輸入激勵(lì)集合、轉(zhuǎn)移函數(shù)、初始狀態(tài)、外部輸入信號(hào)與輸入激勵(lì)集合的關(guān)系、外部輸入信號(hào)與轉(zhuǎn)移函數(shù)和外部輸出信號(hào)之間的關(guān)系,分析得到對(duì)應(yīng)狀態(tài)下的功能需求;通過綜合不同狀態(tài)下的功能需求,得到系統(tǒng)的整體功能需求。
基于EDFA 的功能需求分析法,具有結(jié)構(gòu)化、條理化等優(yōu)點(diǎn),面向大型系統(tǒng)需求獲取時(shí),可以通過分解狀態(tài)激勵(lì)、轉(zhuǎn)移函數(shù)、每個(gè)狀態(tài)下功能需求等幾個(gè)子部分進(jìn)行分析,從而簡(jiǎn)化大系統(tǒng)需求分析難度,降低分析復(fù)雜度,提升功能需求分析的完整性。