本發(fā)明專利技術(shù)涉及具有遞歸樹結(jié)構(gòu)的子組件的交互式組件的屬性的驗證。所述驗證包括:根據(jù)所述樹來創(chuàng)建有向圖,所述有向圖包括用于所述樹的子關(guān)系的弧,以及用于在所述組件之間耦合時創(chuàng)建耦合的弧。所述驗證包括:創(chuàng)建表示所述屬性的第二圖,以及驗證所述第二圖是否展現(xiàn)在所述第一有向圖內(nèi)。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及交互式軟件的屬性(property)的驗證。更具體地說,本專利技術(shù)涉及對按照交互式軟件內(nèi)的交互式組件(component)的層級結(jié)構(gòu)組織的交互式組件的屬性的制定和驗證。
技術(shù)介紹
驗證和確認(rèn)是工程中的重要過程。確認(rèn)包括使用可用的方法來校驗系統(tǒng)適合于其目的。對系統(tǒng)進(jìn)行驗證包括:定義所述系統(tǒng)必須在任何時候都具有的屬性,以及使用可用的方法來校驗所述屬性在系統(tǒng)中的確得到保證。軟件的驗證需要特定的方法。軟件組件是可獨立開發(fā)和組裝以產(chǎn)生軟件產(chǎn)品的指令的集合。軟件屬性是軟件組件特有的特質(zhì)或特性(attribute)。軟件的驗證可作為包括校驗給定屬性或?qū)傩缘募显诮o定軟件產(chǎn)品或軟件組件上是真還是偽的過程來執(zhí)行。如果組件屬性由軟件組件實現(xiàn),則組件屬性為真,或者如果組件屬性沒有實現(xiàn),則為偽。測試、審查和分析是主要確立的軟件驗證過程。測試包括向受控環(huán)境提交系統(tǒng)(軟件產(chǎn)品或軟件組件),觀察其行為并將其與參照物(例如規(guī)范)相比較。試驗是一種簡單的方法,易于使用,并且非常可信的,但如果受控環(huán)境的建立很復(fù)雜,則測試可能是非常昂貴的;當(dāng)對軟件與用戶或環(huán)境的交互進(jìn)行測試時,尤其如此。審查包括向一個或幾個審查人員提交系統(tǒng)以便檢查、評論或批準(zhǔn)。審查簡單且靈活,但其成本隨所需的可靠性水平急劇增加,并且其效率隨軟件的復(fù)雜度而降低,因為當(dāng)軟件的結(jié)構(gòu)是難以閱讀時,發(fā)現(xiàn)錯誤或校驗屬性是困難的。分析包括:構(gòu)建系統(tǒng)的模型,驗證并確認(rèn)該模型。因此,如果某個模型持有某種屬性,并且如果系統(tǒng)是根據(jù)所述模型構(gòu)建的,那么所述最終系統(tǒng)持有所述屬性。存在多種建模技術(shù)和模型分析方法。例如,如在Baier等人的Principlesofmodel-checking,MITPress,ISBN026202649X,9780262026499文獻(xiàn)中所描述的,可以構(gòu)建狀態(tài)轉(zhuǎn)換模型,并且從窮舉模擬產(chǎn)生的圖可用于支持如LTL或CTL的與時間相關(guān)的屬性的驗證。如Abrial,TheB-Book-AssigningProgramstoMeanings,2005所描述的,另一種方法包括:通過應(yīng)用推理規(guī)則對模型進(jìn)行數(shù)學(xué)證明,目的是校驗在向模型添加更多細(xì)節(jié)時屬性被保留。或者如Proc.ACMPOPL’77,ACM(1977),pp.238–252中的Cousot等的Abstractinterpretation:Aunifiedlatticemodelforstaticanalysisofprogramsbyconstructionorapproximationoffixpoints所描述的,可以從程序的源代碼提取抽象語義,并用于驗證屬性。就覆蓋度和可靠性來說,分析是一種非常有效的方法,但其復(fù)雜性要求專家的干預(yù)。此外,當(dāng)對全軟件產(chǎn)品進(jìn)行分析時,只有有限的屬性的集合的可用于驗證。例如,有可能的是確保某些類型的軟件故障將是不可能的,但不能確保軟件正確地響應(yīng)用戶的操作。為新屬性定義分析算法通常超出了本領(lǐng)域技術(shù)人員的能力,而程序員必須使其自身滿足于可校驗屬性的可用列表。更一般地,當(dāng)用于創(chuàng)建軟件的語言和用于制定屬性的語言之間的語義距離增加時,驗證方法的效率和成本降低。具體而言,當(dāng)所述軟件被表示為小的低級別組件的非結(jié)構(gòu)化集合時,難以驗證大型軟件的高層屬性。例如,如果軟件產(chǎn)品編程為運算指令的集合,并且所述軟件產(chǎn)品應(yīng)該執(zhí)行依賴于外部條件和過去歷史的復(fù)雜運算,那么構(gòu)建用于測試的受控環(huán)境將是非常昂貴的,審查將是困難的,并且分析對于如“僅當(dāng)該軟件接收該輸入序列時,顯示的該部分才將發(fā)生變化”的屬性來說將是不可用的。軟件架構(gòu)是用于將軟件組件組織成更小的可重用的組件的規(guī)則的集合。軟件架構(gòu)涉及軟件執(zhí)行和數(shù)據(jù)二者是如何組織的。軟件架構(gòu)可由編程約定或編程語言支持。例如,函數(shù)式語言幫助將軟件組織為名為函數(shù)的運算單元。類似地,面向?qū)ο蟮恼Z言幫助將軟件組織為既是數(shù)據(jù)單元又是運算單元的組件。由編程語言實施的軟件架構(gòu)可用于通過使得可以制定和校驗個體組件的屬性,從而減少屬性與組件之間的距離,來改進(jìn)驗證方法的有效性。本領(lǐng)域技術(shù)人員可容易地定義個體組件的屬性,并創(chuàng)建名為單元測試的小型受控環(huán)境來在單元測試中使用與組件中相同類型的編程指令測試所述屬性。本領(lǐng)域技術(shù)人員還可以提交組件用于審查,并期望審查人員能夠校驗使用用于對所述組件進(jìn)行編程的相同概念表達(dá)的屬性。此外,編譯器的開發(fā)人員可使用他們的關(guān)于編程語言是如何組織組件的知識來構(gòu)建所述組件的模型并校驗其屬性。例如,編譯器可以校驗函數(shù)是否具有未使用的自變量,或者函數(shù)的控制流是否停在非預(yù)期的位置。當(dāng)在重用任意組件來創(chuàng)建更大的組件時可使用用于創(chuàng)建所述組件的相同的規(guī)則的情況下,軟件體系結(jié)構(gòu)是遞歸的。遞歸的架構(gòu)有助于管理軟件復(fù)雜度,因為當(dāng)將組件與其它組件進(jìn)行組裝時,程序員可選擇忽視組件的內(nèi)部復(fù)雜度,或者替代地,深入細(xì)節(jié)而不必學(xué)習(xí)新的架構(gòu)。遞歸的架構(gòu)使得本領(lǐng)域技術(shù)人員有可能表達(dá)可使用分析技術(shù)來校驗的組件屬性。開發(fā)人員或說明人員可使用某個組件及其直接子組件的特征來表達(dá)所述組件的屬性,而忽略進(jìn)一步的細(xì)節(jié)。如果需要,可使用相同的技術(shù)來為低級別組件定義低級別屬性。在Computer(IEEE),25,10,October1992,pp.40–51中,Meyer,B.的“ApplyingDesignbyContract”公開了一種名為面向契約的編程的方法,其依賴于以面向?qū)ο蟮恼Z言對每個類的對象的名為不變量(invariant)的屬性的定義。不變量很容易定義,因為它們接近組件并且可以相同語言來書寫。然后編程語言編譯器或運行時間執(zhí)行系統(tǒng)校驗不變量。類似地,Abrial(參見上文的參考文獻(xiàn))公開了一種名為基于模型完善原則的B方法的方法:更多的信息逐步添加到具有某些屬性的有效性的保持的模型。這些方法允許程序員甚至在開始對軟件組件本身進(jìn)行編程之前,在其程序的所有級別的細(xì)節(jié)處定義屬性。交互式軟件指的是:除了執(zhí)行運算以外,從人、從物理環(huán)境或者從其它機器接收輸入的軟件。幾乎所有的現(xiàn)代軟件都是交互式軟件。例如,文本編輯器、視頻游戲、互聯(lián)網(wǎng)瀏覽器、智能電話應(yīng)用以及飛機座艙顯示器的軟件都是交互式軟件。計算機操作系統(tǒng)、所連接的對象的固件以及網(wǎng)絡(luò)服務(wù)器也是交互式軟件。如今,新的人體輸入和輸出技術(shù)、智能電話、平板電腦、網(wǎng)絡(luò)連接和所連接的對象的散布廣泛增加了用于設(shè)計交互式軟件的可能組合的數(shù)量。例如,在平板計算機上,輸入現(xiàn)在可使用觸摸感應(yīng)表面、如空中指針這樣的連接的對象以及如回轉(zhuǎn)儀、加速計或溫度計這樣的傳感器來輸入。交互式軟件可與面向計算的軟件進(jìn)行對比。面向計算的軟件具有開始和結(jié)束,其目標(biāo)在于從初始的一組數(shù)據(jù)計算出結(jié)果。相反,交互式軟件等待輸入并根據(jù)接收到的輸入來觸發(fā)反應(yīng)行為或計算。交互式軟件的期望的屬性是傳統(tǒng)軟件的屬性,外加非常大量的名為面向交互的屬性的屬性。面向交互的屬性與軟件如何響應(yīng)其輸入和用戶如何獲得其輸出、以及軟件如何幫助用戶執(zhí)行給定任務(wù)有關(guān)。僅有幾個面向交互的屬性適用于所有應(yīng)用,而大多數(shù)必須針對當(dāng)前的應(yīng)用來定義。用于驗證傳統(tǒng)軟件的方法對于校驗面向交互的屬性來說要么過于昂貴要么不合適。在某種程度上,一些傳統(tǒng)方法能有效地幫助開發(fā)人員防止應(yīng)用崩潰。然而,屬性驗證的傳統(tǒng)方法不適合用來驗證交互式屬性,例如驗證無論用戶的輸入和應(yīng)本文檔來自技高網(wǎng)...

