馬 贊,王 鵬,崔明山
(1.中國民航大學(xué) 適航學(xué)院,天津 300300;2.北京暢研匯明科技有限公司,北京 100107)
功能需求(functional requirement)是系統(tǒng)設(shè)計的關(guān)鍵輸入,但有效的獲取方法一直是需求分析的難點[1]。目前,系統(tǒng)越來越復(fù)雜,功能需求越來越多,充分獲取功能需求也越來越困難。
對于獲取功能需求的具體要求,CMMI 中給出了明確的說明[2],但并沒有給出如何獲取需求的具體方法。
實際工程應(yīng)用中,最常用的方法是“基于調(diào)研和訪談的需求分析方法”[3]、“基于知識的需求獲取方法”[4]和“基于場景的需求獲取方法”[5]。這3 種需求分析方法,都要求參與需求分析的人員具有非常豐富的系統(tǒng)開發(fā)經(jīng)驗,非常熟悉系統(tǒng),如果經(jīng)驗不足,很容易遺漏某些需求方面,從而造成需求識別不充分,在沒有其他技術(shù)手段保障的情況下,充分準確的識別系統(tǒng)需求將越來越困難。
從實際工程中應(yīng)用的技術(shù)手段看,需求獲取的常用技術(shù)方法主要有“面向?qū)ο蟮男枨螳@取方法”[6]、“基于特征的需求分析法”[7]、“基于本體的需求獲取法”[8-9]、“基于質(zhì)量功能展開法”[10-11]等。這些方法重點關(guān)注的是采用“用例圖”“活動圖”“順序圖”“狀態(tài)機”“質(zhì)量功能展開圖”等來表示需求,識別需求之間的依賴和關(guān)聯(lián)關(guān)系,沒有關(guān)注需求的獲取及功能需求完整性問題。
最新的需求獲取研究領(lǐng)域有2 個方面,一方面是“從需求文檔對需求建模,通過模型仿真來驗證需求是否完整充分”[12-13],另一方面是“基于用例的面向方面的需求建模”[14]。前者屬于從需求文檔來驗證需求完整性,有一定的意義,但難度很大,效果不明顯;后者從狀態(tài)空間角度進行了系統(tǒng)劃分,但分類不完善,還有很大的改進空間。
從檢索的文獻看,功能需求的獲取依然存在問題,主要歸結(jié)為以下3 類。
(1)主觀性過強:文[3—5]的需求分析方法重點是靠“人的知識和經(jīng)驗”為主,由于人的經(jīng)驗、知識存在局限性,人本身也隨著情緒狀態(tài)的變化而不穩(wěn)定,因此,雖然方法簡單,卻最容易造成主觀性過強,需求分析結(jié)果不完整或受到主觀影響而發(fā)生偏差。
(2)完整性不足:文[6—11]則重點是從需求的某個側(cè)面或某種表示形式上入手,例如,需求特征、需求本體、質(zhì)量功能展開、面向?qū)ο蠓椒ǎm然對特定的某些需求可能有效,但不能有效的獲取相對完整的功能需求。
(3)結(jié)構(gòu)化程度不高:文獻中所提到的功能需求分析方法,普遍結(jié)構(gòu)化程度不高,這就容易造成難以普及使用,實際工作中效率低的問題。
本文以EDFA 為基礎(chǔ),建立一種“相對客觀”“關(guān)注完整性”“結(jié)構(gòu)化程度高”的功能需求獲取方法,能提高功能需求分析的快速性、準確性和有效性。
本文提出了一種擴展確定有限自動機(EDFA),并在此基礎(chǔ)上,提出了基于EDFA 的結(jié)構(gòu)化的功能需求分析方法和流程,并結(jié)合自適應(yīng)巡航系統(tǒng)(ACC)實例進行了驗證。與傳統(tǒng)的需求分析方法相比,本方法在充分研究系統(tǒng)狀態(tài)特征的基礎(chǔ)上,依托DFA 表征系統(tǒng)內(nèi)在特性的優(yōu)勢,從系統(tǒng)狀態(tài)空間、輸入空間、輸出空間完整劃分的角度出發(fā),以結(jié)構(gòu)化的分析流程和方法為指引,對系統(tǒng)功能需求進行充分分析,降低對需求分析人員經(jīng)驗的依賴,提高系統(tǒng)需求分析的完整性。
確定有限自動機(determine finite automata,DFA)是具有離散輸入輸出系統(tǒng)的抽象數(shù)學(xué)模型,目前已經(jīng)被軟件開發(fā)人員所重視,用于計算機控制系統(tǒng)開發(fā)、編譯程序以及應(yīng)用軟件開發(fā)、自動控制軟件開發(fā)等。
DFA 定義如下[15]:

