嵌入式軟件系統(tǒng)程序的開發(fā)方法
【專利摘要】本發(fā)明涉及一種嵌入式軟件系統(tǒng)程序的開發(fā)方法,包括根據(jù)嵌入式軟件系統(tǒng)程序的需求分析建立待開發(fā)嵌入式系統(tǒng)程序的需求模型;對需求模型進行分析和檢測,同時生成目標(biāo)軟件系統(tǒng)程序所需要的源代碼,進而生成目標(biāo)軟件系統(tǒng)程序;對目標(biāo)軟件系統(tǒng)程序進行程序分析得出程序模型,將程序模型和需求模型進行比較分析以發(fā)現(xiàn)差異性,如發(fā)現(xiàn)差異性則對生成的目標(biāo)軟件系統(tǒng)程序或需求模型進行修復(fù)步驟。本發(fā)明針對嵌入式軟件系統(tǒng)程序的特點,提供適合于嵌入式軟件系統(tǒng)程序的需求建模技術(shù)方案,將用戶使用自然語言表達的需求轉(zhuǎn)化為場景及行為表達式,為自動檢測軟件系統(tǒng)的需求是否正確和完整奠定了良好的基礎(chǔ)。
【專利說明】嵌入式軟件系統(tǒng)程序的開發(fā)方法
【技術(shù)領(lǐng)域】
[0001] 本本發(fā)明屬于軟件開發(fā)技術(shù)和工具領(lǐng)域,特別是涉及一種嵌入式軟件系統(tǒng)程序的 開發(fā)方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的嵌入式軟件系統(tǒng)程序開發(fā)工作存在許多不足之處,主要表現(xiàn)在如下幾個方 面:
[0003] (1)高層次的系統(tǒng)需求分析階段易與軟件實現(xiàn)階段之間脫節(jié)。通常,根據(jù)用戶需求 建立的需求規(guī)格說明和需求模型是軟件實現(xiàn)的依據(jù)和規(guī)范,但在實際的軟件實現(xiàn)過程中由 于用戶需求的易變性和頻繁的程序改動,使得最終的源程序與最初的需求規(guī)格說明和需求 模型會產(chǎn)生不一致或矛盾,如果不及時修改最初的的需求規(guī)格說明和需求模型,這將導(dǎo)致 系統(tǒng)文檔間的不一致,使得花費了許多精力和成本建立的需求規(guī)格說明和需求模型不能發(fā) 揮應(yīng)有的作用。
[0004] (2)由于上述的脫節(jié),也導(dǎo)致在系統(tǒng)需求分析階段對需求模型的檢測與軟件實現(xiàn) 階段對源程序的測試工作脫節(jié),導(dǎo)致需花費很多精力和成本來重復(fù)設(shè)計測試用例。
[0005] (3)缺乏完善的指導(dǎo)面向嵌入式軟件系統(tǒng)開發(fā)的框架和有效的支持從需求到源程 序的嵌入式軟件開發(fā)的方法和技術(shù)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于為克服現(xiàn)有技術(shù)的缺陷,而提供一種嵌入式軟件系統(tǒng)程序的開 發(fā)方法。
[0007] 為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種嵌入式軟件系統(tǒng)程序的開發(fā)方 法,包括以下步驟:
[0008] S1根據(jù)嵌入式軟件系統(tǒng)程序的需求分析建立待開發(fā)嵌入式系統(tǒng)程序的需求模 型;
[0009] S2對步驟S1所述需求模型進行分析和檢測,同時生成目標(biāo)軟件系統(tǒng)程序所需要 的源代碼,進而生成目標(biāo)軟件系統(tǒng)程序;
[0010] S3對目標(biāo)軟件系統(tǒng)程序進行程序分析得出程序模型,將程序模型和需求模型進行 比較分析以發(fā)現(xiàn)差異性,如發(fā)現(xiàn)差異性則對生成的目標(biāo)軟件系統(tǒng)程序或需求模型進行修 復(fù);
[0011] 其中步驟S1所述需求模型的建立包括如下步驟:
[0012] S11劃分子問題域、標(biāo)識視點,根據(jù)自然語言描述的需求,建立相應(yīng)的場景信息;
[0013] S12根據(jù)場景信息抽取與行為相關(guān)的信息,并利用行為描述語言描述行為相關(guān)的 信息,建立行為表達式;
[0014] S13建立行為描述語言模型,作為檢驗需求模型的各種特性的基礎(chǔ);
[0015] S14利用模型檢驗方法檢測需求模型的一致性及需求模型所對應(yīng)的系統(tǒng)需要檢測 的可信特性,如發(fā)現(xiàn)差異對需求模型進行修復(fù)。
[0016] 進一步,步驟S14所述對需求模型的分析和檢測包括如下步驟:
[0017] S141視點建模,生成視點行為模型;
[0018] S142檢查視點行為模型內(nèi)的行為表達合法性、輸入/輸出行為的一致性和行為連 續(xù)性;
[0019] S143修改視點行為模型,直到每個視點都滿足行為表達合法性、輸入/輸出行為 的一致性和行為連續(xù)性要求;
[0020] S144根據(jù)視點的相關(guān)關(guān)系檢測視點行為模型間的一致性;
[0021] S145修改視點行為模型,直到所有相關(guān)視點行為模型間一致;
[0022] S146合并視點行為模型,得到系統(tǒng)行為模型;
[0023] S147檢測系統(tǒng)行為模型的行為有效性;
[0024] S148檢測系統(tǒng)行為模型的系統(tǒng)安全特性。
[0025] 進一步,步驟S2所述生成目標(biāo)軟件系統(tǒng)程序所需要的源代碼包括如下步驟;
[0026] S21確定場景之間的關(guān)系;
[0027] S22依據(jù)場景內(nèi)的輸入/輸出行為,得出功能模塊;
[0028] S23對視點內(nèi)的參數(shù)池的參數(shù)進行定義;
[0029] S24編碼、調(diào)試和生成所需要的源代碼。
[0030] 進一步,步驟S3包括如下步驟:
[0031] S31編譯行為描述語言文本和目標(biāo)軟件系統(tǒng)程序,建立行為描述語言文本和目標(biāo) 軟件系統(tǒng)程序的元素表,為元素對應(yīng)做準(zhǔn)備;
[0032] S32對行為描述語言文本元素表中的行為和操作數(shù)據(jù)與目標(biāo)軟件系統(tǒng)程序元素表 中的符號,包括函數(shù)、常量和變量進行人工對應(yīng);
[0033] S33參照建立的對應(yīng)關(guān)系從目標(biāo)軟件系統(tǒng)程序?qū)?yīng)的中間語言中提取程序模型, 而行為描述語言模型由行為描述語言直接生成。
[0034] S34將行為描述語言模型和程序模型輸入到模型比較檢測工具中進行檢測,得到 檢測結(jié)果;
[0035] S35對檢測結(jié)果進行分析并查找可能存在的問題及其原因;
[0036] S36如果存在問題,則對行為描述語言或目標(biāo)軟件系統(tǒng)程序進行修改以修復(fù)問 題;
[0037] S37 重復(fù)步驟 S31 至 S36。
[0038] 本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:1)針對嵌入式軟件系統(tǒng)程序的特點,本方 法使用場景和視點技術(shù),提供適合于嵌入式軟件系統(tǒng)程序的需求建模技術(shù)方案,并且通過 劃分子問題域,進一步降低嵌入式系統(tǒng)需求建模難度。將用戶使用自然語言表達的需求轉(zhuǎn) 化為場景及行為表達式,從而能實現(xiàn)從自然語言到半形式化,最終到形式化的需求描述,為 自動檢測軟件系統(tǒng)的需求是否正確和完整奠定了良好的基礎(chǔ)。
[0039] 2)通過形式化的模型驗證,從語法正確性證明開始對整個需求模型進行驗證,同 時軟件系統(tǒng)的特性如可信特性也是通過軟件行為來驗證的。
[0040] 3)需求模型到源代碼的轉(zhuǎn)換可以自動化的完成,極大的提高了效率,并通過對生 成的目標(biāo)軟件系統(tǒng)和需求模型進行比較分析所發(fā)現(xiàn)的差異性進行修復(fù)步驟最終得到目標(biāo) 程序代碼。
[0041] 4)本方法所提供的面向代碼的逆向分析過程從源代碼自動出發(fā),跟需求模型進行 比較,最終得到目標(biāo)源代碼是否和需求模型一致的結(jié)論,來判斷目標(biāo)軟件系統(tǒng)程序的正確 性。
[0042] 5)本方法有利于從形式化的角度建立和檢測軟件需求模型,進而轉(zhuǎn)換得到目標(biāo)軟 件系統(tǒng)程序的源代碼,提高軟件的生產(chǎn)效率和正確性。
[0043] 下面結(jié)合附圖和具體實施例對本發(fā)明作進一步描述。
【專利附圖】
【附圖說明】
[0044] 圖1為本發(fā)明的流程圖;
[0045] 圖2為本發(fā)明的需求建模和對其分析檢測的流程圖;
[0046] 圖3為本發(fā)明驗證行為有效性的原理圖;
[0047] 圖4為本發(fā)明需求模型當(dāng)中參數(shù)池定義的轉(zhuǎn)換對應(yīng)圖;
[0048] 圖5為本發(fā)明源代碼的編碼、調(diào)試和源碼生成步驟圖;
[0049] 圖6為本發(fā)明程序模型和需求模型比較檢測的流程圖; 圖7為本發(fā)明無線傳感器仿真工作流程圖。
【具體實施方式】
[0050] 為了更充分理解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例對本發(fā)明的技術(shù)方案進 一步介紹和說明。
[0051] 如圖1所示,為本發(fā)明的流程圖,一種嵌入式軟件系統(tǒng)的開發(fā)方法,具體實施時可 以采用計算機實現(xiàn)以下流程的自動運行:
[0052] 步驟S1根據(jù)嵌入式軟件系統(tǒng)程序的需求分析建立待開發(fā)嵌入式系統(tǒng)程序的需求 模型;
[0053] 步驟S2對步驟S1所述需求模型進行分析和檢測,同時生成目標(biāo)軟件系統(tǒng)程序所 需要的源代碼,進而生成目標(biāo)軟件系統(tǒng)程序;
[0054] 步驟S3將目標(biāo)軟件系統(tǒng)程序進行程序分析得出程序模型,將程序模型和需求模 型進行比較分析以發(fā)現(xiàn)差異性,如發(fā)現(xiàn)差異性則對生成的目標(biāo)軟件系統(tǒng)程序或需求模型進 行修復(fù);
[0055] 步驟S1中需求模型的建立包括如下步驟:
[0056] 步驟S11劃分子問題域、標(biāo)識視點,根據(jù)自然語言描述的需求,建立相應(yīng)的場景信 息;
[0057] 步驟S12根據(jù)場景信息抽取與行為相關(guān)的信息,并利用行為描述語言描述行為相 關(guān)的信息,建立行為表達式;
[0058] 步驟S13建立行為描述語言模型,作為檢驗需求模型的各種特性的基礎(chǔ);
[0059] 步驟S14利用模型檢驗方法檢驗需求模型的一致性及需求模型所對應(yīng)的系統(tǒng)需 要檢測的可信特性,如發(fā)現(xiàn)差異對需求模型進行修復(fù)。
[0060] 上述過程可以將系統(tǒng)的需求與該系統(tǒng)的行為有機地結(jié)合起來,從而可通過行為來 描述和檢驗待開發(fā)的嵌入式軟件系統(tǒng)程序的需求和行為各種可信特性,具體說明如下:
[0061] ①劃分子問題域
[0062] 對于嵌入式軟件系統(tǒng),由于其對應(yīng)的問題域繁多,所以在需求分析的開始就需要 將其分解為多個子問題域,然后根據(jù)每個子問題域施行需求分析。值得注意的是,問題域的 劃分方法應(yīng)根據(jù)問題域的邏輯特性和問題域內(nèi)部各成分間的邏輯關(guān)系進行。
[0063] ②標(biāo)識視點
[0064] 根據(jù)相應(yīng)的子問題域,從中找出所有的視點源及其關(guān)注點,并將它們標(biāo)識為視點, 然后建立視點模板以及在該模板中填寫部分視點信息。
[0065] ③描述需求
[0066] 從每個視點源獲取相關(guān)的需求信息,經(jīng)過分析整理,以自然語言的形式填入視點 模板的"需求描述"視點項中。
[0067] ④建立場景
[0068] 一個場景(也稱作腳本)是可以被行為者感受到的系統(tǒng)的一個完整的功能。場景 的描述主要用自然語言,而且根據(jù)已獲取的所有的有效行為并按它們的執(zhí)行順序構(gòu)成有序 的行為系列,從而構(gòu)建出每一個場景。
[0069] ⑤使用行為描述語言建立行為表達式
[0070] 根據(jù)場景信息抽取與行為相關(guān)的信息,并利用行為描述語言描述行為相關(guān)的信 息,建立行為表達式。使用行為描述語言(BDL)來描述每個場景信息,并用行為表達式來表 示場景中的內(nèi)容,在描述過程中可以采用逐步細化的方式來描述一個場景的行為模型,與 所有場景對應(yīng)的多個行為表達式就構(gòu)成系統(tǒng)的行為模型或需求模型,需求建模的流程圖如 圖2所示。
[0071] 本發(fā)明還提供了在此步驟形成的行為描述語言的需求模型實施例以供參考:
[0072] 該步驟中不采用自然語言,主要利用行為描述語言(BDL,Behaviors Description Language)表達行為模型。本發(fā)明采用行為描述語言這種形式化語言作為描述手段之一,其 主要用于嚴(yán)格地描述待開發(fā)軟件系統(tǒng)的行為模型,可以為以后自動檢驗待開發(fā)軟件系統(tǒng)的 各種特性奠定良好的基礎(chǔ)。行為描述語言對行為、場景到視點的描述表達都給出了嚴(yán)格的 表現(xiàn)形式,即設(shè)某個場景中包含η個有效行為,描述所得η個原子行為表達為
[0073] 原子行為標(biāo)識1 :原子行為定義1 ;
[0074] 原子行為標(biāo)識2 :原子行為定義2 ;
[0075] ......
[0076] 原子行為標(biāo)識η :原子行為定義η ;
[0077] 場景行為表達式=場景中所有的η個原子行為及其原子行為間的關(guān)系;
[0078] 視點行為表達式=視點中所有場景行為表達式及其場景間的關(guān)系。
[0079] 具體實施時,按照這種確定的行為描述語言語法,計算機可以自動完成從自然語 言描述的需求到建立初始系統(tǒng)需求模型的全過程,然后通過修改和檢測最終形成正確的系 統(tǒng)需求模型。
[0080] 為了便于管理,本發(fā)明進一步提供了模型表達方式:系統(tǒng)行為模型可以表示為Μ =(V,R0, Rl,R2),其中V表示與待開發(fā)軟件系統(tǒng)相關(guān)的視點的集合,且V中每個視點對應(yīng) 一個視點行為模型,R0、R1、R2分別表示V中視點間的重疊、順序和無關(guān)關(guān)系;視點行為模型 表示為Ml = (B,+,If,| |,;),其中B表示視點內(nèi)所有場景行為表達式的集合。+,If,| |,; 分別表示B中場景間的非確定、確定選擇、并行和順序關(guān)系。這種形式化表示,可以保證視 點行為模型和系統(tǒng)行為模型在表達方面的正確性,以及防止視點間需求信息可能會發(fā)生重 疊從而導(dǎo)致行為模型間出現(xiàn)行為沖突和不一致。
[0081] 本發(fā)明還提供了實施例在此步驟形成的行為描述語言文本以供參考:
[0082] 令A(yù)BehID為原子行為標(biāo)識,BehID為行為標(biāo)識。
[0083] (1)原子行為:
[0084] 1)原子行為表達式
[0085] ABehID :f (sub, obj)
[0086] [When前置條件]
[0087] [INFrom(ID) (u1; ···.., un)]
[0088] [OUTTo (ID) (v" ...··,vj ] ·
[0089] 其中:f為主體sub施用于客體obj的服務(wù)、操作或動作。When,INFrom和OUTTo 分別為行為執(zhí)行的前置條件,行為的輸入和輸出。
[0090] 2)空動作:ABehID :Idel.
[0091] 3)復(fù)合行為結(jié)束動作:ABehID :Return (ABehID)或 Return ().
[0092] 其中:Return()表示正常退出系統(tǒng)。
[0093] (2)簡單行為:| 一ABehID ;(原子行為構(gòu)成簡單行為)
【權(quán)利要求】
1. 一種嵌入式軟件系統(tǒng)程序的開發(fā)方法,其特征在于包括以下步驟: S1根據(jù)嵌入式軟件系統(tǒng)程序的需求分析建立待開發(fā)嵌入式系統(tǒng)程序的需求模型; S2對步驟S1所述需求模型進行分析和檢測,同時生成目標(biāo)軟件系統(tǒng)程序所需要的源 代碼,進而生成目標(biāo)軟件系統(tǒng)程序; S3對目標(biāo)軟件系統(tǒng)程序進行程序分析得出程序模型,將程序模型和需求模型進行比較 分析以發(fā)現(xiàn)差異性,如發(fā)現(xiàn)差異性則對生成的目標(biāo)軟件系統(tǒng)程序或需求模型進行修復(fù); 其中步驟S1所述需求模型的建立包括如下步驟: S11劃分子問題域、標(biāo)識視點,根據(jù)自然語言描述的需求,建立相應(yīng)的場景信息; S12根據(jù)場景信息抽取與行為相關(guān)的信息,并利用行為描述語言描述行為相關(guān)的信息, 建立行為表達式; S13建立行為描述語言模型,作為檢驗需求模型的各種特性的基礎(chǔ); S14利用模型檢驗方法檢測需求模型的一致性及需求模型所對應(yīng)的系統(tǒng)需要檢測的可 信特性,如發(fā)現(xiàn)差異對需求模型進行修復(fù)。
2. 根據(jù)權(quán)利要求1所述嵌入式軟件系統(tǒng)程序的開發(fā)方法,其特征在于步驟S14所述對 需求模型的分析和檢測包括如下步驟: S141視點建模,生成視點行為模型; S142檢查視點行為模型內(nèi)的行為表達合法性、輸入/輸出行為的一致性和行為連續(xù) 性; S143修改視點行為模型,直到每個視點都滿足行為表達合法性、輸入/輸出行為的一 致性和行為連續(xù)性要求; S144根據(jù)視點的相關(guān)關(guān)系檢測視點行為模型間的一致性; S145修改視點行為模型,直到所有相關(guān)視點行為模型間一致; S146合并視點行為模型,得到系統(tǒng)行為模型; S147檢測系統(tǒng)行為模型的行為有效性; S148檢測系統(tǒng)行為模型的系統(tǒng)安全特性。
3. 根據(jù)權(quán)利要求1或2任一所述嵌入式軟件系統(tǒng)程序的開發(fā)方法,其特征在于步驟S2 所述生成目標(biāo)軟件系統(tǒng)程序所需要的源代碼包括如下步驟; S21確定場景之間的關(guān)系; S22依據(jù)場景內(nèi)的輸入/輸出行為,得出功能模塊; S23對視點內(nèi)的參數(shù)池的參數(shù)進行定義; S24編碼、調(diào)試和生成所需要的源代碼。
4. 根據(jù)權(quán)利要求1所述嵌入式軟件系統(tǒng)程序的開發(fā)方法,其特征在于步驟S3包括如下 步驟: S31編譯行為描述語言文本和目標(biāo)軟件系統(tǒng)程序,建立行為描述語言文本和目標(biāo)軟件 系統(tǒng)程序的元素表,為元素對應(yīng)做準(zhǔn)備; S32對行為描述語言文本元素表中的行為和操作數(shù)據(jù)與目標(biāo)軟件系統(tǒng)程序元素表中的 符號,包括函數(shù)、常量和變量進行人工對應(yīng); S33參照建立的對應(yīng)關(guān)系從目標(biāo)軟件系統(tǒng)程序?qū)?yīng)的中間語言中提取程序模型,而行 為描述語言模型由行為描述語言直接生成; S34將行為描述語言模型和程序模型輸入到模型比較檢測工具中進行檢測,得到檢測 結(jié)果; S35對檢測結(jié)果進行分析并查找可能存在的問題及其原因; S36如果存在問題,則對行為描述語言或目標(biāo)軟件系統(tǒng)程序進行修改以修復(fù)問題; S37重復(fù)步驟S31至S36。
【文檔編號】G06F9/44GK104216703SQ201410284639
【公開日】2014年12月17日 申請日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
【發(fā)明者】毋國慶, 黃勃 申請人:武漢大學(xué)深圳研究院