国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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


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