其中:M 是確定有限自動機;Σ是一個有窮字母表,它的每一個元素稱為一個輸入激勵;S 是一個有限狀態(tài)集合,它的每一個元素稱為一個狀態(tài);f 是轉(zhuǎn)移函數(shù),定義了從S×Σ→S 上的一個單值映射,即 f(p,a)=q ∈S,指明當前的狀態(tài)為p,當輸入激勵為a 時,則轉(zhuǎn)移到下一個狀態(tài)q,q 稱為p 的后繼狀態(tài);在狀態(tài)轉(zhuǎn)移的每一步,根據(jù)有限自動機當前所處的狀態(tài)和所面臨的輸入激勵,便能唯一地確定有限自動機的下一個狀態(tài);0s ∈S 是一個唯一的初始狀態(tài);Z ?S 是一個終止狀態(tài)集。
為了使用DFA 進行系統(tǒng)需求識別分析,有必要對DFA 進行擴展。為了更好地說明有限自動機的擴展原理,假設(shè)溫度控制系統(tǒng)可以用圖1 表示。
1.2.1 輸入-輸出關(guān)系擴展
考慮到DFA 只是描述了系統(tǒng)內(nèi)部狀態(tài)之間的關(guān)系,并沒有與系統(tǒng)輸入和輸出關(guān)聯(lián)起來,因此,無法直接通過DFA 識別系統(tǒng)的需求,需要對標準DFA 進行輸入、 輸出擴展,以便與系統(tǒng)的輸入和輸出關(guān)聯(lián)起來。

圖1 溫度控制系統(tǒng)模型
圖1 可以看出,輸入激勵a 與輸入溫度T 有關(guān),輸出H 和C 與當前所處狀態(tài)p 和輸入激勵a 有關(guān),因此,有如下映射關(guān)系:

其中:h 是當前狀態(tài)p 下,在a 輸入激勵的作用下,對外部輸出H 的映射函數(shù);c 是當前狀態(tài)p 下,在a 輸入激勵的作用下,對外部輸出C 的映射函數(shù)。