【技術(shù)保護(hù)點】
一種用于驗證交互式組件的屬性的方法,所述交互式組件被表示為子組件樹,所述子組件樹包括定義第一子組件與第二子組件之間的耦合的控制結(jié)構(gòu)子組件,所述第二子組件是在所述第一子組件激活時被激活的,所述方法包括:?創(chuàng)建表示所述交互式組件的第一有向圖,所述第一有向圖的節(jié)點包括所述第一子組件和所述第二子組件;?獲得表示所述屬性的第二圖;?驗證所述第二圖在所述第一有向圖中的存在或缺失之一;其中,創(chuàng)建所述有向圖包括:?創(chuàng)建所述交互式組件與所述組件的子組件之間的第一弧;?創(chuàng)建所述第一子組件與所述第二子組件之間的第二弧。
【技術(shù)特征摘要】
2015.06.19 EP 15305950.61.一種用于驗證交互式組件的屬性的方法,所述交互式組件被表示為子組件樹,所述子組件樹包括定義第一子組件與第二子組件之間的耦合的控制結(jié)構(gòu)子組件,所述第二子組件是在所述第一子組件激活時被激活的,所述方法包括:-創(chuàng)建表示所述交互式組件的第一有向圖,所述第一有向圖的節(jié)點包括所述第一子組件和所述第二子組件;-獲得表示所述屬性的第二圖;-驗證所述第二圖在所述第一有向圖中的存在或缺失之一;其中,創(chuàng)建所述有向圖包括:-創(chuàng)建所述交互式組件與所述組件的子組件之間的第一弧;-創(chuàng)建所述第一子組件與所述第二子組件之間的第二弧。2.根據(jù)權(quán)利要求1所述的方法,其中,獲得表示所述屬性的第二圖包括在庫中檢索所述第二圖。3.根據(jù)權(quán)利要求1所述的方法,其中,獲得表示所述屬性的第二圖包括在庫中創(chuàng)建所述第二圖。4.根據(jù)權(quán)利要求1所述的方法,其中,驗證所述第二圖的存在或缺失之一還包括:驗證所述第二圖的節(jié)點的特性的值。5.根據(jù)權(quán)利要求4所述的方法,還包括:驗證所述特性的值是否在所述第二弧存在時遭到改變。6.根據(jù)權(quán)利要求1所述的方法,其中,顯示所述交互式組件包括:顯示子組件的子集。7.根據(jù)權(quán)利要求6所述的方法,其中,顯示的順序是由所述樹的所述結(jié)構(gòu)確定的。8.根據(jù)權(quán)利要求7所述的方法,其中,所述顯示的順序是深度優(yōu)先搜索算法的順序。9.根據(jù)權(quán)利要求1所述的方法,其中,所述屬性是關(guān)于所述交互式組件的結(jié)構(gòu)的。10.根據(jù)權(quán)利要求1所述的方法,其中,所述屬性是關(guān)于所述交互式組件的行為的。11.根據(jù)權(quán)利要求1至10中的任一項權(quán)利要求所述的方法,所述方法還包括:將...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:S·查蒂,M·馬尼奧德特,D·普蘭,
申請(專利權(quán))人:國立民用航空學(xué)院,
類型:發(fā)明
國別省市:法國;FR
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。