亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種模塊建模與模型檢測一體化自動(dòng)檢測方法

文檔序號(hào):6400975閱讀:271來源:國知局
專利名稱:一種模塊建模與模型檢測一體化自動(dòng)檢測方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)軟件工程領(lǐng)域,特別涉及一種模塊建模與模型檢測一體化自動(dòng)檢測方法。
背景技術(shù)
計(jì)算機(jī)技術(shù)在各行各業(yè)得到廣發(fā)的應(yīng)用,特別是與國家、社會(huì)安全攸關(guān)的軍事、航空航天、家電、醫(yī)療、交通、醫(yī)療等領(lǐng)域,發(fā)揮著越來越大的作用。同時(shí),隨著計(jì)算機(jī)技術(shù)迅速發(fā)展和計(jì)算能力的提高,系統(tǒng)軟件的規(guī)模和復(fù)雜性不斷增加。軟件的安全可靠性更顯得重要,既要確保系統(tǒng)能完成預(yù)期功能,又能在各種可能條件下保證系統(tǒng)本身及環(huán)境安全性。此外,隨著軟件在金融、高鐵、核電、載人航天等對可靠性、實(shí)時(shí)性要求較高的領(lǐng)域中的廣泛應(yīng)用,一些軟件由于設(shè)計(jì)缺陷或邏輯上小的漏洞而可能導(dǎo)致其在運(yùn)行過程中體崩潰,產(chǎn)生災(zāi)難性或造成破壞性的后果,導(dǎo)致人身、財(cái)產(chǎn)方面的重大損失,直接影響到國民經(jīng)濟(jì)的發(fā)展以及人們的工作和生活。
實(shí)際工程要求所用的系統(tǒng)軟件是可靠的。目前軟件的開發(fā)過程自動(dòng)化的程度比較少,需要大量人工的參與。個(gè)人的經(jīng)驗(yàn)、開發(fā)水平、編程習(xí)慣等對軟件開發(fā)起到了至關(guān)重要的影響,是造成軟件開發(fā)效率低下和軟件質(zhì)量難以保障的主要原因,同時(shí)也是造成軟件業(yè)高風(fēng)險(xiǎn)、高成本的重要因素。另一方面,軟件工程領(lǐng)域當(dāng)前多使用的模擬和測試的方法能被動(dòng)的指出軟件的某些缺陷,卻不能證明軟件在特定的規(guī)格要求下是正確的、可靠的;測試和仿真只能選擇所有輸入和操作條件的一個(gè)子集對系統(tǒng)進(jìn)行評價(jià),因而都不完備。而且有時(shí)搭建一個(gè)組件的測試和仿真環(huán)境往往比開發(fā)這個(gè)組件花費(fèi)更大。在嵌入式系統(tǒng)中有很多錯(cuò)誤只有當(dāng)某些特定的事件按照一定的序列發(fā)生后才會(huì)出現(xiàn),且不可重復(fù)。如果用測試的方法來找這類錯(cuò)誤就需要嘗試很多測試用例,由于不可重復(fù)性,這些測試用例的價(jià)值很有限。此外,在軟件準(zhǔn)備上線前進(jìn)行測試,如果最初軟件的設(shè)計(jì)本身就存在問題,那后果是災(zāi)難性的。這就需要一種自動(dòng)、靈活、完備、細(xì)粒度的策略解決軟件的不可靠問題。形式化方法(Formal Methods)為計(jì)算機(jī)軟件的安全可靠驗(yàn)證提供了一種新的有效的途徑。與測試、仿真驗(yàn)證不同,形式化方法以數(shù)學(xué)理論、數(shù)理邏輯、自動(dòng)機(jī)、圖論等為理論基礎(chǔ),以邏輯計(jì)算、形式化語言、程序語義以及進(jìn)程代數(shù)等為依托建立的驗(yàn)證方法來描述和分析系統(tǒng),并提供了一系列的技術(shù)和工具。系統(tǒng)的設(shè)計(jì)要求精確地、無歧義地specification(說明)。而形式化的specification能準(zhǔn)確無歧義地描述系統(tǒng)的各種屬性,消除理解上的二義性,從而減少軟件系統(tǒng)建模的不準(zhǔn)確性。由于形式化方法本身的這些特性以及很好地保障了計(jì)算機(jī)系統(tǒng)的安全性和可靠性,在軟件的開發(fā)與設(shè)計(jì)中采用形式化方法可以提高軟件可信度。隨著相關(guān)理論和技術(shù)的發(fā)展以及人們對系統(tǒng)安全性的要求越來越高,近年來為學(xué)術(shù)界和工業(yè)界所重視,并被引入到嵌入式系統(tǒng)的驗(yàn)證領(lǐng)域,這其中一個(gè)非常重要的研究分支就是模型檢測技術(shù)。模型檢測是形式化驗(yàn)證技術(shù)的典型代表,它以有限自動(dòng)機(jī)為形式模型,通過窮盡軟件系統(tǒng)的所有可能的狀態(tài)來驗(yàn)證其是否滿足某一期望屬性。因此模型檢測技術(shù)在確保系統(tǒng)可靠性方面較傳統(tǒng)的測試與仿真方法在理論上更具優(yōu)勢。
近年來在模型檢測領(lǐng)域,先后提出一些基于形式化方法的模型檢測技術(shù)和檢測平臺(tái)。常用的模型檢測工具包括:SPIN (Ho lzmann 1997-)、NuSMV (Cimatt i, Clarke, etal.1999-) >Uppaal (Behrmann, et.at.2006)等。模型檢測在工業(yè)界硬件設(shè)計(jì)的驗(yàn)證方面取得了較大成功。然而,經(jīng)過十多年的發(fā)展,形式化驗(yàn)證仍然沒有成為軟件開發(fā)工程實(shí)踐的標(biāo)準(zhǔn)步驟。因?yàn)樾枰眯问交:蜋z測的軟件往往是安全可靠性要求非常高的軟件,相應(yīng)的保密和使用也十分嚴(yán)格。而系統(tǒng)設(shè)計(jì)開發(fā)和軟件驗(yàn)證作為不同的專業(yè)人員,很難做到開發(fā)、驗(yàn)證、保密一致性。這樣面臨的是形式化方法的適用性問題:在形式化驗(yàn)證中系統(tǒng)模型和屬性時(shí)序邏輯公式需要使用規(guī)范語言建立。工業(yè)界的工程師大都非軟件專業(yè),他們習(xí)慣于從電路的角度思考和解決問題,難于理解形式化建模語言和時(shí)序邏輯公式。規(guī)范語言具有嚴(yán)格的語法和語義,這就要求使用者具有較高的數(shù)學(xué)基礎(chǔ)。一般認(rèn)為形式化方法學(xué)習(xí)和形式語言建模的過程費(fèi)時(shí)耗力,甚至比直接開發(fā)系統(tǒng)還要花費(fèi)更過多的時(shí)間和精力。缺少支持特定領(lǐng)域建模過程的方法。在建模方面,工程師缺乏經(jīng)驗(yàn)。即使學(xué)會(huì)了建模語言,對建模無從下手,雖然了解現(xiàn)實(shí)系統(tǒng),但是無法將現(xiàn)實(shí)系統(tǒng)抽象為形式模型。另外,建模工具易用性差。部分工具沒有Π界面,只有命令行。由于形式化方法需要較高的專業(yè)素養(yǎng),使用門檻太高,長期以來都難以在工業(yè)界得到廣泛的應(yīng)用。另外,狀態(tài)爆炸問題也是模型檢測方法實(shí)際應(yīng)用的瓶頸。本發(fā)明能克服上述應(yīng)用形式化方法檢測軟件的弱點(diǎn),提出了模塊建模與模型檢測一體化技術(shù)
發(fā)明內(nèi)容
本發(fā)明旨在至少在一定程度上解決上述技術(shù)問題之一或至少提供一種有用的商業(yè)選擇。為此,本發(fā)明的目的在于提出一種模塊建模與模型檢測一體化自動(dòng)檢測方法,通過采用形式化的模型建立與檢測方法。為達(dá)到上述目的,本發(fā)明提出了一種模塊建模與模型檢測一體化自動(dòng)檢測方法,包括以下步驟:建立多個(gè)原子模塊,原子模塊轉(zhuǎn)換成檢測代碼,所述原子模塊在建模平臺(tái)中可以被任意拖拽,所述原子模塊間通過連線進(jìn)行信息傳遞,其中,每個(gè)所述原子模塊用于實(shí)現(xiàn)一個(gè)基本功能,并由所述多個(gè)原子模塊組成原子模塊庫;建立多個(gè)組件模塊,由所述多個(gè)組件模塊構(gòu)造組件庫,其中,每個(gè)所述組件塊由多個(gè)相關(guān)聯(lián)的原子模塊構(gòu)成,用于執(zhí)行預(yù)定功能;根據(jù)所述原子模塊庫和組件庫對待檢測軟件或硬件進(jìn)行建模以分別得到軟件或硬件模型、環(huán)境模型和屬性模型;對所述軟件或硬件模型和所述環(huán)境模型進(jìn)行整合得到系統(tǒng)模型,同時(shí)生成模型檢測代碼,并對所述檢測代碼進(jìn)行優(yōu)化;根據(jù)所述優(yōu)化結(jié)果應(yīng)用模型檢測工具對所述系統(tǒng)模型和屬性模型自動(dòng)進(jìn)行模型檢測;根據(jù)所述模型檢測結(jié)果分析得到所述待檢測軟件或硬件的問題。根據(jù)本發(fā)明實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法,采用模塊化建模,建模與檢測一體化自動(dòng)化,提高了效率,并節(jié)約成本,節(jié)省了建模所需的人力和時(shí)間,同時(shí)避免了系統(tǒng)建模時(shí)的出現(xiàn)錯(cuò)誤。本發(fā)明的方法將建模與檢測功能用模塊化綁定一起,不需要建模人員具有形式化檢測知識(shí),便于模型檢測在實(shí)際系統(tǒng)中的運(yùn)用。并且可根據(jù)需要,由建模系統(tǒng)的規(guī)模決定檢測系統(tǒng)的規(guī)模,完全實(shí)現(xiàn)了層次化建模與檢測,由此可避免模型檢測中的狀態(tài)爆炸問題。
在本發(fā)明的一個(gè)實(shí)施例中,所述建立多個(gè)原子模塊包括:對待建立的原子模塊的功能進(jìn)行定義,其中,所述原子模塊的功能包括執(zhí)行邏輯、運(yùn)算、比較和計(jì)時(shí);根據(jù)定義的功能建立所述原子模塊,所述原子模塊由檢測代碼給出,所述原子模塊在建模平臺(tái)中可以被任意拖拽,所述原子模塊間通過連線進(jìn)行信息傳遞;對建立的所述原子模塊的功能進(jìn)行檢測;如果檢測出錯(cuò)誤,則重新根據(jù)定義的功能修正并建立所述原子模塊并再次檢測,直至檢測正確,然后將所述原子模塊添加到所述原子模塊庫中,以保證原子模塊正確無誤。在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)用于檢測所述原子模型的檢測工具的類型,選擇不同的模型檢測語言進(jìn)行檢測。在本發(fā)明的一個(gè)實(shí)施例中,對建立的所述原子模塊的功能進(jìn)行檢測,采用以下一種或多種方式:對原子模塊進(jìn)行仿真、測試及模型檢測。在本發(fā)明的一個(gè)實(shí)施例中,所述建立多個(gè)組件模塊包括:S301:對待建立的組件模塊的功能進(jìn)行定義;S302:根據(jù)所述對待建立的組件模塊的定義的功能從所述原子模塊庫中或已有的組件庫中選取需要的子模塊,其中,所述子模塊是原子模塊、已有組件模塊的一種或多種,以及原子模塊與已有組件模塊的組合,所述子模塊在建模平臺(tái)中可以被任意拖拽;S303:確定各個(gè)子模塊之間的數(shù)據(jù)協(xié)議,并將所述數(shù)據(jù)協(xié)議置于所述子模塊的輸入、輸出端點(diǎn)處,建立模塊連線,所述模塊連線自動(dòng)成為所述子模塊間的數(shù)據(jù)傳輸通道;S304:根據(jù)待建立的組件模塊的定義的功能對所述多個(gè)子模塊進(jìn)行數(shù)據(jù)連線以建立所述組建模塊;S305:對建立的所述組件模塊進(jìn)行檢測;
S306:如果檢測出錯(cuò)誤則返回步驟S302,否則檢測完成并得到最終建立的所述組件模塊,將所述組件模塊加入組件庫。在本發(fā)明的一個(gè)實(shí)施例中,在所述組件模塊中,所述組件模塊中相關(guān)聯(lián)的子模塊間可通過多種數(shù)據(jù)協(xié)議進(jìn)行通信。在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)用于檢測所述組件模型的檢測工具的類型,選擇不同的模型檢測語言進(jìn)行檢測。在本發(fā)明的一個(gè)實(shí)施例中,對建立的所述組件模塊的功能進(jìn)行檢測,采用以下一種或多種方式:對組件模塊進(jìn)行仿真、測試及模型檢測。在本發(fā)明的一個(gè)實(shí)施例中,所述建模包括:軟件或硬件建模,用于對待檢測軟件或硬件和時(shí)間進(jìn)行建模,得到軟件或硬件模型;環(huán)境建模,用于對與待測軟件或硬件交互的各個(gè)環(huán)境實(shí)體的行為進(jìn)行建模,得到環(huán)境模型;系統(tǒng)建模,由軟件或硬件模型和環(huán)境模型整合得到系統(tǒng)模型。在本發(fā)明的一個(gè)實(shí)施例中,所述軟件或硬件建模包括:使用原子模塊庫和組件庫中的模塊及所述模塊相互間的數(shù)據(jù)連線對待檢測軟件或硬件和時(shí)間進(jìn)行模塊化建模。在本發(fā)明的一個(gè)實(shí)施例中,所述環(huán)境建模包括:使用原子模塊庫和組件庫中的模塊及所述模塊相互間的數(shù)據(jù)連線對環(huán)境的行為進(jìn)行建模,其中,所述環(huán)境是與待測軟件或硬件交互的環(huán)境實(shí)體。本發(fā)明的一個(gè)實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法,還包括:將所述模型中的原子模塊及組件模塊、所述數(shù)據(jù)連線自動(dòng)轉(zhuǎn)化為檢測代碼,并對已建立的所述系統(tǒng)模型和所述屬性模型進(jìn)行自動(dòng)檢測,如果模型檢測中檢測出錯(cuò)誤,則根據(jù)錯(cuò)誤發(fā)生的反例的路徑對所述反例進(jìn)行分析,修正所述軟件或硬件模型、環(huán)境模型和屬性模型,并重新檢測所述軟件或硬件模型、環(huán)境模型和屬性模型。本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。