考慮更一般的情況,有如下映射關(guān)系:其中:U 是系統(tǒng)的外部輸入(包含外部信號的輸入、時鐘的輸入等);K 是從系統(tǒng)外部輸入U 到Σ的映射函數(shù)(從單一輸入激勵a 推廣到Σ集合);Y 是系統(tǒng)外部輸出集合;G 是系統(tǒng)在狀態(tài)S 下,在Σ輸入激勵下,對外部輸出的映射函數(shù)(從單一輸出H 和C 推廣到所有輸出Y 集合)。
經(jīng)過公式(3)的擴展,EDFA 將系統(tǒng)的輸入U、確定有限自動機M、系統(tǒng)的輸出Y 有機結(jié)合起來。
1.2.2 系統(tǒng)外部輸入信號等價集合
對DFA,Σ是一個有窮字母表,而對于一般的系統(tǒng)來說,外部輸入U 的每一個信號,都可能具有無窮多的數(shù)值,這些數(shù)值無法一一映射到Σ中的輸入符號,因此必須對外部輸入信號進行預(yù)處理,以滿足Σ的條件要求。為此,引入外部輸入信號等價集合的定義。
系統(tǒng)外部輸入信號等價集合的定義:系統(tǒng)外部輸入信號的完整空間中,Σ中輸入激勵對DFA 中狀態(tài)的觸發(fā)效果一致的信號空間集合。
以上述溫度控制系統(tǒng)為例,則Σ={a1,a2,a3,a4},其中:1a 代表大于-5℃,a2代表小于-10℃,3a 代表大于40℃,a4代表小于35℃。
如果T 的輸入范圍是[-100℃,+100℃],那么,T ∈( -5,100]為外部輸入信號T 的一個等價集合,該范圍內(nèi)所有T 的數(shù)值對應(yīng)Σ中的輸入激勵 a1,處于“加熱”狀態(tài)時是“等價”的。
T ∈[ -1 00,- 10)為外部輸入信號T 的一個等價集合,該范圍內(nèi)所有T 的數(shù)值對應(yīng)Σ中的輸入激勵 a2,處于“不加熱不制冷”狀態(tài)時是“等價”的。
T ∈ (40,100]為外部輸入信號T 的一個等價集合,該范圍內(nèi)所有T 的數(shù)值對應(yīng)Σ中的輸入激勵 a3,處于“不加熱不制冷”狀態(tài)時是“等價”的。
T ∈[ -1 00,35)為外部輸入信號T 的一個等價集合,該范圍內(nèi)所有T 的數(shù)值對應(yīng)Σ中的輸入激勵 a4,處于“制冷”狀態(tài)時是“等價”的。
經(jīng)過對系統(tǒng)外部輸入信號進行等價集合的劃分,可以避免在識別系統(tǒng)需求時,因為無法窮舉所有外部輸入的數(shù)值,而無法充分識別系統(tǒng)輸入的所有組合。
1.2.3 輸入激勵集Σ劃分
系統(tǒng)需求分析過程中,由于系統(tǒng)復(fù)雜、系統(tǒng)的狀態(tài)較多,因此系統(tǒng)的輸入激勵集合Σ的元素很多,一次性識別系統(tǒng)輸入符號集合Σ有一定難度。
實際系統(tǒng)需求分析時,往往都是根據(jù)系統(tǒng)狀態(tài)集合中的獨立狀態(tài),逐個分析系統(tǒng)的需求,根據(jù)獨立狀態(tài)分別識別對應(yīng)的輸入激勵集合則相對容易。因此,引入符號標記Σsi。
假設(shè)DFA 狀態(tài)集合S 中包含n 個狀態(tài),分別為s1,s2,…,sn,那么,每個狀態(tài)對應(yīng)的輸入激勵子集合標記為Σ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ù)量也比較龐大。實際系統(tǒng)需求分析時,往往都是根據(jù)系統(tǒng)狀態(tài)集合中的獨立狀態(tài),逐個分析系統(tǒng)的需求,根據(jù)獨立狀態(tài)分別識別對應(yīng)的轉(zhuǎn)移函數(shù)則相對容易。因此,引入符號標記fsi。
假設(shè)DFA 狀態(tài)集合S 中包含n 個狀態(tài),分別為s1,s2,…,sn,那么,每個狀態(tài)對應(yīng)的轉(zhuǎn)移函數(shù)標記為fsi,其中 i=1,2,…,n,并且
功能需求即在不考慮物理約束的情況下,用戶希望系統(tǒng)所能夠執(zhí)行的活動,這些活動可以幫助用戶完成任務(wù)。功能需求主要表現(xiàn)為系統(tǒng)和環(huán)境之間的行為交互。實際上,功能需求主要指當外界有輸入信息進入時,系統(tǒng)對外界的響應(yīng)和交互。
根據(jù)EDFA 的要求,基于EDFA 的功能需求分析過程,將從以下幾個方面進行分析。
(1)DFA 系統(tǒng)狀態(tài)集S 的識別。
狀態(tài)集S 的識別是基于EDFA 分析法的關(guān)鍵步驟之一。 因為識別了狀態(tài)集S,就可以根據(jù)狀態(tài)集中的n 個狀態(tài)( s1,s2,…,sn),分別識別不同狀態(tài)下系統(tǒng)在外界輸入的情況下,對外界的響應(yīng)和交互。
基于狀態(tài)集S 識別系統(tǒng)需求的優(yōu)勢有:
①對系統(tǒng)需求的全空間進行劃分,按照狀態(tài)集S中的狀態(tài)依次識別不同狀態(tài)下的功能需求,縮小每次需求識別的空間大小和復(fù)雜度,減低了識別難度,有利于準確、高效、盡可能完整的識別需求;
②由于DFA 的特點,狀態(tài)集S 中的所有狀態(tài)一般都是“獨立”的,因此,基于狀態(tài)集S 所識別的系統(tǒng)功能需求也是彼此獨立的,共同構(gòu)成系統(tǒng)需求。
(2)和外部系統(tǒng)信號接口(輸入/輸出)的識別。
系統(tǒng)輸入/輸出的識別,可以借助SysML/UML 中的用例圖識別,用例從外部參與者獲得的信號作為系統(tǒng)輸入信號,系統(tǒng)向外部參與者輸出的信號作為系統(tǒng)輸出信號。
一般的系統(tǒng),輸入/輸出信號可能較多,考慮基于不同系統(tǒng)狀態(tài)逐個識別每個狀態(tài)對應(yīng)的輸入/輸出信號種類;也可以一次性識別系統(tǒng)的所有輸入/輸出信號種類;針對系統(tǒng)的所有輸入/輸出信號,不同信號的有效范圍是不同的,因此,需要針對每個信號獨立識別其有效范圍。
(3)DFA 輸入激勵集Σ的識別。
輸入激勵集Σ的識別,對于識別系統(tǒng)功能需求是非常重要的。輸入激勵集Σ是觸發(fā)當前狀態(tài)跳轉(zhuǎn)到下一狀態(tài)的關(guān)鍵因素,而系統(tǒng)處于當前狀態(tài)下,會完成基于當前狀態(tài)下的系統(tǒng)功能,如果跳轉(zhuǎn)到下一狀態(tài),則開始完成下一狀態(tài)下的功能;因此,輸入激勵集Σ是完成“一類功能需求”切換到“另一類功能需求”的關(guān)鍵因素。
根據(jù)前述分析,對于整個系統(tǒng)DFA 來說,輸入激勵集Σ過于龐大,因此,根據(jù)系統(tǒng)當前所處的狀態(tài)is,識別對應(yīng)的輸入激勵集Σ的子集Σsi將會比較容易,而最終系統(tǒng)的輸入激勵集Σ是所有Σsi的并集
(4)DFA 轉(zhuǎn)移函數(shù)f 的識別。
轉(zhuǎn)移函數(shù)f 代表了在當前狀態(tài)下,在輸入激勵集Σ激勵下,系統(tǒng)對應(yīng)的下一狀態(tài)。根據(jù)前述分析,由于整個功能需求是基于狀態(tài)集子狀態(tài)以此進行識別的,因此,轉(zhuǎn)移函數(shù)也依照不同子狀態(tài)進行識別(is 狀態(tài)下的轉(zhuǎn)移函數(shù)記為fis),最后統(tǒng)一匯總稱為DFA 的轉(zhuǎn)移函數(shù)
(5)系統(tǒng)輸入U 向輸入激勵集Σ的映射K 的識別。通過系統(tǒng)外部輸入信號等價集合來識別系統(tǒng)輸入信號與激勵集合Σ的映射關(guān)系。
由于系統(tǒng)輸入U 在不同的信號范圍內(nèi)對激勵集Σ的映射可能是不同的,因此,需要識別不同的輸入信號范圍與激勵集中激勵信號的對應(yīng)關(guān)系。一般來說,這種對應(yīng)關(guān)系是基于不同的狀態(tài)is 得出的,因此,這里建議基于子狀態(tài)逐個識別輸入信號向激勵集Σ的映射關(guān)系Kis,最后統(tǒng)一合并為(類似輸入激勵集的劃分模式)。
(6)系統(tǒng)狀態(tài)S 和輸入激勵集Σ向系統(tǒng)輸出Y 的映射G 的識別。
系統(tǒng)狀態(tài)S 和輸入激勵集Σ向系統(tǒng)輸出Y 的映射G 實際上就是代表系統(tǒng)的功能需求(因為這里的Y 就是系統(tǒng)對外界的響應(yīng))。
參照前述內(nèi)容,對系統(tǒng)狀態(tài)集S 中的每個狀態(tài) si,依次識別在輸入激勵集Σ(也可以是輸入激勵集Σ的子集Σsi)的激勵下,系統(tǒng)的輸出映射 Gsi,從而得到系統(tǒng)的輸出 Ysi,最后綜合系統(tǒng)的輸出映射 Gsi,得到系統(tǒng)的總映射G,綜合所有輸出 Ysi,得到系統(tǒng)的總輸出Y。
(7)DFA 初始狀態(tài) s0的識別。
初始狀態(tài) s0代表了系統(tǒng)初次運行時所處的第一個狀態(tài),一般根據(jù)系統(tǒng)的實際情況,在狀態(tài)集S 中進行識別,并進行標記。
(8)功能需求的整理模板。
經(jīng)過前面的分析初步獲得了分析結(jié)果,可以按照下面的模板整理功能需求。
<當前狀態(tài)>下,當<系統(tǒng)輸入U 向Σ映射K>時,系統(tǒng)跳轉(zhuǎn)到<轉(zhuǎn)移函數(shù)f 的目標狀態(tài)>,同時,<向系統(tǒng)輸出Y 的映射G>。
(9)整理/補充系統(tǒng)功能需求。
按照(1)-(8)的步驟,逐個分析系統(tǒng)狀態(tài),獲得所有狀態(tài)下的功能需求,然后,將所有的需求綜合整理,就得到了系統(tǒng)的完整的功能需求。
系統(tǒng)功能需求分析方法流程參見圖2,將來可以考慮程序化處理。

