本發(fā)明涉及用于安全關(guān)鍵軟件開發(fā)的基于模型的技術(shù)和過程的系統(tǒng)和方法。
背景技術(shù):
微處理器控制設(shè)備的普及已經(jīng)導(dǎo)致了功能越來越多的設(shè)備,但它也更加依賴于控制這些嵌入式系統(tǒng)的軟件的質(zhì)量。許多潛在危險的設(shè)備都是由嵌入式軟件(例如,汽車、火車、飛機(jī)、煉油廠、化工廠、核電廠和醫(yī)療設(shè)備等)控制的。驗(yàn)證用于這些設(shè)備和系統(tǒng)的操作應(yīng)用程序代碼的正確性的傳統(tǒng)方法是困難且低效的。
安全關(guān)鍵軟件系統(tǒng)開發(fā)解決了這些系統(tǒng)的規(guī)模和復(fù)雜性的增加,并尊重保持安全關(guān)鍵業(yè)務(wù)的需要。有一系列的軟件工程方法、工具和框架來開發(fā)復(fù)雜的關(guān)鍵系統(tǒng)。例如,一種方法是將模型驅(qū)動的工程技術(shù)應(yīng)用于安全關(guān)鍵系統(tǒng)開發(fā)。
傳統(tǒng)方法可以包括使用市售的集成設(shè)計環(huán)境(IDE)工具來進(jìn)行軟件規(guī)范建模、確認(rèn)/驗(yàn)證和測試用例生成和執(zhí)行。通常,這些工具使用嚴(yán)格的方法來自動或半自動化一部分的詳細(xì)設(shè)計步驟,同時降低了數(shù)據(jù)輸入要求,為剩余的步驟節(jié)省時間。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)方案1:一種用于安全關(guān)鍵軟件的基于模型的設(shè)計的方法,所述方法包括:
接收自然語言軟件需求132;
通過實(shí)施所述自然語言軟件需求的語義建模150和圖形化建模152中的至少一個來開發(fā)結(jié)構(gòu)化自然語言中的軟件規(guī)范模型133;
應(yīng)用所述軟件規(guī)范模型的形式需求分析;
由所述軟件規(guī)范模型自動生成基于需求的和魯棒性測試用例;
基于所述規(guī)范模型開發(fā)軟件設(shè)計模型;
將自動生成的基于需求的和魯棒性測試用例應(yīng)用于所述軟件設(shè)計模型;
進(jìn)行所述軟件設(shè)計模型的形式分析;
使用所述軟件設(shè)計模型自動生成源代碼136;
通過應(yīng)用自動生成的測試用例148和靜態(tài)分析技術(shù)來驗(yàn)證所述源代碼的覆蓋和行為;
由所驗(yàn)證的源代碼編譯可執(zhí)行目標(biāo)代碼;以及
通過應(yīng)用自動生成的測試用例來驗(yàn)證所述可執(zhí)行目標(biāo)代碼的覆蓋和行為。
技術(shù)方案2:根據(jù)技術(shù)方案1所述的方法,包括自動測試用例和規(guī)程生成單元由軟件規(guī)范模型自動生成測試用例。
技術(shù)方案3:根據(jù)技術(shù)方案1所述的方法,包括自動定理證明單元實(shí)施自動定理證明技術(shù)來分析和驗(yàn)證所述軟件規(guī)范模型的一致性、正確性和完整性中的至少一個。
技術(shù)方案4:根據(jù)技術(shù)方案1所述的方法,包括如果所述軟件規(guī)范模型的所述分析的結(jié)果不符合要求,則調(diào)整所述軟件規(guī)范模型,以修正與所述自然語言軟件需求的任何不一致。
技術(shù)方案5:根據(jù)技術(shù)方案4所述的方法,包括將所述需求分析應(yīng)用于所調(diào)整后的軟件規(guī)范模型。
技術(shù)方案6:根據(jù)技術(shù)方案1所述的方法,包括自動基于需求的和魯棒性測試用例和規(guī)程生成單元自動生成應(yīng)用于所述軟件設(shè)計模型的所述測試用例。
技術(shù)方案7:根據(jù)技術(shù)方案1所述的方法,包括使用模型檢查技術(shù)來生成應(yīng)用于所述軟件設(shè)計模型的所述基于需求的和魯棒性測試用例。
技術(shù)方案8:根據(jù)技術(shù)方案1所述的方法,包括如果所述軟件設(shè)計模型的所述分析的結(jié)果不符合要求,則調(diào)整所述軟件設(shè)計模型,以修正與所述軟件規(guī)范模型的任何不一致。
技術(shù)方案9:根據(jù)技術(shù)方案8所述的方法,包括將所述測試用例應(yīng)用于所調(diào)整后的軟件設(shè)計模型。
技術(shù)方案10:一種非暫時性計算機(jī)可讀介質(zhì),具有存儲在其上的指令,當(dāng)由處理器執(zhí)行時,所述指令使得所述處理器執(zhí)行用于安全關(guān)鍵軟件的基于模型的設(shè)計的方法,所述方法包括:
接收自然語言軟件需求;
通過實(shí)施所述自然語言軟件需求的語義建模和圖形化建模中的至少一個來開發(fā)結(jié)構(gòu)化自然語言中的軟件規(guī)范模型;
應(yīng)用所述軟件規(guī)范模型的形式需求分析;
由所述軟件規(guī)范模型自動生成基于需求的和魯棒性測試用例;
基于所述規(guī)范模型開發(fā)軟件設(shè)計模型;
將基于需求的和魯棒性測試用例應(yīng)用于所述軟件設(shè)計模型;
進(jìn)行所述軟件設(shè)計模型的形式模型分析;
使用所述軟件設(shè)計模型自動生成源代碼;
通過應(yīng)用測試用例和靜態(tài)分析技術(shù)來驗(yàn)證所述源代碼;
由所驗(yàn)證的源代碼編譯可執(zhí)行目標(biāo)代碼;以及
將測試用例應(yīng)用于所述可執(zhí)行目標(biāo)代碼。
技術(shù)方案11:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),所述指令進(jìn)一步使得所述處理器指示自動測試用例和規(guī)程生成單元由所述軟件規(guī)范模型自動生成所述測試用例。
技術(shù)方案12:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),所述指令進(jìn)一步使得所述處理器指示自動定理證明單元實(shí)施自動定理證明技術(shù)來分析和驗(yàn)證所述軟件規(guī)范模型的一致性、正確性和完整性中的至少一個。
技術(shù)方案13:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),如果所述軟件規(guī)范模型的所述分析的結(jié)果不符合要求,所述指令進(jìn)一步使得所述處理器調(diào)整所述軟件規(guī)范模型,以修正與所述結(jié)構(gòu)化自然語言軟件需求的任何不一致。
技術(shù)方案14:根據(jù)技術(shù)方案13所述的非暫時性計算機(jī)可讀介質(zhì),所述指令進(jìn)一步使得所述處理器將所述測試用例應(yīng)用于所調(diào)整后的軟件規(guī)范模型。
技術(shù)方案15:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),所述指令進(jìn)一步使得所述處理器指示自動測試用例和規(guī)程生成單元自動生成應(yīng)用于所述軟件設(shè)計模型的所述基于需求的和魯棒性測試用例。
技術(shù)方案16:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),所述指令進(jìn)一步使得所述處理器使用模型檢查技術(shù)來生成應(yīng)用于所述軟件設(shè)計模型的所述基于需求的和魯棒性測試用例。
技術(shù)方案17:根據(jù)技術(shù)方案10所述的非暫時性計算機(jī)可讀介質(zhì),如果所述軟件設(shè)計模型的所述分析的結(jié)果不符合要求,所述指令進(jìn)一步使得所述處理器調(diào)整所述軟件設(shè)計模型,以修正與所述軟件規(guī)范模型的任何不一致;以及將所述測試用例應(yīng)用于所調(diào)整后的軟件設(shè)計模型。
技術(shù)方案18:一種用于安全關(guān)鍵軟件的基于模型的設(shè)計的系統(tǒng),包括:
至少一個計算機(jī),具有連接到電子通信網(wǎng)絡(luò)的處理器;
所述處理器執(zhí)行指令,使得所述處理器控制:
被配置為執(zhí)行語義建模技術(shù)的語義建模單元和被配置為執(zhí)行圖形建模技術(shù)的圖形化建模單元中的至少一個,所述語義建模單元和所述圖形化建模單元被配置為由自然語言軟件需求分別開發(fā)結(jié)構(gòu)化自然語言中的軟件規(guī)范模型;
所述軟件規(guī)范模型的形式需求分析;
自動測試用例和規(guī)程生成單元,被配置為自動生成所述基于需求的和魯棒性測試用例,用于驗(yàn)證由所述軟件規(guī)范模型開發(fā)的軟件設(shè)計模型;
自動定理證明單元,被配置為實(shí)現(xiàn)自動定理證明技術(shù)來分析和驗(yàn)證所述軟件規(guī)范模型和所述軟件設(shè)計模型中的至少一個;以及
自動代碼生成單元,被配置為由所述軟件設(shè)計模型自動生成源代碼。
技術(shù)方案19:根據(jù)技術(shù)方案18所述的系統(tǒng),進(jìn)一步包括指令,所述指令使得所述處理器:
通過應(yīng)用測試用例和靜態(tài)分析技術(shù)來驗(yàn)證所述源代碼;以及
由所驗(yàn)證的源代碼編譯可執(zhí)行目標(biāo)代碼。
技術(shù)方案20:根據(jù)技術(shù)方案19所述的系統(tǒng),進(jìn)一步包括指令,所述指令使得所述處理器:
如果所述軟件規(guī)范模型的所述分析的結(jié)果不符合要求,則調(diào)整所述軟件規(guī)范模型,以修正與所述自然語言軟件需求的任何不一致;
將所述測試用例應(yīng)用于所調(diào)整后的軟件規(guī)范模型;
如果所述軟件設(shè)計模型的所述分析的結(jié)果不符合要求,則調(diào)整所述軟件設(shè)計模型,以修正與所述軟件規(guī)范模型的任何不一致;以及
將所述測試用例應(yīng)用于所調(diào)整后的軟件設(shè)計模型。
附圖說明
圖1示出了根據(jù)實(shí)施例的用于安全關(guān)鍵軟件的基于模型的設(shè)計的系統(tǒng);
圖2示出了根據(jù)實(shí)施例的用于安全關(guān)鍵軟件的基于模型的設(shè)計的過程的流程圖;以及
圖3示出了根據(jù)實(shí)施例的用于基于模型的開發(fā)過程的流程圖。
具體實(shí)施方式
根據(jù)實(shí)施例,系統(tǒng)和方法提供了用于安全關(guān)鍵軟件的開發(fā)和測試生成的基于模型的自動設(shè)計過程。體現(xiàn)的系統(tǒng)和方法采用了領(lǐng)域特定的本體(domain-specific ontology)和形式驗(yàn)證方法(formal verification method)來改進(jìn)和擴(kuò)展頂級需求。這些系統(tǒng)和方法利用可驗(yàn)證的規(guī)范模型(因此,名為“基于模型的”)作為在編寫軟件前自動生成基于需求的測試的基礎(chǔ)。根據(jù)實(shí)施例,基于需求的測試由規(guī)范模型生成。設(shè)計模型用于開發(fā)軟件。這些步驟的嚴(yán)謹(jǐn)性和自動化導(dǎo)致改進(jìn)的軟件設(shè)計和測試工作量降低,為安全關(guān)鍵軟件開發(fā)人員節(jié)省時間和成本。
通過將形式方法和邏輯模型包含在體現(xiàn)的過程中,可以識別規(guī)范需求中的錯誤,可以針對一致性和完整性來驗(yàn)證需求。在識別了錯誤后,可以修復(fù)需求,如果必要的話則反復(fù)地,直到重新測試時它們是邏輯上完整的和一致的。本體、語義網(wǎng)和覆蓋(coverage)分析都提供了明確的信息,用于擴(kuò)展不完整的需求。
體現(xiàn)的系統(tǒng)和方法可以將“安全案例”包含到需求及相應(yīng)的驗(yàn)證步驟中(例如,基于模型的設(shè)計)。也可以表示復(fù)雜的時間關(guān)系(例如,并發(fā)性要求和/或能力)。
一旦軟件規(guī)范要求完整且一致,可以生成設(shè)計模型及隨后的驗(yàn)證/確認(rèn)測試,用于源代碼的測試。源代碼可以視為指定設(shè)計的更詳細(xì)的表示,導(dǎo)致體現(xiàn)相同的設(shè)計需求的對象和/或可執(zhí)行代碼。
體現(xiàn)的方法導(dǎo)致在驗(yàn)證/確認(rèn)活動中檢測到的錯誤減少。體現(xiàn)的系統(tǒng)和方法使這些過程自動化,導(dǎo)致更嚴(yán)格的設(shè)計/驗(yàn)證/確認(rèn)過程,相比于傳統(tǒng)的手動工具輔助代碼生成,通過在滿足設(shè)計需求中提供更高的精度及在修正和測試中提供更大的速度而提供了開發(fā)相關(guān)的勞動和時間成本中的減少。
體現(xiàn)的基于模型的系統(tǒng)和方法用定義操作、設(shè)計和測試生成需求的數(shù)學(xué)嚴(yán)格的、形式的邏輯語句替代自然語言的語句,從而在早期的設(shè)計過程中提供了機(jī)會,以改進(jìn)需求的質(zhì)量、嚴(yán)謹(jǐn)性、一致性和范圍。
圖1示出了根據(jù)實(shí)施例的用于安全關(guān)鍵計算機(jī)軟件開發(fā)的系統(tǒng)100。系統(tǒng)100可以包括計算機(jī)(本地運(yùn)行的單臺計算機(jī)110,或由電子通信網(wǎng)絡(luò)120(如互聯(lián)網(wǎng))鏈接在一起的幾臺計算機(jī)112、114,11N),相關(guān)數(shù)據(jù)庫130,其可以包括安全關(guān)鍵軟件的細(xì)節(jié)-例如分配給軟件(SRATS)132的系統(tǒng)需求、軟件規(guī)范模型133、設(shè)計模型134、自動生成的源代碼136、可執(zhí)行目標(biāo)代碼138。系統(tǒng)100還可以包括數(shù)據(jù)庫140,其可以包括語義網(wǎng)142、本體144、基于需求的測試用例146和自動生成的模型覆蓋測試用例148。盡管數(shù)據(jù)庫130和數(shù)據(jù)庫140被示出為兩個數(shù)據(jù)庫,但在一些實(shí)施方式中,一個數(shù)據(jù)庫可以包括所有的儲存;在其他實(shí)施方式中,系統(tǒng)100中可以包括超過兩個數(shù)據(jù)庫。
根據(jù)一個實(shí)施方式,單臺計算機(jī)110可以包括結(jié)構(gòu)單元,被配置為執(zhí)行實(shí)施基于模型的安全關(guān)鍵軟件設(shè)計的操作。這些單元可以包括語義建模單元150、圖形化建模單元152、自動定理證明(ATP)單元154、自動測試用例和規(guī)程生成(ATCPG)單元156和自動代碼生成單元158。在其他實(shí)施方式中,這些單元可以分布在由電子通信網(wǎng)絡(luò)鏈接在一起的幾臺計算機(jī)中。
圖2示出了根據(jù)實(shí)施例的用于安全關(guān)鍵軟件的基于模型的設(shè)計的過程200的流程圖。過程200分析自然語言SRATS,開發(fā)規(guī)范模型,其在驗(yàn)證和接受后以是設(shè)計模型的基礎(chǔ)。術(shù)語“設(shè)計模型”(本文所用的)是概念模型,例如對象模型或統(tǒng)一建模語言(UML)模型。設(shè)計模型可以描述要由應(yīng)用軟件執(zhí)行的實(shí)體和功能變換。
由設(shè)計模型,首先源代碼可以由過程200自動生成,然后可執(zhí)行目標(biāo)代碼(EOC)也可以生成。方法200可以驗(yàn)證設(shè)計、源代碼和EOC。從這個基于需求的過程產(chǎn)生的EOC可以隨后經(jīng)受基于EOC的測試方法,它可以提供額外的反饋。
捕獲規(guī)范模型,步驟205。捕獲可以包括提供給系統(tǒng)的文本化自然語言系統(tǒng)需求SRATS的確認(rèn)。語義建模單元150和/或圖形化建模單元152實(shí)施語義和圖形建模技術(shù),以從SRATS開發(fā)規(guī)范模型。在結(jié)構(gòu)化自然語言中實(shí)施規(guī)范模型,其包括語義模型,并可以以圖形形式查看或編輯。
在規(guī)范模型上執(zhí)行形式需求分析,步驟210??梢杂蓪?shí)施自動定理證明技術(shù)ATP單元154針對正確性和一致性來分析和驗(yàn)證規(guī)范模型。由ATCPG單元156由規(guī)范模型自動生成測試用例,步驟215。根據(jù)實(shí)施例,系統(tǒng)可以采用ATCPG來自動生成用于設(shè)計模型自身的需求的測試用例。在其他實(shí)施方式中,自動生成的測試用例可以由系統(tǒng)100使用模型檢查或其他形式分析技術(shù)自動生成。如果需求分析和/或生成的測試用例指示該模型不如所需的魯棒(即,軟件規(guī)范模型缺乏所需的一致性、正確性和/或完整性),過程200可以返回到步驟205,進(jìn)一步捕獲規(guī)范模型。
在需求分析指示需求是完整的和自洽的后,規(guī)范模型是開發(fā)軟件設(shè)計模型的基礎(chǔ),步驟220。測試用例由規(guī)范模型生成,并應(yīng)用于設(shè)計模型。在將測試用例應(yīng)用于設(shè)計模型后,根據(jù)其性能分析模型覆蓋,步驟225??梢孕拚魏稳毕莼虿灰恢?,然后通過重復(fù)測試用例方案,可以驗(yàn)證設(shè)計模型,步驟230。
驗(yàn)證的設(shè)計模型由自動代碼生成單元158用于自動生成用于安全關(guān)鍵軟件的源代碼,步驟235。系統(tǒng)100隨后使用靜態(tài)分析技術(shù)驗(yàn)證源代碼,步驟240。由所驗(yàn)證的源代碼編譯可執(zhí)行目標(biāo)代碼,步驟245。
圖3示出了根據(jù)實(shí)施例的用于基于模型的開發(fā)過程300的流程圖。用于安全關(guān)鍵計算機(jī)軟件開發(fā)的系統(tǒng)100可以包括計算機(jī)實(shí)施的應(yīng)用315、320、335、340、350、360、370,其從基于模型的開發(fā)過程300的階段305、310、325、330、35、355、365接收設(shè)計信息。在一些實(shí)施方式中,接收的設(shè)計信息可以用來自系統(tǒng)100的使用者的額外的命令和/或指令補(bǔ)充?;诮邮盏脑O(shè)計信息,如由系統(tǒng)100的計算機(jī)實(shí)施的應(yīng)用程序處理的,過程300可以產(chǎn)生新的結(jié)果-例如:完整性的確認(rèn)、設(shè)計模型、新的軟件測試和/或識別缺陷的消息,其為設(shè)計過程的特定階段指明設(shè)計數(shù)據(jù)的缺點(diǎn)或不完整性。
如果產(chǎn)生了缺陷識別消息,那么處理300就返回到前一步驟的數(shù)據(jù)(由連接過程300中的多個處理步驟的雙向箭頭表示)。該缺陷可以由使用者根據(jù)由計算機(jī)實(shí)施的過程300提供的建議來修正。
提供給過程300的初始SRATS數(shù)據(jù),步驟305,包括自然語言文檔。用于安全關(guān)鍵計算機(jī)軟件開發(fā)的系統(tǒng)100自動生成軟件,并自動生成測試用例,以及其他診斷信息或在早期階段產(chǎn)生的文檔。這些軟件、測試用例、其他診斷信息和文檔都是基于提供的SRATS。系統(tǒng)100實(shí)施的過程300借助減少在設(shè)計過程中的人工交互而改進(jìn)了安全關(guān)鍵軟件設(shè)計。為了實(shí)現(xiàn)自動化開發(fā),根據(jù)實(shí)施例,過程300包括計算機(jī)實(shí)施的基于應(yīng)用客戶模型的確認(rèn)(步驟315)、形式需求分析(步驟320)、形式設(shè)計驗(yàn)證(步驟335)、模型覆蓋分析(步驟340)、基于測試的設(shè)計模型驗(yàn)證(步驟350)、形式代碼驗(yàn)證(步驟360)、基于測試的EOC驗(yàn)證(步驟370)。
過程300開始于接收,步驟305,由包括硬件和軟件能力的高級系統(tǒng)需求得到的文本自然語言文檔SRATS。使用相結(jié)合的語義建模和圖形化建模技術(shù)從SRATS開發(fā)規(guī)范模型,步驟310。根據(jù)實(shí)施例,實(shí)施過程300的系統(tǒng)100無需捕獲作為文本的高級需求(HLR)。根據(jù)實(shí)施例,以人和機(jī)器可讀的規(guī)范模型取代傳統(tǒng)HLR。
確認(rèn)規(guī)范模型,步驟315。確認(rèn)可以借助于呈現(xiàn)給用戶的需求的解析表示(例如本體和語義網(wǎng))來進(jìn)行。使用ATP應(yīng)用針對正確性和一致性形式分析和驗(yàn)證規(guī)范模型,步驟320。這個步驟可以在過程的早期識別需求中的錯誤,并顯著減少后期的返工。
存在從需求分析320到規(guī)范模型捕獲310的反饋回路。這個反饋回路提供了實(shí)時反饋以向工程師警示錯誤。
在確認(rèn)和形式需求分析后,規(guī)范模型作為輸入通過,以創(chuàng)建設(shè)計模型,步驟330。使用模型檢查形式驗(yàn)證設(shè)計模型,步驟335。規(guī)范模型還用作到基于需求的自動測試用例生成過程的輸入,步驟325。自動生成測試用例和規(guī)程(例如,使用模型檢查技術(shù))。測試用例隨后應(yīng)用于設(shè)計模型,步驟350,并針對正確功能進(jìn)行分析。
存在從基于需求的測試用例生成功能325到規(guī)范模型310的另一個反饋回路,以指示驗(yàn)證復(fù)雜性度量,其與驗(yàn)證規(guī)范模型所需的測試用例的數(shù)量成比例。需求捕獲工程師可以使用這個信息來簡化規(guī)范模型,以便降低驗(yàn)證成本/復(fù)雜性。根據(jù)實(shí)施例,需求捕獲工具還可以提供建議的選項來捕獲語法中的相同信息,這將是更容易驗(yàn)證的(更少的測試用例)。
在檢測到錯誤時,修正設(shè)計模型。在執(zhí)行步驟序列,或不能預(yù)測并發(fā)步驟的順序的情況下,可以檢測到缺陷和不一致:在這些情況下,設(shè)計模型修正可以通過反推通過序列,或通過實(shí)施未排序步驟的時間排序來進(jìn)行。接下來,將測試用例應(yīng)用到設(shè)計模型,并針對模型覆蓋進(jìn)行分析(步驟340)。這個步驟可以根據(jù)(a)基于需求的測試用例、規(guī)范模型和/或設(shè)計模型(例如,非預(yù)期的功能,死代碼等)中的錯誤;或(b)派生的需求來識別覆蓋中的間隙。在派生需求的情況下,自動生成測試用例,步驟345,以滿足模型覆蓋。
自動測試生成工具可以用于幫助工程師識別執(zhí)行不到的代碼,并識別測試向量,其將執(zhí)行模型的特定部分。合格的自動代碼生成工具用于從設(shè)計模型創(chuàng)建源代碼,步驟355。使用靜態(tài)分析技術(shù)形式分析源代碼,步驟360。將源代碼編譯到EOC中,步驟365。通過重新應(yīng)用過程早期開發(fā)的測試套件來執(zhí)行基于測試的EOC驗(yàn)證,步驟370。一旦執(zhí)行了驗(yàn)證,編譯的EOC就可以經(jīng)受傳統(tǒng)單元、子系統(tǒng)和系統(tǒng)測試。
根據(jù)實(shí)施例的系統(tǒng)和方法將嚴(yán)格的數(shù)學(xué)和邏輯建模技術(shù)應(yīng)用于在代碼生成之前驗(yàn)證軟件需求的一致性、正確性和/或完整性的問題。根據(jù)實(shí)施方式,工具集可以覆蓋初步設(shè)計、分析和軟件生成的全部階段。預(yù)驗(yàn)證使自動代碼生成的使用,和在設(shè)計過程中反饋的使用切實(shí)可行。具體化的過程和系統(tǒng)可以在概念和初步設(shè)計過程中檢測到錯誤。這些檢測到的錯誤的修正可以擴(kuò)展、改進(jìn)、修正和/或完成代碼生成之前的設(shè)計信息。
根據(jù)一些實(shí)施例,一種存儲在非易失性存儲器或計算機(jī)可讀介質(zhì)(例如,寄存器存儲器、處理器緩存、隨機(jī)存取存儲器、只讀存儲器、光盤只讀存儲器、硬盤驅(qū)動器、閃存、磁介質(zhì)、等)中的計算機(jī)程序應(yīng)用可以包括代碼或可執(zhí)行指令,在被執(zhí)行時,可以指示和/或者使得控制器或處理器執(zhí)行本文論述的方法,例如如上所述的用于安全關(guān)鍵軟件的基于模型的方法。
計算機(jī)可讀介質(zhì)可以是非暫時性計算機(jī)可讀介質(zhì),包括所有形式和類型的存儲器和所有計算機(jī)可讀介質(zhì),除了暫時的傳播信號以外。在一個實(shí)施方式中,非易失性存儲器或計算機(jī)可讀介質(zhì)可以是外部存儲器。
盡管本文說明了特定的硬件和方法,但應(yīng)注意根據(jù)本發(fā)明的實(shí)施例可以提供任何數(shù)量的其他配置。因此,盡管已經(jīng)顯示、說明和指出了本發(fā)明的基本創(chuàng)新特征,應(yīng)當(dāng)理解,可以由本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,做出所示實(shí)施例及其操作的形式和細(xì)節(jié)中的多個省略、替代和變化。要素從一個實(shí)施例到另一個實(shí)施例的替代也全都是可預(yù)期的和想得到的。本發(fā)明僅相關(guān)于所附的權(quán)利要求書和本文所述內(nèi)容的等效替代來限定。