亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于確定是否順序顯示多個(gè)屏幕的系統(tǒng)和方法

文檔序號(hào):6608420閱讀:261來源:國(guó)知局
專利名稱:用于確定是否順序顯示多個(gè)屏幕的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于確定由程序顯示的屏幕是否滿足規(guī)范的系統(tǒng)。更具體來講,本發(fā)明涉及一種用于靜態(tài)地確定要順序顯示的多個(gè)屏幕是否滿足制定的規(guī)范的系統(tǒng)。
背景技術(shù)
近年來,對(duì)諸如可以在因特網(wǎng)上獲得的網(wǎng)頁之類的文檔的設(shè)計(jì)變得多種多樣了。雖然,設(shè)計(jì)得很好的網(wǎng)頁看上去不錯(cuò),但是諸如視覺上有缺陷的人之類的特殊用戶未必能夠非常好地理解該網(wǎng)頁。另外,當(dāng)頁面結(jié)構(gòu)違反語法規(guī)則時(shí),某些類型的web瀏覽器未必能夠正確地顯示該頁面。因此,通常提供了某些系統(tǒng)來確定諸如網(wǎng)頁之類的文檔是否滿足制定的規(guī)范,以便評(píng)估理解的容易度或者指明該頁面中待糾正的點(diǎn)。例如,參見非專利文獻(xiàn)(8)和(9)。另外,用于規(guī)定諸如HTML或XML之類的結(jié)構(gòu)化文檔的規(guī)范的研究以及對(duì)用于規(guī)定規(guī)范的模式(schema)等的研究已經(jīng)取得了進(jìn)展。例如,參見非專利文獻(xiàn)(2)、(4)和(5)。
非專利文獻(xiàn)(6)和(7)將在一個(gè)實(shí)施例中進(jìn)行參考。
非專利文獻(xiàn)(1)2005年在萬維網(wǎng)(WWW)上由Yasuhiko Minamide發(fā)表的“Static approximation of dynamically generated Web pages”;(2)FDR2(Formal Systems);(3)2005年在編程語言原理(Principles of ProgrammingLanguages,POPL)中由Cristiano Calcagno、Philippa Gardner、Uri Zarfaty發(fā)表的“Context Logic and Tree Update”;(4)2003年在軟件維護(hù)和重建的歐洲會(huì)議(EuropeanConference On Software Maintenance And Reengineering,CSMR)上由Eugenic Di Sciascio、Francesco M.Donini、Marina Mongiello、Giacomo Piscitelli發(fā)表的“Web applications design and maintenanceusing Symbolic Model Checking”;(5)在軟件測(cè)試日本討論會(huì)(Japan Symposium on SoftwareTesting)上由Eun-Hye CHOI、Hiroshi Watanabe發(fā)表的“Modelingand Verification of Class Specification for Web Applications”;(6)于1997年在http://www.grappa.univ-lille3.fr/tata/上由H.Comon等人發(fā)表的“Tree Automata Techniques and Applications”;(7)在2001年由Haruo Hosoya和Benjamin Pierce在編程語言原理(Principles of programming languages,POPL)上發(fā)表的“Regular expression pattern matching for XML”;(8)aDesigner(IBM);(9)Dreamweaver 8(Macromedia);(10)于2002年在IEICE的技術(shù)報(bào)告SS2002-22第102卷第370期第13-18頁上由Kazunori Washio等人發(fā)表的“SyntaxVerification Technique Using Data Flow Analysis for JavaScriptEmbedded HTML Documents”;(11)在SPA2006并于http://spa.jssst.or.jp/2006/上由TakaakiTateishi等人發(fā)表的“Accessibility Checking Tool for DHTML”。
某些網(wǎng)頁不僅可以包括靜態(tài)圖像,而且可以包括運(yùn)動(dòng)圖像。例如,Macromedia公司的Flash或Dynamic(動(dòng)態(tài))HTML被用作一種用于生成運(yùn)動(dòng)圖像的標(biāo)準(zhǔn)。運(yùn)動(dòng)圖像是借助于利用網(wǎng)頁提供的程序、通過順序地切換靜態(tài)圖像的顯示來實(shí)現(xiàn)的。如果試圖向運(yùn)動(dòng)圖像應(yīng)用有關(guān)靜態(tài)圖像的技術(shù),那么必須實(shí)際執(zhí)行所述程序,并且確定作為執(zhí)行結(jié)果生成的每一個(gè)靜態(tài)圖像是否滿足所述規(guī)范。然而,在確定要顯示的所有靜態(tài)圖像是否都滿足規(guī)范的情況下,所述程序的執(zhí)行狀態(tài)會(huì)急劇地增加。因此,實(shí)際上這種確定未必會(huì)完成。
另外,已經(jīng)提供了這樣一種技術(shù),該技術(shù)在不執(zhí)行程序的情況下分析在執(zhí)行程序之后的狀態(tài)。例如,參見非專利文獻(xiàn)(1)、(3)、(10)和(11)。依照非專利文獻(xiàn)(1)和(10)的技術(shù),將要通過執(zhí)行程序生成的字符串可以在沒有實(shí)際執(zhí)行該程序的情況下加以分析。然而,依照此技術(shù),無法分析如何改變作為執(zhí)行程序的結(jié)果而具有依照HTML、XML等描述的樹結(jié)構(gòu)的數(shù)據(jù)。另外,非專利文獻(xiàn)(3)公開了用于確定具有通過執(zhí)行程序而獲得的樹結(jié)構(gòu)的數(shù)據(jù)是否滿足規(guī)范的邏輯。然而,此文獻(xiàn)沒有公開信息處理設(shè)備如何根據(jù)此邏輯自動(dòng)地確定規(guī)范的滿足性。另外,非專利文獻(xiàn)(11)公開了應(yīng)該把用于分析作為執(zhí)行程序的結(jié)果而生成的字符串的技術(shù)應(yīng)用于具有樹結(jié)構(gòu)的DOM(文檔對(duì)象模型)。然而,非專利文獻(xiàn)(11)沒有公開用于應(yīng)用所述技術(shù)的具體方法。

發(fā)明內(nèi)容
因此,本發(fā)明的一個(gè)目的在于,提供一種能夠克服與傳統(tǒng)技術(shù)相伴的上述缺陷的系統(tǒng)、方法和程序。上述以及其它目的可以通過在獨(dú)立權(quán)利要求中描述的組合來實(shí)現(xiàn)。從屬權(quán)利要求進(jìn)一步定義了本發(fā)明的優(yōu)點(diǎn)和示例性組合。
為了解決上述問題,依照本發(fā)明的第一方面,提供了一種用于確定要由應(yīng)用程序順序顯示的多個(gè)屏幕是否滿足制定的規(guī)范的系統(tǒng)。所述系統(tǒng)包括規(guī)范存儲(chǔ)部件,用于存儲(chǔ)用來規(guī)定將要由第一屏幕滿足的規(guī)范的第一模式信息,用來規(guī)定將要由第二屏幕滿足的規(guī)范的第二模式信息,以及使應(yīng)用程序進(jìn)行的顯示從第一屏幕改變?yōu)榈诙聊坏氖录惶崛〔考?,用于根?jù)第一模式信息和所述事件,從應(yīng)用程序中提取部分程序,其中所述部分程序響應(yīng)于在顯示滿足第一模式信息的任何屏幕期間所述事件的出現(xiàn)而被執(zhí)行;生成部件,用于根據(jù)部分程序,從滿足第一模式信息的一組屏幕生成中間程序,所述中間程序用于計(jì)算在顯示這個(gè)滿足的組中的屏幕期間出現(xiàn)了所述事件的條件下要顯示的一組屏幕;以及確定部件,用于在第一屏幕滿足第一模式信息、并且通過向第一模式信息應(yīng)用中間程序而獲得的一組屏幕滿足第二模式信息的條件下,確定多個(gè)屏幕滿足制定的規(guī)范。另外,還提供了一種用于使信息處理設(shè)備起到此系統(tǒng)的作用的程序,以及一種用于借助于此系統(tǒng)來確定多個(gè)屏幕是否滿足規(guī)范的方法。
發(fā)明內(nèi)容未必描述了本發(fā)明的所有必要特征。本發(fā)明還可以是如上所述的特征的子組合。
依照本發(fā)明,在不執(zhí)行程序的情況下,能夠確定將要通過處理該程序而順序顯示的多個(gè)屏幕中的每一個(gè)是否滿足規(guī)范。