圖2 基于EDFA 功能需求分析流程
(1)依托DFA,表征系統(tǒng)需求內(nèi)在特性:DFA 的狀態(tài)集合、輸入激勵、轉(zhuǎn)換函數(shù),既體現(xiàn)了系統(tǒng)不同運行模式,也體現(xiàn)不同模式之間的轉(zhuǎn)換和轉(zhuǎn)換條件要求,從本質(zhì)上抓住了系統(tǒng)的關(guān)鍵特征要素,對提升功能需求分析的有效性和完整性非常重要。
(2)從系統(tǒng)狀態(tài)空間、輸入空間完整劃分的角度出發(fā)充分識別系統(tǒng)功能需求:狀態(tài)空間對系統(tǒng)的運行模式和關(guān)鍵特征進行了劃分,通過狀態(tài)空間確保系統(tǒng)的運行模式可以識別完整;通過輸入空間的完整劃分,可以確保在不同的運行模式下,對完整輸入空間的響應(yīng)是完全避免功能需求識別過程中,遺漏特殊輸入組合的情況。
(3)具有結(jié)構(gòu)化的分析流程和方法,易于自動化處理。
(4)通過將輸入激勵集、轉(zhuǎn)移函數(shù)劃分,不但可以表示簡單的系統(tǒng),也可以表示復(fù)雜的系統(tǒng)。
為簡化起見,僅以自動巡航系統(tǒng)(ACC)的“跟車模式”狀態(tài)為例,驗證EDFA 功能需求分析流程及適用性,分析步驟參見圖2。
(1)識別系統(tǒng)狀態(tài)。
根據(jù)ACC 系統(tǒng)的特點,經(jīng)過分析ACC 系統(tǒng)一共有4 個狀態(tài):
①速度控制模式(SpeedCtrl):主要是維持當前車速為設(shè)定的巡航速度不變,適用于前方?jīng)]有車輛的情況。
②跟車模式(FollowMode):主要是前方有車并且車速低于設(shè)定的巡航速度時的控制策略。策略上,本車保持與前車車速一致,進行跟隨。
③設(shè)置速度模式(SetSpeed):在沒有啟動巡航模式情況下,駕駛員設(shè)置巡航速度,并可以啟動巡航。
④待機模式(Standby):系統(tǒng)上電后,處在待機狀態(tài),等待輸入指令。
因此,EDFA 的狀態(tài)集合為