本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:圖1是本發(fā)明實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法的流程圖;圖2是本發(fā)明實(shí)施例的原子模塊的建立方法的流程圖;圖3是本發(fā)明實(shí)施例的組件模塊的建立方法的流程圖;圖4是本發(fā)明實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法的過程的示意圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施 例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”、“順時(shí)針”、“逆時(shí)針”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個(gè)或者更多個(gè)該特征。在本發(fā)明的描述中,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上,除非另有明確具體的限定。在本發(fā)明中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”、“固定”等術(shù)語應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。例如,在建模平臺(tái)中采用鼠標(biāo)給出連接兩個(gè)模塊的有向線段,該連接不但描述兩模塊之間的邏輯關(guān)系,而且這樣的連接線還具有作為傳送信息通道的功能,即將一個(gè)模塊的信息通過連線傳送給另一個(gè)模塊。如圖1和圖4所示,根據(jù)本發(fā)明一方面實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法,包括以下步驟:SlOl:建立多個(gè)原子模塊,其中,每個(gè)原子模塊用于實(shí)現(xiàn)一個(gè)基本功能,并由多個(gè)原子模塊組成原子模塊庫。
具體的原子模塊是對邏輯、運(yùn)算、比較、計(jì)時(shí)等基本功能進(jìn)行描述建模,包含一些標(biāo)定參數(shù)的設(shè)定和修改。原子模塊是本發(fā)明中最基本也是最重要的部分。原子模塊執(zhí)行的基本功能具有不能再分解的特征,包括但并不僅限于邏輯、運(yùn)算、比較、計(jì)時(shí)等功能。每個(gè)原子模塊包括某一基本功能需求,基本功能需求描述了該原子模塊的功能和屬性,并在模塊中轉(zhuǎn)換為檢測語言;首先將該基本功能用一種軟件語言描述,模型語言是功能需求的實(shí)現(xiàn),一般都有一些輸入和輸出,能夠執(zhí)行相應(yīng)操作;然后將該基本功能的模型語言轉(zhuǎn)換為模型檢測語言,檢測語言是將模型語言對應(yīng)的模型檢測工具所使用的語言,檢測語言獨(dú)立于模型語言。本發(fā)明的模塊建模與模型檢測一體化自動(dòng)檢測方法可對應(yīng)于多個(gè)檢測平臺(tái),因而一個(gè)原子模塊在多個(gè)檢測平臺(tái)下可以有多種檢測語言,對應(yīng)于不同的模型檢測工具。本發(fā)明中原子模塊的建模與檢測已融入一體,由此可體現(xiàn)建模與檢測一體化。在具體的實(shí)施例中,用戶可將原子模塊在建模平臺(tái)中可任意拖拽,可修改其中的一些標(biāo)定參數(shù)。具體地,原子模塊的建立過程,如圖2所示,包括以下步驟:S201:對待建立的原子模塊的功能進(jìn)行定義。對待建立的原子模塊的功能進(jìn)行定義、描述,功能描述必須準(zhǔn)確、無二義。每個(gè)原子模塊包括某一基本功能需求,其中,原子模塊的基本功能包括但并不僅限于邏輯、運(yùn)算、比較和計(jì)時(shí)等。S202:根據(jù)定義的功能建立原子模塊。根據(jù)原子模塊的功能定義實(shí)現(xiàn)其功能,原子模塊由檢測代碼給出,此過程用一種計(jì)算機(jī)語言描述。在具體的實(shí)施例中,用戶可在建模平臺(tái)中對原子模塊任意拖拽,并將原子模塊之間用連線連接,以進(jìn)行信息原子模塊間的傳遞。
S203:對建立的原子模塊的功能進(jìn)行檢測。針對不同的模型檢測工具,選擇相應(yīng)的模型檢測語言,該檢測語言獨(dú)立于模塊的功能,且不同的檢測語言彼此之間也相互獨(dú)立。為了保證將來使用該模塊建模的系統(tǒng)可以被正確的檢測,必須保證每個(gè)原子模塊在功能上都是正確的。根據(jù)原子模塊的功能描述,對原子模塊進(jìn)行仿真、測試甚至模型檢測來保證其正確性。S204:如果檢測出錯(cuò)誤則重新根據(jù)定義的功能建立原子模塊并再次檢測,直至檢測正確,然后將原子模塊添加到原子模塊庫中。如果沒有檢測出錯(cuò)誤,說明原子模塊的實(shí)現(xiàn)是正確的,將已通過檢測的原子模塊存入模塊庫。否則,回到步驟S202修改模塊的功能實(shí)現(xiàn)。S102:建立多個(gè)組件模塊,由多個(gè)組件模塊構(gòu)造組件庫,其中,每個(gè)組件塊由多個(gè)相關(guān)聯(lián)的原子模塊構(gòu)成,用于執(zhí)行預(yù)定功能。每個(gè)組件模塊是由若干個(gè)原子模塊通過數(shù)據(jù)協(xié)議和數(shù)據(jù)連線組合而成。其中,原子模塊之間需要通過數(shù)據(jù)連線通訊,數(shù)據(jù)連線具有模塊間傳遞信息的功能。數(shù)據(jù)協(xié)議是模塊間通信的基礎(chǔ),它規(guī)定了組件模塊間通信必須遵守的規(guī)則。數(shù)據(jù)連線不僅是描述原子模塊間邏輯聯(lián)系的幾何連線,更重要的是原子模塊間信息傳播的通道。不同的原子模塊對數(shù)據(jù)傳遞有不同的要求,當(dāng)采用同一條數(shù)據(jù)連線時(shí),就需要對原子模塊的數(shù)據(jù)協(xié)議解析。原子模塊通過數(shù)據(jù)連線相連,每條數(shù)據(jù)連線都依附于一些數(shù)據(jù)協(xié)議,這樣通過原子模塊和數(shù)據(jù)連線就可以組合成能夠執(zhí)行高級(jí)功能的組件模塊;因?yàn)榻M件模塊加入數(shù)據(jù)連線,需要建模語言描述,還需要轉(zhuǎn)換成檢測語言。每個(gè)組件模塊也有不同的檢測語言,同樣對應(yīng)于不同的模型檢測工具。與原子模塊庫中的原子模塊不同,組件模塊只保存在檢測系統(tǒng)的外部,而不嵌入到檢測系統(tǒng)內(nèi)部。具體地,組件模塊的建立過程,如圖3所示,包括以下步驟:S301:對待建立的組件模塊的功能進(jìn)行定義。S302:根據(jù)對待建立的組件模塊的定義的功能從原子模塊庫中或已有的組件庫中選取需要的子模塊,其中,子模塊可以是原子模塊、已有組件模塊的一種或多種,以及原子模塊與已有組件模塊的組合。在具體實(shí)施例中,子模塊在建模平臺(tái)中可以被用戶任意拖拽。S303:確定各個(gè)子模塊之間的數(shù)據(jù)協(xié)議,并將數(shù)據(jù)協(xié)議置于子模塊的輸入、輸出端點(diǎn)處,建立模塊連線。在具體實(shí)施例中,用戶在建模平臺(tái)中建立模塊連線后,該模塊連線自動(dòng)成為子模塊之間的數(shù)據(jù)通道。S304:根據(jù)待建立的組件模塊的定義的功能對多個(gè)子模塊進(jìn)行數(shù)據(jù)連線以建立組件模塊。S305:對建立的組件模塊進(jìn)行檢測。針對不同的模型檢測工具,選擇相應(yīng)的模型檢測語言,檢測語言獨(dú)立于模塊的功能,且不同的檢測語言彼此間也相互獨(dú)立。檢測時(shí),根據(jù)子模塊的語法、語義規(guī)則和其相互關(guān)系可以確保子模塊語法、語義的正確性;還可以通過仿真、測試來保證該組件模塊的正確性。 S306:如果檢測出錯(cuò)誤則返回步驟S302,否則檢測完成并得到最終建立的組建模塊。S103:根據(jù)原子模塊庫和組件庫對待檢測軟件或硬件進(jìn)行建模以分別得到軟件或硬件模型、環(huán)境模型和屬性模型。具體地,建模包括軟件或硬件建模、環(huán)境建模和屬性建模。其中,軟件或硬件建模包括:對待檢測軟件或硬件和時(shí)間進(jìn)行建模,待檢測軟件可以是計(jì)算機(jī)系統(tǒng)軟件,或者是其它嵌入式軟件,待檢測硬件可以是計(jì)算機(jī)硬件,但待檢測軟件或待檢測硬件必須能夠使用模塊進(jìn)行建模的語言描述。環(huán)境建模是對與待檢測軟件或硬件交互的各個(gè)環(huán)境實(shí)體的行為進(jìn)行建模,可以用狀態(tài)等模塊將其建模成有限狀態(tài)機(jī),也可以是其他的形式。屬性建模通過分析功能需求得到系統(tǒng)需要滿足的屬性,將各個(gè)屬性表示成時(shí)序邏輯表達(dá)式,例如LTL (Linear temporal logic,線性時(shí)序邏輯)、CTL (Computationtree logic,分支時(shí)序邏輯)。其中,屬性表示待檢測系統(tǒng)必須滿足的要求或其他約束條件。本發(fā)明對環(huán)境進(jìn)行建模,考慮了外部環(huán)境對待檢測系統(tǒng)的影響,使得檢測結(jié)果更全面,更符合實(shí)際。S104:對軟件或硬件模型和環(huán)境模型進(jìn)行整合得到系統(tǒng)模型,同時(shí)生成模型檢測代碼,并對檢測代碼進(jìn)行優(yōu)化。根據(jù)由每個(gè)模塊自身的檢測語言的原子模塊和組件塊搭成的系統(tǒng),以及整合屬性模型,立即自動(dòng)生成模型檢測工具的檢測代碼,并根據(jù)待測系統(tǒng)和用戶需求(如運(yùn)行時(shí)間或占用內(nèi)存的需求)對檢測代碼進(jìn)行優(yōu)化。S105:根據(jù)優(yōu)化結(jié)果應(yīng)用模型檢測工具對系統(tǒng)模型和屬性模型自動(dòng)進(jìn)行模型檢測。將優(yōu)化的檢測代碼輸入模型檢測工具中,模型中的原子模塊及組件模塊、數(shù)據(jù)連線均自動(dòng)轉(zhuǎn)化為檢測代碼,并對已建立的系統(tǒng)模型和屬性模型自動(dòng)進(jìn)行模型檢測,并輸出檢測結(jié)果。S106:根據(jù)模型檢測結(jié)果分析得到待檢測軟件或硬件的問題。如果沒有檢測出錯(cuò)誤,說明被測系統(tǒng)滿足屬性,檢測過程結(jié)束。如果模型檢測中檢測出錯(cuò)誤,則根據(jù)錯(cuò)誤發(fā)生的路徑逆向查找并對反例進(jìn)行分析。分析檢測結(jié)果數(shù)據(jù),生成結(jié)果分析報(bào)告,還可以以圖形化的方式向用戶顯示反例,便于用戶定位錯(cuò)誤。根據(jù)反例路徑分析反例,修正軟件或硬件模型、環(huán)境模型和屬性模型后,重新檢測軟件或硬件模型、環(huán)境模型和屬性模型。根據(jù)本發(fā)明實(shí)施例的模塊建模與模型檢測一體化自動(dòng)檢測方法,采用模塊化建模,建模與檢測一體化和自動(dòng)化,能提高效率,節(jié)約成本,節(jié)省了建模所需的人力和時(shí)間,同時(shí)降低了建模的錯(cuò)誤率。本發(fā)明的方法將建模與檢測用模塊化綁定一起,不需要建模人員具有形式化檢測知識(shí),便于模型檢測在實(shí)際軟件或硬件系統(tǒng)檢測中的運(yùn)用。并且可根據(jù)需要,由建模系統(tǒng)的規(guī)模決定檢測系統(tǒng)的規(guī)模,完全實(shí)現(xiàn)了軟件的層次化建模與檢測,以此可避免模型檢測中的狀態(tài)爆炸問題。流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。在流程圖中表示 或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計(jì)算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(R0M),可擦除可編輯只讀存儲(chǔ)器(EPR0M或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤只讀存儲(chǔ)器(⑶ROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。此外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在不脫離本發(fā)明的原理和宗旨的情況下在本發(fā)明的范圍內(nèi)可以對上述 實(shí)施例進(jìn)行變化、修改、替換和變型。
權(quán)利要求
1.一種模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,包括以下步驟: 建立多個(gè)原子模塊,原子模塊轉(zhuǎn)換成檢測代碼,所述原子模塊在建模平臺(tái)中可以被任意拖拽,所述原子模塊間通過連線進(jìn)行信息傳遞,其中,每個(gè)所述原子模塊用于實(shí)現(xiàn)一個(gè)基本功能,并由所述多個(gè)原子模塊組成原子模塊庫; 建立多個(gè)組件模塊,由所述多個(gè)組件模塊構(gòu)造組件庫,其中,每個(gè)所述組件塊由多個(gè)相關(guān)聯(lián)的原子模塊構(gòu)成,用于執(zhí)行預(yù)定功能; 根據(jù)所述原子模塊庫和組件庫對待檢測軟件或硬件進(jìn)行建模以分別得到軟件或硬件模型、環(huán)境模型和屬性模型; 對所述軟件或硬件模型和所述環(huán)境模型進(jìn)行整合得到系統(tǒng)模型,同時(shí)生成模型檢測代碼,并對所述 檢測代碼進(jìn)行優(yōu)化; 根據(jù)所述優(yōu)化結(jié)果應(yīng)用模型檢測工具對所述系統(tǒng)模型和屬性模型自動(dòng)進(jìn)行模型檢測;以及 根據(jù)所述模型檢測結(jié)果分析得到所述待檢測軟件或硬件的問題。
2.如權(quán)利要求1所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,所述建立多個(gè)原子模塊包括: 對待建立的原子模塊的功能進(jìn)行定義,其中,所述原子模塊的功能包括執(zhí)行邏輯、運(yùn)算、比較和計(jì)時(shí); 根據(jù)定義的功能建立所述原子模塊,所述原子模塊由檢測代碼給出,所述原子模塊在建模平臺(tái)中可以被任意拖拽,所述原子模塊間通過連線進(jìn)行信息傳遞; 對建立的所述原子模塊的功能進(jìn)行檢測; 如果檢測出錯(cuò)誤則重新根據(jù)定義的功能建立所述原子模塊并再次檢測,直至檢測正確,然后將所述原子模塊添加到所述原子模塊庫中。
3.如權(quán)利要求2所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,根據(jù)用于檢測所述原子模型的檢測工具的類型,選擇不同的模型檢測語言進(jìn)行檢測。
4.如權(quán)利要求2或3所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,對建立的所述原子模塊的功能進(jìn)行檢測,采用以下一種或多種方式: 對原子模塊進(jìn)行仿真、測試及模型檢測。
5.如權(quán)利要求1所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,所述建立多個(gè)組件模塊包括: S301:對待建立的組件模塊的功能進(jìn)行定義; S302:根據(jù)所述對待建立的組件模塊的定義的功能從所述原子模塊庫中或已有的組件庫中選取需要的子模塊,其中,所述子模塊是原子模塊、已有組件模塊的一種或多種,以及原子模塊與已有組件模塊的組合,所述子模塊在建模平臺(tái)中可以被任意拖拽; 5303:確定各個(gè)子模塊之間的數(shù)據(jù)協(xié)議,并將所述數(shù)據(jù)協(xié)議置于所述子模塊的輸入、輸出端點(diǎn)處,建立模塊連線,所述模塊連線自動(dòng)成為所述子模塊間的數(shù)據(jù)傳輸通道; 5304:根據(jù)待建立的組件模塊的定義的功能對所述多個(gè)子模塊進(jìn)行數(shù)據(jù)連線以建立所述組建模塊; 5305:對建立的所述組件模塊進(jìn)行檢測; 5306:如果檢測出錯(cuò)誤則返回步驟S302,否則檢測完成并得到最終建立的所述組件模塊,將所述組件模塊加入組件庫。
6.如權(quán)利要求1或5所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,在所述組件模塊中,相關(guān)聯(lián)的子模塊間可通過多種數(shù)據(jù)協(xié)議進(jìn)行通信。
7.如權(quán)利要求5所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于, 根據(jù)用于檢測所述組件模型的檢測工具的類型,選擇不同的模型檢測語言進(jìn)行檢測。
8.如權(quán)利要求5所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,對建立的所述組件模塊的功能進(jìn)行檢測,采用以下一種或多種方式: 對所述組件模塊進(jìn)行仿真、測試及模型檢測。
9.如權(quán)利要求1所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,所述建模包括: 軟件或硬件建模,用于對待檢測軟件或硬件和時(shí)間進(jìn)行建模,得到軟件或硬件模型; 環(huán)境建模,用于對與待檢測軟件或硬件交互的各個(gè)環(huán)境實(shí)體的行為進(jìn)行建模,得到環(huán)境模型; 屬性建模,用于對待檢測系統(tǒng)需要滿足的屬性進(jìn)行建模,得到屬性模型。
10.如權(quán)利要求9所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,所述軟件或硬件建模包括:使用原子模塊庫和組件庫中的模塊及所述模塊相互間的數(shù)據(jù)連線對待檢測軟件或硬件和時(shí)間進(jìn)行模塊化建模。
11.如權(quán)利要求9或10 所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,所述環(huán)境建模包括:使用原子模塊庫和組件庫中的模塊及所述模塊相互間的數(shù)據(jù)連線對環(huán)境的行為進(jìn)行建模,其中,所述環(huán)境是與待測軟件或硬件交互的環(huán)境實(shí)體。
12.如權(quán)利要求1所述的模塊建模與模型檢測一體化自動(dòng)檢測方法,其特征在于,還包括: 將所述模型中的原子模塊及組件模塊、所述數(shù)據(jù)連線自動(dòng)轉(zhuǎn)化為檢測代碼,并對已建立的所述系統(tǒng)模型和所述屬性模型進(jìn)行自動(dòng)檢測,如果模型檢測中檢測出錯(cuò)誤,則根據(jù)錯(cuò)誤發(fā)生的反例的路徑對所述反例進(jìn)行分析,修正所述軟件或硬件模型、環(huán)境模型和屬性模型,并重新檢測所述軟件或硬件模型、環(huán)境模型和屬性模型。
全文摘要
本發(fā)明提出了一種模塊建模與模型檢測一體化自動(dòng)檢測方法,包括以下步驟建立多個(gè)原子模塊,并由多個(gè)原子模塊組成原子模塊庫;建立多個(gè)組件模塊,由多個(gè)組件模塊構(gòu)造組件庫;根據(jù)原子模塊庫和組件庫對待檢測軟件或硬件進(jìn)行建模以分別得到軟件或硬件模型、環(huán)境模型和屬性模型;對軟件或硬件模型和環(huán)境模型進(jìn)行整合得到系統(tǒng)模型,同時(shí)生成模型檢測代碼,并對檢測代碼進(jìn)行優(yōu)化;根據(jù)優(yōu)化結(jié)果應(yīng)用模型檢測工具對系統(tǒng)模型和屬性模型自動(dòng)進(jìn)行模型檢測;根據(jù)模型檢測結(jié)果分析待檢測軟件或硬件的問題。本發(fā)明采用模塊化建模,建模與檢測一體化自動(dòng)化,提高了效率,并節(jié)約成本,節(jié)省了人力和時(shí)間,同時(shí)避免了建模中產(chǎn)生的錯(cuò)誤。
文檔編號(hào)G06F11/22GK103226503SQ201310100460
公開日2013年7月31日 申請日期2013年3月26日 優(yōu)先權(quán)日2013年3月26日
發(fā)明者羅貴明, 夏默, 羅建 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1