根據(jù)結(jié)合附圖對(duì)本發(fā)明的目前優(yōu)選的示例性實(shí)施例進(jìn)行的如下描述,本發(fā)明的上述及其它目的、特征和優(yōu)點(diǎn)將變得更加清楚,其中圖1是示出了信息處理系統(tǒng)的整體配置的視圖;圖2是示例性地示出了存儲(chǔ)在文檔數(shù)據(jù)庫上的數(shù)據(jù)的視圖;圖3是示出了滿足性確定系統(tǒng)的功能配置的視圖;圖4是示例性地示出了用于確定每一個(gè)屏幕是否滿足規(guī)范的處理過程的視圖;圖5是示出了由滿足性確定系統(tǒng)進(jìn)行的確定的示意圖;圖6是示出了存儲(chǔ)在規(guī)范存儲(chǔ)部件上的規(guī)范的第一示例的視圖;圖7是示出了部分程序的第一示例的視圖;圖8是示出了中間程序的第一示例的視圖;圖9是示例性地示出了用于進(jìn)行把部分程序變換為中間程序的處理過程的樹轉(zhuǎn)換器(tree transducer)的視圖;圖10是示出了存儲(chǔ)在規(guī)范存儲(chǔ)部件上的規(guī)范的第二示例的視圖;圖11是示出了部分程序的第二示例的視圖;圖12是示出了中間程序的第二示例的視圖;圖13是示例性地示出了用于進(jìn)行把部分程序變換為中間程序的處理過程的樹轉(zhuǎn)換器的視圖;圖14是示例性地示出了用于進(jìn)行把部分程序變換為中間程序的處理過程的樹轉(zhuǎn)換器的視圖;并且圖15是示例性地示出了起到滿足性確定系統(tǒng)作用的信息處理設(shè)備的硬件配置的視圖。
具體實(shí)施例方式
現(xiàn)在將基于優(yōu)選實(shí)施例來描述本發(fā)明的實(shí)施例,但這不意味著限制本發(fā)明的范圍,而僅僅是舉例說明了本發(fā)明。在所述實(shí)施例中描述的所有特征及其組合未必是本發(fā)明所必需的。
圖1是示出了信息處理系統(tǒng)10的整體配置的視圖。信息處理系統(tǒng)10包括文檔數(shù)據(jù)庫20和滿足性確定系統(tǒng)30。文檔數(shù)據(jù)庫20存儲(chǔ)文檔,通過所述文檔,多個(gè)屏幕被順序地顯示在Web瀏覽器等上。例如,這個(gè)文檔包括依照HTML(超文本標(biāo)記語言,Hyper TextMarkup Language)等描述的初始屏幕,以及依照諸如JavaScript(注冊(cè)商標(biāo))的程序設(shè)計(jì)語言描述的應(yīng)用程序。如果這個(gè)文檔被Web瀏覽器讀取,那么初始屏幕會(huì)被顯示在Web瀏覽器上。所顯示的初始屏幕響應(yīng)于Web服務(wù)器或Web瀏覽器執(zhí)行應(yīng)用程序這一事實(shí)而順序地改變。因此,多個(gè)屏幕被順序地顯示在Web瀏覽器上。
滿足性確定系統(tǒng)30從文檔數(shù)據(jù)庫20中讀取文檔。然后,滿足性確定系統(tǒng)30根據(jù)讀出的文檔來確定將要由應(yīng)用程序順序顯示的多個(gè)屏幕是否滿足制定的規(guī)范。把確定的結(jié)果輸出給用戶。
依照此方式,依照本實(shí)施例的信息處理系統(tǒng)10的目的在于,分析涉及這些屏幕的顯示的文檔,以便在沒有實(shí)際執(zhí)行程序的情況下,確定將要由應(yīng)用程序順序改變的每一個(gè)屏幕是否滿足制定的規(guī)范。
圖2是示例性地示出了存儲(chǔ)在文檔數(shù)據(jù)庫20上的數(shù)據(jù)的視圖。文檔數(shù)據(jù)庫20存儲(chǔ)涉及包括運(yùn)動(dòng)圖像在內(nèi)的網(wǎng)頁等的顯示的文檔。此文檔包括從第1行到第9行的各種類型的配置信息、從第10行到第49行的頭部分以及從第51行到第59行的主體部分。所述頭部分包括從第13行到第38行的依照J(rèn)avaScript描述的應(yīng)用程序。此應(yīng)用程序是用于修改網(wǎng)頁上的顯示的修改程序。此應(yīng)用程序?qū)崿F(xiàn)網(wǎng)頁上的復(fù)選框。也就是說,此應(yīng)用程序顯示這樣一種屏幕,在所述屏幕上,當(dāng)通過鼠標(biāo)點(diǎn)擊了所顯示的復(fù)選框時(shí),復(fù)選框被修改為選中狀態(tài),并且所述應(yīng)用程序還顯示這樣一種屏幕,在所述屏幕上,當(dāng)通過鼠標(biāo)點(diǎn)擊了處于選中狀態(tài)的復(fù)選框時(shí),所述復(fù)選框被修改為未選中狀態(tài)。
具體來說,此應(yīng)用程序定義了從第16行到第36行的、被稱為checkBoxEvent的函數(shù)。所述函數(shù)起到事件處理程序的作用,所述事件處理程序在生成了在第55行上定義的事件的條件下被調(diào)用。當(dāng)調(diào)用此函數(shù)時(shí),首先執(zhí)行第18行和第19行上的條件判斷。也就是說,確定是否已經(jīng)點(diǎn)擊了鼠標(biāo)的左按鈕(ID為零)或者是否已經(jīng)按下了鍵盤的空格鍵(具有按鍵代碼32的按鍵)。否則,所述處理過程移到第35行,以便完成函數(shù)的處理。
當(dāng)點(diǎn)擊了左按鈕或按下空格鍵時(shí),執(zhí)行從第20行到第34行的處理過程。首先,在第22行的情況下,確定屬性“checked(選中)”是否為“ture(真)”,其中所述“checked”用于表明復(fù)選框是否被選中。當(dāng)復(fù)選框被選中時(shí),所述應(yīng)用程序通過把該屬性改變?yōu)椤癴alse(假)”(第24行)來從復(fù)選框中取消復(fù)選標(biāo)記。在此情況下,應(yīng)用程序還可以刪除緊接于復(fù)選框顯示的輸入字段(entry field)(第25行)。
另一方面,當(dāng)復(fù)選框沒有被選中時(shí),所述應(yīng)用程序通過把屬性“checked”改變?yōu)椤皌ure”,來把復(fù)選標(biāo)記附加至復(fù)選框上(第29行)。在此情況下,應(yīng)用程序可以生成緊接于復(fù)選框的輸入字段(第31行)。另外,為了便于解釋,就圖3至圖9的描述而言,假設(shè)沒有執(zhí)行對(duì)輸入字段的處理。下面將參考圖10-14來描述執(zhí)行有關(guān)處理輸入字段時(shí)的內(nèi)容。
除了應(yīng)用程序以外,此文檔還包括第51至58行上的初始屏幕。此初始屏幕包括被稱為check的字符串和緊鄰所述字符串的復(fù)選框。由于在第54行上屬性“checked”被設(shè)置為“false”,因此該復(fù)選框處于在初始狀態(tài)下復(fù)選標(biāo)記被取消的狀態(tài)。當(dāng)通過鼠標(biāo)點(diǎn)擊復(fù)選框或者通過鍵盤按下復(fù)選框時(shí),被稱為checkBoxEvent的函數(shù)得以被調(diào)用(第55和56行)。
圖3是示出了滿足性確定系統(tǒng)30的功能配置的視圖。所述滿足性確定系統(tǒng)30具有規(guī)范存儲(chǔ)部件300、提取部件310、生成部件320和確定部件330。所述規(guī)范存儲(chǔ)部件300存儲(chǔ)多個(gè)模式信息中的每一個(gè),所述模式信息用于規(guī)定將要由應(yīng)用程序順序顯示的多個(gè)屏幕中的每一個(gè)應(yīng)該滿足的規(guī)范。另外,所述規(guī)范存儲(chǔ)部件300還存儲(chǔ)這樣的事件,通過所述事件,多個(gè)屏幕中的每一個(gè)均被切換到其它屏幕中的每一個(gè)。例如,所述規(guī)范存儲(chǔ)部件300存儲(chǔ)第一模式信息和第二模式信息,所述第一模式信息用于規(guī)定將要由作為初始屏幕的第一屏幕滿足的規(guī)范,并且所述第二模式信息用于規(guī)定將要由緊接于第一屏幕顯示的第二屏幕滿足的規(guī)范。然后,規(guī)范存儲(chǔ)部件300存儲(chǔ)這樣的事件,通過該事件,把應(yīng)用程序進(jìn)行的顯示從第一屏幕切換至第二屏幕。在圖2中示出的應(yīng)用程序的情況下,第一屏幕是在其上復(fù)選框已經(jīng)被選中的屏幕,而第二屏幕是在其上復(fù)選框仍未被選中的屏幕。然后,通過點(diǎn)擊鼠標(biāo)上的左邊部分或者按下鍵盤上的空格鍵來執(zhí)行所述事件,通過該事件,應(yīng)用程序進(jìn)行的顯示從第一屏幕切換至第二屏幕。
圖6是示出了存儲(chǔ)在規(guī)范存儲(chǔ)部件300上的規(guī)范的第一示例的視圖。該圖的左下方示出了用于規(guī)定在其上復(fù)選框沒有被選中的第一屏幕的規(guī)范的第一模式信息。此外,該圖的右下方示出了用于規(guī)定在其上復(fù)選框被選中的第二屏幕的規(guī)范的第二模式信息。使顯示從第一屏幕切換至第二屏幕的事件是鼠標(biāo)的左點(diǎn)擊(T0)或者空格鍵的按下(T2)。使顯示從第二屏幕切換至第一屏幕的事件是鼠標(biāo)的左點(diǎn)擊(T1)或者空格鍵的按下(T3)。
圖6中圖示的模式信息是依照語言理論通過樹和規(guī)則的語法樹(dendrogrammar)來表示的。HTML文檔是具有樹結(jié)構(gòu)的數(shù)據(jù),其在開始標(biāo)簽和結(jié)束標(biāo)簽之間還包括另一個(gè)開始標(biāo)簽和結(jié)束標(biāo)簽。所述模式信息借助于規(guī)則的語法樹來定義具有這種樹結(jié)構(gòu)的數(shù)據(jù)集。也就是說,首先,在模式信息的情況下,包括被稱為<elem><child1/><child2/>…<childN/></elem>的標(biāo)簽的HTML文檔,是通過elem(child1,child2,…,childN)來表示的。然后,所述模式信息包括多個(gè)語法規(guī)則,通過所述語法規(guī)則,每一標(biāo)簽被認(rèn)為是終止符,而符號(hào)Gn被認(rèn)為是非終止符。
具體來講,第一模式信息(當(dāng)前附圖中的左下方)包括body(主體)標(biāo)簽。在body標(biāo)簽中定義的非終止符是G5、G10等。所述非終止符包括span(間距)標(biāo)簽,并且還包括其它非終止符G6至G8。這些G6至G8分別定義了屬性值是checkbox(復(fù)選框)的role(角色)屬性、屬性值是false的checked屬性、以及onclick(點(diǎn)擊)屬性。另外,G10包括另一span標(biāo)簽。也就是說,第一模式信息定義了所述body標(biāo)簽中包括多個(gè)span標(biāo)簽,并且第一span標(biāo)簽包括role屬性、checked屬性以及onclick屬性。
同樣地,第二模式信息(當(dāng)前附圖中的右下方)包括body標(biāo)簽。依照在body標(biāo)簽中定義的非終止符的規(guī)則,body標(biāo)簽中的span標(biāo)簽包括屬性值是checkbox的role屬性、屬性值是false的checked屬性、以及onclick屬性。也就是說,第二模式信息定義了所述body標(biāo)簽中包括多個(gè)span標(biāo)簽,并且第一span標(biāo)簽包括role屬性、checked屬性以及onclick屬性。依照此方式,包括運(yùn)動(dòng)圖像在內(nèi)的內(nèi)容的規(guī)范通過每一屏幕的規(guī)范和包括表明屏幕之間的轉(zhuǎn)變的事件的狀態(tài)轉(zhuǎn)變圖來表示。
參考圖3,提取部件310從文檔數(shù)據(jù)庫20中讀取文檔。然后,所述提取部件310根據(jù)第一模式信息和所述事件,從此文檔中包括的應(yīng)用程序中提取部分程序,所述部分程序響應(yīng)于在顯示滿足第一模式信息的任何屏幕期間所述事件的出現(xiàn)而被執(zhí)行。依照此方式提取的部分程序被認(rèn)為是部分程序50。圖7中示出了該部分程序的示例。
圖7是示出了部分程序50的第一示例的視圖。為了例證說明的目的,把函數(shù)checkBoxEvent從存儲(chǔ)在文檔數(shù)據(jù)庫20上的應(yīng)用程序中提取出來,并且顯示在當(dāng)前視圖的上方。對(duì)于應(yīng)用程序中包括的每一條件分支指令,所述提取部件310根據(jù)第一模式信息中規(guī)定的這些狀態(tài)以及事件來確定執(zhí)行哪一分支目標(biāo)。如圖6中所描述的那樣,把顯示從第一屏幕切換至第二屏幕的事件是鼠標(biāo)的左點(diǎn)擊或者空格鍵的按下。為此,第4行和第5行上的條件分支指令的條件得以滿足。也就是說,提取部件310確定執(zhí)行從第6行到第15行的指令序列。
另外,第一模式信息包括屬性值是false的checked屬性。為此,第8行和第9行上的條件分支指令的條件沒有被滿足。也就是說,提取部件310確定執(zhí)行從第13行開始的else段落。所述提取部件310依照此方式通過連續(xù)地把要執(zhí)行的分支目標(biāo)上的指令序列進(jìn)行排隊(duì)來生成部分程序50。因此,部分程序50包括用于把checked屬性的屬性值改變?yōu)閠rue的指令。
參考圖3,生成部件320根據(jù)部分程序50來生成中間程序60。中間程序60是這樣一種程序,其從滿足第一模式信息的一組屏幕計(jì)算在顯示滿足第一模式信息的一組屏幕中的屏幕期間當(dāng)生成事件時(shí)所顯示的一組屏幕。圖8中示出了所述中間程序60。
圖8是示出了中間程序60的第一示例的視圖。為了例證說明的目的,在圖8的上部圖示了部分程序50。首先,生成部件320對(duì)部分程序50執(zhí)行SSA(Static Single Assignment,靜態(tài)單賦值)變換,以便唯一地確定每一變量的定義,并且生成多個(gè)指令,所述指令用于獲得與部分程序50的執(zhí)行結(jié)果相同的執(zhí)行結(jié)果。在圖8的中間部分上示出了所生成的指令序列。
將描述變換處理過程。依照SSA形式,對(duì)每一變量的賦值在部分程序50中可以被唯一地確定。為此,需要依照兩個(gè)或更多賦值操作把賦值目標(biāo)的變量改變?yōu)閮蓚€(gè)或更多中間變量,以便對(duì)部分程序50執(zhí)行SSA變換。在圖8所圖示的部分程序50中,對(duì)象event.target被分配給變量checkbox。此外,變量checkbox中包括的屬性的屬性值通過函數(shù)setAttributeNS來修改。依照此方式,相同的變量checkbox的內(nèi)容可以通過多個(gè)操作多次修改。為此,生成部件320必須依照某種方式變換涉及變量checkbox的處理。
部分程序50中的諸如添加孩子元素或者修改屬性之類的直接樹操作可以被表示為中間程序60中的摘要內(nèi)容變換函數(shù)。所述摘要內(nèi)容變換函數(shù)是從模式信息到模式信息的函數(shù),以便使F(T)∈Tr(G)對(duì)于任意模式信息G以及滿足模式信息G的任意內(nèi)容T都滿足。此處,Tr示出了摘要內(nèi)容變換函數(shù),而F示出了通過樹變換函數(shù)進(jìn)行的樹變換。
例如,如果使用諸如JavaScript的程序設(shè)計(jì)語言,那么能夠從內(nèi)容T中選擇位于開始標(biāo)簽和結(jié)束標(biāo)簽之間的數(shù)據(jù),并且描述用于改變所選數(shù)據(jù)的指令序列。具體來說,用于從HTML文檔中提取文檔對(duì)象的、諸如getElementByTagName之類的函數(shù)是在JavaScript中提供的。如果使用它,那么能夠從HTML文檔中取出某一元素doc,并且把對(duì)應(yīng)于所述元素doc的屬性attr的值改變?yōu)関alue。在部分程序50的示例中,在初始屏幕中導(dǎo)致事件出現(xiàn)的標(biāo)簽被選擇并且被存儲(chǔ)在變量checkbox上。然后,存儲(chǔ)在checkbox上的標(biāo)簽的屬性通過被稱為checkbox.setAttributeNS();的方法來修改。
如果應(yīng)用程序中的這個(gè)樹操作指令序列是通用的,那么通過如下的表達(dá)式來表示它。
V=doc.getElementByTagName(″foo″);v.setAttribute......
此處,doc是用于存儲(chǔ)原始HTML文檔的對(duì)象,而foo是任意標(biāo)簽的名稱。所述getElementByTagName是用于從doc中取出具有指定名稱的介于開始標(biāo)簽和結(jié)束標(biāo)簽之間的文檔的函數(shù)。向所取出的文檔分配變量v。如果對(duì)變量v執(zhí)行下一操作,那么存儲(chǔ)在doc上的原始HTML文檔也會(huì)被修改。也就是說,所述樹操作指令序列包括用于從HTML文檔提取文檔對(duì)象的指令以及用于修改所提取的文檔對(duì)象的指令。
當(dāng)提取部件310包括部分程序50中所包括的樹操作指令序列時(shí),所述生成部件320如下所述那樣來變換這個(gè)樹操作指令序列。
$doc1=getElementByTagName_r($doc0,$vN,″foo″);$v0=getElementBytagName($doc0,″foo″);$v1=setAttribute(...,$v0,...);$vN=...;
此處,變量$doc0示出了在由樹操作指令序列進(jìn)行操作之前的屏幕配置。另一方面,變量$doc1示出了在由樹操作指令序列進(jìn)行操作之后的屏幕配置。另外,變量$v0存儲(chǔ)復(fù)制數(shù)據(jù),所述復(fù)制數(shù)據(jù)是由getElementByTagName函數(shù)(第2行)從原始文檔復(fù)制的文檔對(duì)象。另外,變量$vN存儲(chǔ)通過執(zhí)行各種類型的操作生成的文檔,所述操作例如為修改存儲(chǔ)在變量$v0上的復(fù)制數(shù)據(jù)的屬性(第3行和第4行)。另外,getElementByTagName_r是用于把屏幕中的介于標(biāo)簽foo的開始標(biāo)簽和結(jié)束標(biāo)簽之間的文檔替換為變量$vN的內(nèi)容的函數(shù)。對(duì)其執(zhí)行各種類型的操作的復(fù)制數(shù)據(jù)由一部分原始文檔$doc0替代(第1行)。
也就是說,所述生成部件320把樹操作指令序列變換為用于生成復(fù)制數(shù)據(jù)、修改復(fù)制數(shù)據(jù)并且用變換后的復(fù)制數(shù)據(jù)替換初始屏幕中的原始數(shù)據(jù)的指令序列,其中所述復(fù)制數(shù)據(jù)是通過從初始屏幕中復(fù)制位于開始標(biāo)簽和結(jié)束標(biāo)簽之間的數(shù)據(jù)而獲得的。
具體來講,在圖8的示例中,生成部件320把變量checkbox修改為兩個(gè)中間變量$checkbox1和$checkbox2。變量$checkbox1相當(dāng)于一般示例中的變量$v0,變量$checkbox2相當(dāng)于一般示例中的變量$vN,而變量$unchecked相當(dāng)于一般示例中的$doc1。然后,所述生成部件320生成用于向變量$checkbox1分配對(duì)象event.target的指令。對(duì)象event.target的內(nèi)容是由第一模式信息的定義和所述事件來具體確定的。因此,所述生成部件320可以生成用于向變量$checkbox1分配event.target的具體內(nèi)容的指令。
接下來,生成部件320生成用于向變量$checkbox2分配樹操作指令序列的處理結(jié)果的指令。也就是說,將在存儲(chǔ)于變量$checkbox1上的屏幕當(dāng)中的、其checked屬性的屬性值被修改為true的屏幕分配給變量$checkbox2。然后,生成部件320生成用于向變量$unchecked分配屏幕的指令,其中所述屏幕是通過依照變量$checkbox2的內(nèi)容來替換原始屏幕而獲得的。因此,將其checked屬性的屬性值被修改為true的屏幕分配給變量$unchecked,用于存儲(chǔ)操作后的(postoperational)屏幕。
依照上述變換,所述部分程序50被變換為其中對(duì)每一變量逐個(gè)執(zhí)行賦值的SSA形式。然而,由于函數(shù)setAttributeNS是用于操作單個(gè)屏幕的函數(shù),因此無法依照這種方法從滿足第一模式信息的一組屏幕計(jì)算滿足第二模式信息的一組屏幕。為此,所述生成部件320進(jìn)一步對(duì)函數(shù)setAttributeNS執(zhí)行接下來的變換。
假定能夠由樹操作指令序列獲得的內(nèi)容是T′,那么把摘要內(nèi)容變換函數(shù)定義為至少滿足T′∈Tr(G)的函數(shù)Tr。當(dāng)樹變換函數(shù)取多個(gè)自變量時(shí),假定T是一組內(nèi)容,并且G是一組模式,那么摘要內(nèi)容變換函數(shù)是Tr,以便使F(T)∈Tr(G)得以滿足。諸如自上而下的樹轉(zhuǎn)換器之類的樹轉(zhuǎn)換器和非專利文獻(xiàn)(8)中示出的XML變換語言和查詢語言的理論框架可以被用作這種摘要內(nèi)容變換函數(shù)的定義。此后,將舉例說明樹轉(zhuǎn)換器。
圖9是示例性地示出用于進(jìn)行把所述部分程序50變換為中間程序60的處理過程的樹轉(zhuǎn)換器的視圖。在所述樹轉(zhuǎn)換器中,定義了狀態(tài)q1和狀態(tài)q2這兩個(gè)狀態(tài)。由函數(shù)setAttributeNS進(jìn)行的操作可以被表示為從狀態(tài)q1到狀態(tài)q2的轉(zhuǎn)變。在這個(gè)樹轉(zhuǎn)換器中,狀態(tài)q1中的每一標(biāo)簽在狀態(tài)q2中保持不變,而只有checked屬性的屬性值被修改為true。
圖8中圖示的中間程序60是由生成部件320通過上述處理過程生成的。
返回到圖3,確定部件330隨后根據(jù)中間程序60確定每一屏幕是否滿足規(guī)范。具體來講,所述確定部件330首先確定作為初始屏幕的第一屏幕是否滿足第一模式信息。然后,所述確定部件330確定通過向第一模式信息應(yīng)用中間程序60而獲得的一組屏幕是否滿足第二模式信息。這些確定過程可以使用非專利文獻(xiàn)(6)中公開的傳統(tǒng)上已知的技術(shù)。然后,在第一屏幕滿足第一模式信息、并且通過向第一模式信息應(yīng)用中間程序60而獲得的一組屏幕滿足第二模式信息的條件下,確定部件330確定每一屏幕均滿足所述規(guī)范。當(dāng)確定所述規(guī)范得以滿足時(shí),所述確定部件向提取部件310通知緊接于第二屏幕顯示的第三屏幕是否滿足第三模式信息,以便使所述提取部件確定第三屏幕是否滿足第三模式信息。
圖4是示例性地示出用于確定每一屏幕是否滿足規(guī)范的處理過程的視圖。首先,所述確定部件330確定第一屏幕是否滿足第一模式信息(S400)。如果第一屏幕不滿足第一模式信息(S400否),那么確定部件330確定所述規(guī)范沒有被滿足(S415),并且輸出所確定的結(jié)果,以便終止所述處理過程。另一方面,如果第一屏幕滿足第一模式信息(S400是),那么所述提取部件310從應(yīng)用程序中提取部分程序50(S420),所述部分程序50在顯示滿足第一模式信息的任何屏幕期間響應(yīng)于事件的出現(xiàn)而被執(zhí)行。
接下來,所述生成部件320根據(jù)部分程序50來生成中間程序60(S430)。接下來,確定部件330借助于向第一模式信息應(yīng)用中間程序60,來計(jì)算能夠緊接于第一屏幕顯示的一組屏幕(S440)。然后,所述確定部件330確定所計(jì)算的該組屏幕是否滿足第二模式信息(S450)。如果該組屏幕不滿足所述信息(S450否),那么確定部件330確定能夠由所述應(yīng)用程序顯示的屏幕不滿足所述規(guī)范(S415),并且終止該附圖中示出的處理過程。在此情況下,確定部件330可以生成并且輸出這樣的信息,所述信息用于表明第一屏幕或者第二屏幕如何不同于模式信息。
另一方面,如果該組屏幕滿足所述信息(S450是),那么確定部件330確定存儲(chǔ)在規(guī)范存儲(chǔ)部件300上的所有模式信息是否已經(jīng)被確定了(S460)。例如,當(dāng)用于規(guī)定將要由緊接于第二屏幕顯示的第三屏幕滿足的規(guī)范的第三模式信息被存儲(chǔ)在規(guī)范存儲(chǔ)部件300上時(shí),對(duì)所有模式信息的確定仍未完成。為此,所述滿足性確定系統(tǒng)30將處理返回至S420。也就是說,所述提取部件310根據(jù)第二模式信息和用于把顯示從第二屏幕切換至第三屏幕的事件來提取部分程序,并且執(zhí)行接下來的處理。
響應(yīng)于已經(jīng)完成了對(duì)所有模式信息的確定這一事實(shí)(S460是),確定部件330確定由應(yīng)用程序所顯示的每一個(gè)屏幕滿足所述規(guī)范(S470),并且輸出所確定的結(jié)果以便終止所述處理過程。
如上所述,依照就圖4描述的處理過程而言,對(duì)于能夠被顯示的多個(gè)屏幕中的每一個(gè)而言,所述提取部件310可以根據(jù)對(duì)應(yīng)于此屏幕的模式信息和能夠在顯示此屏幕期間生成的事件來提取部分程序,所述部分程序響應(yīng)于在顯示此屏幕期間事件的出現(xiàn)而執(zhí)行。然后,對(duì)于多個(gè)模式信息中的每一個(gè)來說,生成部件320可以根據(jù)在顯示所述屏幕期間執(zhí)行的部分程序來生成中間程序,所述中間程序用于從滿足此模式信息的一組屏幕計(jì)算因在顯示此組中的屏幕期間出現(xiàn)事件而顯示的一組屏幕。然后,在初始屏幕滿足第一模式信息、并且通過向每一模式信息應(yīng)用中間程序而獲得的一組屏幕滿足用于規(guī)定緊接于滿足此模式信息的屏幕顯示的屏幕的規(guī)范的模式信息的條件下,確定部件330可以確定每一屏幕均滿足所述規(guī)范。
圖5是示出了由滿足性確定系統(tǒng)30進(jìn)行的確定的示意圖。所述文檔數(shù)據(jù)庫20存儲(chǔ)其中描述了多個(gè)屏幕的初始屏幕的HTML文檔,以及用于通過順序地改變HTML文檔來顯示多個(gè)屏幕的應(yīng)用程序。也就是說,多個(gè)屏幕中的每一個(gè)還是依照HTML描述的網(wǎng)頁。另外,所述應(yīng)用程序可以是嵌入在網(wǎng)頁中的程序,并且依照J(rèn)avaScript等描述。
所述規(guī)范存儲(chǔ)部件300存儲(chǔ)多個(gè)模式信息,所述模式信息用于規(guī)定將要由多個(gè)屏幕中的每一個(gè)滿足的規(guī)范。另外,所述規(guī)范存儲(chǔ)部件300存儲(chǔ)這樣的事件,通過所述事件,把顯示從每一屏幕切換至其它屏幕中的每一個(gè)。所述確定部件330首先確定初始屏幕是否滿足第一模式信息。接下來,確定部件330借助于根據(jù)第一模式信息生成的中間程序60來計(jì)算這樣一組屏幕,所述屏幕能夠在顯示滿足第一模式信息的屏幕期間依照事件的出現(xiàn)而被顯示。所述確定部件330確定該組屏幕是否滿足第二模式信息。同樣地,確定部件330借助于根據(jù)第二模式信息生成的中間程序來計(jì)算這樣一組屏幕,所述屏幕能夠在顯示滿足第二模式信息的屏幕期間依照事件的出現(xiàn)而被顯示。另外,所述確定部件330確定該組屏幕是否滿足第三模式信息。依照這種處理過程,所述屏幕不滿足任何模式信息,或者上述處理過程會(huì)被重復(fù),直到完成了對(duì)所有模式信息的確定為止。
如同上述,依照本實(shí)施例的滿足性確定系統(tǒng)30,能夠在沒有執(zhí)行應(yīng)用程序的情況下確定由應(yīng)用程序順序顯示的每個(gè)屏幕是否滿足規(guī)范。在此種確定的情況下,包括樹操作指令序列的部分程序被變換為中間程序。因此,能夠?qū)M足預(yù)定條件的一組屏幕而不是單個(gè)屏幕執(zhí)行處理,這是因?yàn)樗霾糠殖绦虮蛔儞Q為中間程序。因此,雖然沒有實(shí)際執(zhí)行程序,但是能夠有效地確定能夠依照該程序的執(zhí)行顯示的一組屏幕滿足規(guī)范。
參考圖10至14,將描述當(dāng)應(yīng)用程序緊接于復(fù)選框顯示輸入字段時(shí)的情況。
圖10是示出了存儲(chǔ)在規(guī)范存儲(chǔ)部件300上的規(guī)范的第二示例的視圖。在當(dāng)前附圖的左下方示出了用于規(guī)定在其上復(fù)選框沒有被選中的第一屏幕的規(guī)范的第一模式信息。此外,當(dāng)前附圖的右下方示出了用于規(guī)定在其上復(fù)選框被選中的第二屏幕的規(guī)范的第二模式信息。把顯示從第一屏幕切換至第二屏幕的事件是鼠標(biāo)的左點(diǎn)擊(T0)或者空格鍵的按下(T2)。把顯示從第二屏幕切換至第一屏幕的事件是鼠標(biāo)的左點(diǎn)擊(T1)或者空格鍵的按下(T3)。
由于圖10中示出的第一模式信息相當(dāng)于就圖6描述的第一模式信息,因此省略了對(duì)其的描述。除了第一模式信息以外,所述第二模式信息包括body標(biāo)簽中的span標(biāo)簽中的非終止符G9。G9包括input(輸入)標(biāo)簽。也就是說,第二模式信息規(guī)定了第二屏幕應(yīng)該包括input標(biāo)簽。
圖11是示出了部分程序50的第二示例的視圖。為了例證說明的目的,把函數(shù)checkBoxEvent從存儲(chǔ)在文檔數(shù)據(jù)庫20上的應(yīng)用程序中提取出來,并且顯示在當(dāng)前附圖的上部。對(duì)于應(yīng)用程序中包括的每一條件分支指令,所述提取部件310根據(jù)第一模式信息中規(guī)定的這些狀態(tài)以及事件來確定執(zhí)行哪一分支目標(biāo)。如圖10所示,把顯示從第一屏幕切換至第二屏幕的事件是鼠標(biāo)的左點(diǎn)擊或者空格鍵的按下。為此,第3行和第4行上的條件分支指令的條件得以滿足。也就是說,提取部件310確定執(zhí)行從第5行到第16行的指令序列。
另外,第一模式信息包括屬性值是false的checked屬性。為此,第7行上的條件分支指令的條件沒有被滿足。也就是說,提取部件310確定執(zhí)行從第11行開始的else段落。所述提取部件310通過在以這種方式執(zhí)行而確定的分支目標(biāo)處連續(xù)地對(duì)指令序列進(jìn)行排隊(duì),來生成部分程序50。因此,部分程序50包括用于把checked屬性的屬性值修改為true的指令以及用于生成input標(biāo)簽的指令。
圖12是示出了中間程序60的第二示例的視圖。為了例證說明的目的,在當(dāng)前附圖的上部示出了部分程序50。生成部件320首先對(duì)部分程序50執(zhí)行SSA(靜態(tài)單賦值)變換,以便唯一地規(guī)定程序中每一個(gè)變量的定義,并且生成多個(gè)指令,所述指令的執(zhí)行結(jié)果與部分程序50的執(zhí)行結(jié)果相同。在當(dāng)前附圖的中間部分示出了所生成的指令序列。依照當(dāng)前示例的部分程序50包括用于從初始屏幕中取出在其上出現(xiàn)事件的部分的指令、用于修改屬性值的指令、以及用于添加標(biāo)簽作為樹操作指令序列的指令。因此,對(duì)變量checkbox執(zhí)行三次賦值。
為此,所述生成部件320把變量checkbox修改為三個(gè)中間變量$checkbox1、$checkbox2和$checkbox3。變量$checkbox1相當(dāng)于一般示例中的變量$v0,變量$checkbox2相當(dāng)于一般示例中的變量$v1,而變量$checkbox3相當(dāng)于一般示例中的變量$vN,并且變量$unchecked相當(dāng)于一般示例中的$doc1。然后,所述生成部件320生成用于向變量$checkbox1分配對(duì)象event.target的指令。接下來,所述生成部件320生成用于向變量$checkbox2分配樹操作指令序列的第一處理結(jié)果的指令。也就是說,將在存儲(chǔ)于變量$checkbox1的屏幕中、其checked屬性的屬性值被修改為true的屏幕分配給變量$checkbox2。接下來,所述生成部件320生成用于向變量$checkbox3分配樹操作指令序列的第二處理結(jié)果的指令。也就是說,將在存儲(chǔ)于變量$checkbox2的屏幕中、向其添加了標(biāo)簽input的屏幕分配給變量$checkbox3。然后,生成部件320生成用于向變量$unchecked分配屏幕的指令,其中所述屏幕是通過借助于變量$checkbox3的內(nèi)容替換原始屏幕而獲得的。因此,將其checked屬性的屬性值被修改為true并且向其添加了標(biāo)簽input的屏幕分配給變量$unchecked,用于存儲(chǔ)操作后的屏幕。
依照上述變換,部分程序50被變換為其中對(duì)每一變量逐個(gè)執(zhí)行賦值的SSA形式。然而,由于函數(shù)setAttributeNS、函數(shù)appendChild和函數(shù)removeChild是對(duì)單個(gè)屏幕進(jìn)行操作的函數(shù),因此,在這種狀態(tài)下,無法從滿足第一模式信息的一組屏幕計(jì)算滿足第二模式信息的一組屏幕。為此,生成部件320使用樹轉(zhuǎn)換器對(duì)函數(shù)setAttributeNS、函數(shù)appendChild和函數(shù)removeChild中的每一個(gè)執(zhí)行變換。由于函數(shù)setAttributeNS的變換相當(dāng)于圖9的變換,所以省略了對(duì)其的描述。圖13中示出了函數(shù)applendChild的變換,并且圖14中示出了函數(shù)removeChild的變換。
圖13是示例性地示出用于進(jìn)行把所述部分程序50變換為中間程序60的處理過程的樹轉(zhuǎn)換器的視圖。在所述樹轉(zhuǎn)換器中,定義了狀態(tài)q1和狀態(tài)q2這兩個(gè)狀態(tài)。由函數(shù)appendChild進(jìn)行的操作可以被表示為從狀態(tài)q1到狀態(tài)q2的轉(zhuǎn)變。在這個(gè)樹轉(zhuǎn)換器中,狀態(tài)q1中的每一標(biāo)簽在狀態(tài)q2中保持不變,而僅僅標(biāo)簽input被添加。然而,由于變量$checkboxl不是由樹轉(zhuǎn)換器按照原樣進(jìn)行處理,所以生成部件320將其編碼為二叉樹。由于詳細(xì)的說明通??稍诜菍@墨I(xiàn)(7)中獲知,所以省略了對(duì)其的描述。
圖14是示例性地示出用于進(jìn)行把所述部分程序50變換為中間程序60的處理過程的樹轉(zhuǎn)換器的視圖。在所述樹轉(zhuǎn)換器中,定義了狀態(tài)q1和狀態(tài)q2這兩個(gè)狀態(tài)。由函數(shù)removeChild進(jìn)行的操作可以被表示為從狀態(tài)q1到狀態(tài)q2的轉(zhuǎn)變。在這個(gè)樹轉(zhuǎn)換器中,狀態(tài)q1中的每一標(biāo)簽在狀態(tài)q2中保持不變,而僅僅標(biāo)簽input被刪除。另外,圖14中示出的樹轉(zhuǎn)換器假設(shè)在HTML文檔上只存在一個(gè)具有被稱為input的名稱的標(biāo)簽。當(dāng)HTML文檔中包括多個(gè)具有被稱為input的名稱的標(biāo)簽時(shí),必須把可識(shí)別的數(shù)字附加到每一標(biāo)簽上,或者把每一標(biāo)簽改變?yōu)楸舜嘶ハ嗖煌拿Q,以便標(biāo)識(shí)每個(gè)標(biāo)簽。另外,由于在非專利文獻(xiàn)(6)和(7)中詳細(xì)描述了無法由如上所述的樹轉(zhuǎn)換器處理的處理過程,所以省略了對(duì)其的描述。
如上就圖10至14所述得那樣,依照所述滿足性確定系統(tǒng)30,對(duì)于當(dāng)已經(jīng)選中了復(fù)選框時(shí)使屏幕顯示緊接于復(fù)選框的輸入字段的應(yīng)用程序而言,能夠有效地確定正由此程序顯示的每一屏幕是否滿足規(guī)范。
圖15是示例性地示出了起到滿足性確定系統(tǒng)30作用的信息處理設(shè)備500的硬件配置的視圖。所述信息處理設(shè)備500包括CPU外圍部件,所述CPU外圍部件具有CPU 1000、RAM 1020和圖形控制器1075,它們通過主機(jī)控制器1082彼此相連,所述信息處理設(shè)備500還包括輸入-輸出部件,所述輸入-輸出部件具有通信接口1030、硬盤驅(qū)動(dòng)器1040和CD-ROM驅(qū)動(dòng)器1060,它們通過輸入-輸出控制器1084與主機(jī)控制器1082相連,并且所述信息處理設(shè)備500還包括傳統(tǒng)的輸入-輸出部件,所述傳統(tǒng)的輸入-輸出部件具有ROM 1010、軟盤驅(qū)動(dòng)器1050和輸入-輸出芯片1070,它們與輸入-輸出控制器1084相連。
所述主機(jī)控制器1082將RAM 1020連接到CPU 1000以及圖形控制器1075,以便以高傳送速率訪問RAM 1020。所述CPU 1000基于存儲(chǔ)在ROM 1010和RAM 1020上的程序來操作,以便控制每一部件。所述圖形控制器1075獲取在RAM 1020中所提供的幀緩沖器上由CPU 1000生成的圖像數(shù)據(jù),并且在顯示設(shè)備1080上顯示所述數(shù)據(jù)。作為選擇,所述圖形控制器1075中可以包括用于存儲(chǔ)從CPU 1000生成的圖像數(shù)據(jù)的幀緩沖器。
輸入-輸出控制器1084把主機(jī)控制器1082連接到通信接口1030、硬盤驅(qū)動(dòng)器1040和CD-ROM驅(qū)動(dòng)器1060(它們都是相對(duì)快速的輸入-輸出設(shè)備)。所述通信接口1030經(jīng)由網(wǎng)絡(luò)與外部設(shè)備通信。硬盤驅(qū)動(dòng)器1040存儲(chǔ)將要由信息處理設(shè)備500使用的程序和數(shù)據(jù)。所述CD-ROM驅(qū)動(dòng)器1060從CD-ROM 1095中讀取程序或者數(shù)據(jù),并且向RAM 1020或者硬盤驅(qū)動(dòng)器1040提供程序或者數(shù)據(jù)。
另外,作為相對(duì)低速的輸入-輸出設(shè)備的ROM 1010、軟盤驅(qū)動(dòng)器1050和輸入-輸出芯片1070與輸入-輸出控制器1084相連。所述ROM 1010存儲(chǔ)在啟動(dòng)信息處理設(shè)備500期間由CPU 1000執(zhí)行的引導(dǎo)程序、依賴于信息處理設(shè)備500的硬件的程序等。所述軟盤驅(qū)動(dòng)器1050從軟盤1090中讀取程序或者數(shù)據(jù),并且經(jīng)由輸入-輸出芯片1070向RAM 1020或者硬盤驅(qū)動(dòng)器1040提供程序或者數(shù)據(jù)。輸入-輸出芯片1070經(jīng)由軟盤1090、并行端口、串行端口、鍵盤端口、鼠標(biāo)端口等連接各種輸入-輸出設(shè)備。
提供給信息處理設(shè)備500的程序被存儲(chǔ)在記錄介質(zhì)、諸如軟盤1090、CD-ROM 1095或者IC卡上,以便由用戶提供。經(jīng)由輸入-輸出芯片1070和輸入-輸出控制器1084從記錄介質(zhì)中讀取程序,以便在信息處理設(shè)備500中安裝并且執(zhí)行程序。由于通過程序在信息處理設(shè)備500等上進(jìn)行工作而執(zhí)行的操作與在圖1至14中描述的滿足性確定系統(tǒng)30執(zhí)行的操作相同,因此將省略對(duì)其的描述。
如上所述的程序可以被存儲(chǔ)在外部存儲(chǔ)介質(zhì)上。除了包括軟盤1090和CD-ROM 1095以外,存儲(chǔ)介質(zhì)還可以包括諸如DVD和PD之類的光記錄介質(zhì)、諸如MD之類的磁光記錄介質(zhì)、磁帶介質(zhì)、諸如IC卡之類的半導(dǎo)體存儲(chǔ)器。另外,在與專用通信網(wǎng)和因特網(wǎng)相連的服務(wù)器系統(tǒng)中提供的諸如硬盤或者RAM之類的存儲(chǔ)設(shè)備也可用作記錄介質(zhì),以便經(jīng)由網(wǎng)絡(luò)向信息處理設(shè)備500提供程序。
雖然已經(jīng)通過示例性實(shí)施例描述了本發(fā)明,但是,應(yīng)該理解的是,在不脫離本發(fā)明的精神和范圍的情況下,本領(lǐng)域技術(shù)人員可以做出許多變化和替換,本發(fā)明的范圍僅僅由所附權(quán)利要求書限定。
權(quán)利要求
1.一種用于確定將要由應(yīng)用程序順序顯示的多個(gè)屏幕是否滿足制定的規(guī)范的系統(tǒng),所述系統(tǒng)包括規(guī)范存儲(chǔ)部件,用于存儲(chǔ)用來規(guī)定將要由第一屏幕滿足的規(guī)范的第一模式信息,用來規(guī)定將要由第二屏幕滿足的規(guī)范的第二模式信息,以及使應(yīng)用程序進(jìn)行的顯示從第一屏幕改變?yōu)榈诙聊坏氖录惶崛〔考?,用于根?jù)第一模式信息和所述事件,從應(yīng)用程序中提取部分程序,所述部分程序在顯示滿足第一模式信息的任何屏幕期間響應(yīng)于事件的出現(xiàn)而被執(zhí)行;生成部件,用于根據(jù)部分程序,從滿足第一模式信息的一組屏幕生成中間程序,所述中間程序用于計(jì)算在顯示這個(gè)滿足的組中的屏幕期間出現(xiàn)了所述事件的條件下要顯示的一組屏幕;以及確定部件,用于在第一屏幕滿足第一模式信息、并且通過向第一模式信息應(yīng)用中間程序而獲得的一組屏幕滿足第二模式信息的條件下,確定多個(gè)屏幕滿足制定的規(guī)范。
2.如權(quán)利要求1所述的系統(tǒng),其中,對(duì)于應(yīng)用程序中包括的每個(gè)條件分支指令而言,所述提取部件根據(jù)第一模式信息中規(guī)定的屏幕的狀態(tài)以及所述事件,確定哪一分支目標(biāo)被執(zhí)行,并且提取在依照所述確定要執(zhí)行的分支目標(biāo)上的指令序列以及所述部分程序。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述生成部件對(duì)部分程序執(zhí)行靜態(tài)單賦值變換、即SSA變換,以便唯一地規(guī)定對(duì)部分程序中的每一變量的賦值,并且生成多個(gè)指令,所述多個(gè)指令具有與通過將部分程序作為中間程序執(zhí)行而獲得的結(jié)果相同的結(jié)果。
4.如權(quán)利要求3所述的系統(tǒng),其中多個(gè)屏幕中的每一個(gè)是具有樹結(jié)構(gòu)的數(shù)據(jù),其在開始標(biāo)簽和結(jié)束標(biāo)簽之間還包括另一個(gè)開始標(biāo)簽和結(jié)束標(biāo)簽,所述提取部件從第一屏幕中選擇介于某一個(gè)開始標(biāo)簽和結(jié)束標(biāo)簽之間的數(shù)據(jù),并且提取用于修改所選數(shù)據(jù)的樹操作指令序列以及部分程序,并且所述生成部件把樹操作指令序列變換為用于生成復(fù)制數(shù)據(jù)、修改復(fù)制數(shù)據(jù)、并且用修改后的復(fù)制數(shù)據(jù)替換第一屏幕中要復(fù)制的數(shù)據(jù)的指令序列,所述復(fù)制數(shù)據(jù)是通過從第一屏幕中復(fù)制介于開始標(biāo)簽和結(jié)束標(biāo)簽之間的這個(gè)數(shù)據(jù)而獲得的。
5.如權(quán)利要求4所述的系統(tǒng),其中多個(gè)屏幕中的每一個(gè)是依照超文本標(biāo)記語言、即HTML描述的網(wǎng)頁,所述應(yīng)用程序是依照J(rèn)avaScript描述的修改程序,并且修改此網(wǎng)頁上的顯示,所述提取部件提取用于從HTML文檔中提取文檔對(duì)象的指令、以及用于根據(jù)修改程序修改所提取的文檔對(duì)象的指令,作為樹操作指令序列,并且所述生成部件把樹操作指令序列變換為用于通過復(fù)制從HTML文檔提取的文檔對(duì)象而生成復(fù)制數(shù)據(jù)、修改復(fù)制數(shù)據(jù)、并且用修改后的復(fù)制數(shù)據(jù)替換從HTML文檔中提取的文檔對(duì)象的指令序列。
6.如權(quán)利要求1所述的系統(tǒng),其中所述規(guī)范存儲(chǔ)部件存儲(chǔ)多個(gè)用于規(guī)定將要由多個(gè)屏幕滿足的規(guī)范的模式信息,以及使顯示從多個(gè)屏幕中的每一個(gè)改變?yōu)槠渌聊恢械拿恳粋€(gè)的事件,對(duì)于多個(gè)屏幕中的每一個(gè),所述提取部件根據(jù)對(duì)應(yīng)于此屏幕的模式信息和能夠在顯示此屏幕期間生成的事件來提取部分程序,所述部分程序在顯示此屏幕期間響應(yīng)于事件的出現(xiàn)而被執(zhí)行,對(duì)于多個(gè)模式信息中的每一個(gè),所述生成部件根據(jù)將要在顯示此屏幕期間執(zhí)行的部分程序,從滿足此模式信息的一組屏幕生成中間程序,所述中間程序用于計(jì)算在顯示這個(gè)滿足的組中的屏幕期間出現(xiàn)所述事件的條件下要顯示的一組屏幕,并且在初始屏幕的第一屏幕滿足第一模式信息、并且通過向每一個(gè)模式信息應(yīng)用中間程序而獲得的一組屏幕滿足用于規(guī)定緊接著滿足此模式信息的屏幕顯示的屏幕的規(guī)范的模式信息的條件下,所述確定部件確定多個(gè)屏幕滿足制定的規(guī)范。
7.一種用于借助于信息處理設(shè)備來確定將要由應(yīng)用程序順序顯示的多個(gè)屏幕是否滿足制定的規(guī)范的方法,所述信息處理設(shè)備包括規(guī)范存儲(chǔ)部件,用于存儲(chǔ)用來規(guī)定將要由第一屏幕滿足的規(guī)范的第一模式信息,用來規(guī)定將要由第二屏幕滿足的規(guī)范的第二模式信息,以及使應(yīng)用程序進(jìn)行的顯示從第一屏幕改變?yōu)榈诙聊坏氖录?,并且所述方法包括如下步驟根據(jù)第一模式信息和所述事件,從應(yīng)用程序中提取部分程序,所述部分程序在顯示滿足第一模式信息的任何屏幕期間響應(yīng)于事件的出現(xiàn)而被執(zhí)行;根據(jù)部分程序,從滿足第一模式信息的一組屏幕生成中間程序,所述中間程序用于計(jì)算在顯示這個(gè)滿足的組中的屏幕期間出現(xiàn)了所述事件的條件下要顯示的一組屏幕;并且在第一屏幕滿足第一模式信息、并且通過向第一模式信息應(yīng)用中間程序而獲得的一組屏幕滿足第二模式信息的條件下,確定多個(gè)屏幕滿足制定的規(guī)范。
全文摘要
在不執(zhí)行程序的情況下,確定將要通過這個(gè)程序的處理而順序顯示的多個(gè)屏幕是否滿足規(guī)范。本發(fā)明的系統(tǒng)存儲(chǔ)用于規(guī)定第一屏幕的規(guī)范的第一模式,用于規(guī)定第二屏幕的規(guī)范的第二模式,以及將程序進(jìn)行的顯示從第一屏幕切換至第二屏幕的事件。首先,根據(jù)第一模式和所述事件,從程序中提取響應(yīng)于在顯示滿足第一模式的屏幕期間生成的事件而執(zhí)行的部分程序。接著,根據(jù)部分程序來生成中間程序,所述中間程序用于計(jì)算響應(yīng)于在顯示滿足第一模式的一組屏幕中的屏幕期間從這個(gè)組中生成的事件而顯示的一組屏幕。接著,在第一屏幕滿足第一模式、并且通過向第一模式應(yīng)用中間程序而獲得的一組屏幕滿足第二模式的條件下,確定這些屏幕滿足規(guī)范。
文檔編號(hào)G06F17/30GK101051268SQ20071009216
公開日2007年10月10日 申請(qǐng)日期2007年4月2日 優(yōu)先權(quán)日2006年4月3日
發(fā)明者立石孝彰, 齊藤新, 宮下尚, 田渕直, 戶澤晶彥 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1