(2)識別和外部系統(tǒng)的信號接口。
識別的外部相關(guān)對象一共有 4 個:駕駛員(Driver)、發(fā)動機(Engine)、剎車系統(tǒng)(Brake)、雷達(Radar)。
系統(tǒng)用例圖參見圖3。

圖3 ACC 系統(tǒng)用例圖
識別在跟車模式FollowMode 下,外部的所有輸入/輸出信號接口,參見表1 和表2。

表1 跟車模式下所有輸入信號接口

表2 跟車模式下所有輸出信號接口
(3)識別輸入激勵集。
在跟車模式(FollowMode)下,識別輸入激勵集Σs1,參見表3。
(4)識別轉(zhuǎn)移函數(shù)f。
在系統(tǒng)的4 個狀態(tài)中,根據(jù)實際系統(tǒng)的要求,可以在跟車模式和速度控制模式之間進行切換,另外,當退出跟車模式時會進入到待機模式。
根據(jù)輸入激勵集以及當前所處的跟車模式,識別在當前狀態(tài)下EDFA 的轉(zhuǎn)移函數(shù)f1s,參見表4。
(5)識別“跟車模式”下輸入U 向激勵集Σ的映射K。
根據(jù)ACC 系統(tǒng)特點,“跟車模式”下識別的輸入U 對激勵Σ的映射關(guān)系K1s,參見表5(未提到的輸入信號表示無影響)。

表3 跟車模式下輸入激勵集Σs1

表4 跟車模式下轉(zhuǎn)移函數(shù)f1s

表5 跟車模式下輸入U 與激勵集Σ的映射關(guān)系K1s

表6 跟車模式下識別向系統(tǒng)輸出Y 的映射G 關(guān)系
(6)識別向系統(tǒng)輸出Y 的映射G。
根據(jù)ACC 系統(tǒng)的特點,“跟車模式”下識別的向系統(tǒng)輸出Y 的映射G 關(guān)系參見表6。
(7)識別初始狀態(tài)s0。
根據(jù)ACC 系統(tǒng)的特點,系統(tǒng)上電后處于Standby模式,因此,s0=Standby。
(8)定義當前狀態(tài)下功能需求。
根據(jù)前述分析原理,參考“功能需求整理模板”(<當前狀態(tài)>下,當<系統(tǒng)輸入U 向Σ的映射K>時,系統(tǒng)跳轉(zhuǎn)到<轉(zhuǎn)移函數(shù)f 的目標狀態(tài)>,同時,<向系統(tǒng)輸出Y 的映射G>),整理得到如下的“跟車模式”的功能需求:
①跟車模式下,當本車車速在[25,120] km/h 之間,并且與前車距離大于100 m、沒有剎車、沒有加油、取消巡航按鈕沒有按下,系統(tǒng)進入速度控制模式、本車車速大于前車車速時,系統(tǒng)跳轉(zhuǎn)到速度控制模式;
②跟車模式下,當剎車踏板踩下或者油門踏板踩下,或者收到結(jié)束巡航信號,或者車速大于120 km/h,或者車速小于25 km/h,系統(tǒng)退出跟車模式進入Standby模式,同時向駕駛員提示警告信息;
③跟車模式下,當前車速度小于本車速度,且本車車速大于25 km/h,小于120 km/h、前車距離本車小于100 m、取消按鈕沒有按下、沒有剎車、沒有加油,系統(tǒng)保持跟車模式。
(9)整理/補充系統(tǒng)功能需求。
前述基于狀態(tài)的需求分析過程中,已經(jīng)可以識別出若干系統(tǒng)總體的功能需求,補充如下。
①ACC 系統(tǒng)一共有4 種運行模式:速度控制模式SpeedCtrl,跟車模式FollowMode,待機模式Standby和設(shè)置速度模式SetSpeed;
②ACC 系統(tǒng)上電后的初始狀態(tài)為待機模式Standby。
根據(jù)功能需求分析流程,逐個對其他3 個狀態(tài)的功能需求進行分析,然后綜合所有狀態(tài)下的需求和系統(tǒng)的總體功能需求,就可以得到ACC 系統(tǒng)的功能需求。
在上述分析中,只對“跟車模式”進行了功能需求分析,從分析可以看出,通過狀態(tài)空間劃分,將系統(tǒng)分解為4 種獨立運行狀態(tài)(減小分析空間的大小),然后每種狀態(tài)獨立分析其功能需求,最后綜合稱為系統(tǒng)的整體功能需求。
每種狀態(tài)功能需求分析過程中,首先識別從該狀態(tài)向外部和自身狀態(tài)轉(zhuǎn)移的可能輸入激勵和轉(zhuǎn)移函數(shù),這樣就可以從整體上識別4 種運行狀態(tài)之間的工作模式切換(實際上是從整體上識別了系統(tǒng)的整體運行需求)。
在獲得輸入激勵后,將系統(tǒng)的外部輸入映射到輸入激勵上,也就是說,外部輸入會直接影響系統(tǒng)內(nèi)部的輸入激勵,從而識別在不同的外部輸入下,哪些輸入組合條件會造成系統(tǒng)在不同的工作模式之間切換,從而將外部輸入信號組合與輸入激勵聯(lián)系起來。
根據(jù)轉(zhuǎn)移函數(shù),識別在每次轉(zhuǎn)移的時候,在當前狀態(tài)和輸入信號組合情況下,所對應(yīng)的系統(tǒng)外部輸出信號要求,從而將系統(tǒng)狀態(tài)、輸入激勵、轉(zhuǎn)移函數(shù)、輸入信號組合與系統(tǒng)輸出關(guān)聯(lián)起來。
綜合來看,通過該結(jié)構(gòu)化方法可以按步驟、有條理地分析出系統(tǒng)的功能需求。在系統(tǒng)比較復(fù)雜的情況下,通過識別系統(tǒng)的狀態(tài)集合,再按照不同的狀態(tài)分析系統(tǒng)功能需求,可以減小需求分析的復(fù)雜度和難度,同時,由于其分析過程的結(jié)構(gòu)化特性,更易于掌握并且流程化,有利于使用和推廣。
系統(tǒng)功能需求是后續(xù)設(shè)計開發(fā)的基礎(chǔ),具有重要作用。本文基于EFDA 提出了一種需求獲取的結(jié)構(gòu)化方法。
基于EFDA 的功能需求獲取法,從系統(tǒng)狀態(tài)入手,通過識別不同狀態(tài)下的輸入激勵集合、轉(zhuǎn)移函數(shù)、初始狀態(tài)、外部輸入信號與輸入激勵集合的關(guān)系、外部輸入信號與轉(zhuǎn)移函數(shù)和外部輸出信號之間的關(guān)系,分析得到對應(yīng)狀態(tài)下的功能需求;通過綜合不同狀態(tài)下的功能需求,得到系統(tǒng)的整體功能需求。
基于EDFA 的功能需求分析法,具有結(jié)構(gòu)化、條理化等優(yōu)點,面向大型系統(tǒng)需求獲取時,可以通過分解狀態(tài)激勵、轉(zhuǎn)移函數(shù)、每個狀態(tài)下功能需求等幾個子部分進行分析,從而簡化大系統(tǒng)需求分析難度,降低分析復(fù)雜度,提升功能需求分析的完整性。