專利名稱:用戶增強(qiáng)的反向工程的制作方法
技術(shù)領(lǐng)域:
以下一般涉及代碼庫、二進(jìn)制代碼和數(shù)據(jù)庫反向工程及代碼庫、二進(jìn)制代碼和數(shù)據(jù)庫的視覺表示的領(lǐng)域。
背景技術(shù):
通常說來,圖像具有數(shù)千字。對(duì)于試圖在預(yù)先存在的代碼庫上工作或以其它方式創(chuàng)建代碼庫二進(jìn)制代碼或反向工程數(shù)據(jù)庫的視覺表示的人而言,這種說法尤其正確。隨著計(jì)算機(jī)硬件和軟件功能性的進(jìn)步,代碼庫已經(jīng)變得越來越大且復(fù)雜。通常,很多不同的程序員將利用單個(gè)代碼庫或項(xiàng)目。這些人可能不熟悉代碼庫的所有元素,因此可能需要代碼庫的總“圖”,或者他們可能需要關(guān)于代碼庫內(nèi)的特定結(jié)構(gòu)的信息。為了幫助具有該問題的人,已經(jīng)開發(fā)出多種程序,其以流程圖、運(yùn)行圖、時(shí)序圖、樹等方式提供代碼庫的圖形表示。 通??蓪⑻峁┐a庫的圖形表示的這些程序分成兩組靜態(tài)分析制圖程序和運(yùn)行時(shí)間分析制圖程序。靜態(tài)分析程序更加普遍,但它們?cè)诤芏喾矫媸艿较拗啤=?jīng)歷靜態(tài)分析的代碼庫可能具有很多靜態(tài)分析不能解決的“邊界”。此外,靜態(tài)分析不能確定代碼庫的實(shí)際功能,且它們可能不能定位錯(cuò)誤和類似物。此外,靜態(tài)代碼庫可能不能聚焦在代碼庫的概覽以及特定類、函數(shù)、調(diào)用、算法、元素、值、參數(shù)、序列、分量、活動(dòng)等。類似,運(yùn)行時(shí)間表示具有一系列問題。如果系統(tǒng)具有錯(cuò)誤或差錯(cuò),使得運(yùn)行不能完成,則運(yùn)行時(shí)間表示可能失敗。此外,該運(yùn)行僅可跟隨動(dòng)作的特定過程,且可能不會(huì)提供全部表示。其它問題可與靜態(tài)和動(dòng)態(tài)表示的任一個(gè)或兩者相關(guān)聯(lián)。因此,需要克服靜態(tài)和運(yùn)行時(shí)間代碼庫圖中的問題的系統(tǒng)和方法。
發(fā)明內(nèi)容
在一實(shí)施例中,為了克服與代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的靜態(tài)和運(yùn)行時(shí)間圖形表示相關(guān)聯(lián)的限制,可向用戶提供在代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的處理期間“聚焦”圖形表示的生成的選項(xiàng)。例如,在大代碼庫的圖形生成期間,用戶可選擇一個(gè)或多個(gè)類、項(xiàng)、算法、值、項(xiàng)、協(xié)議、序列、分量、活動(dòng)、使用案例、進(jìn)程等以限制圖形表示生成的范圍。例如,在代碼庫的圖形表示的生成期間,用戶可暫停圖形生成,提供去除或選擇圖形生成的一個(gè)或多個(gè)元素的輸入,這可將生成的剩余部分限制在僅與期望元素有關(guān)的那些子元素。在另一個(gè)實(shí)施例中,圖形生成可遇到一個(gè)或多個(gè)預(yù)定的邊界條件。在遇到邊界條件后,圖形表示的生成可確定在沒有附加指令的情況下它不能在預(yù)定的一組要求內(nèi)完成圖形生成。因此,生成可繼續(xù)而不完成邊界條件,直到生成已經(jīng)創(chuàng)建它能創(chuàng)建的每個(gè)元素的表示,或者生成可在遇到邊界條件時(shí)暫停并在繼續(xù)生成的剩余部分之前請(qǐng)求用戶輸入。可按各種方式定義邊界條件。在一個(gè)實(shí)施例中,缺少存儲(chǔ)器可能是邊界條件。在另一個(gè)實(shí)施例中,關(guān)于生成將花費(fèi)特定時(shí)間量的確定是邊界條件。在又一個(gè)實(shí)施例中,關(guān)于代碼的一個(gè)或多個(gè)部分需要來自外部數(shù)據(jù)庫或源的輸入的確定可以是邊界條件。在另一個(gè)實(shí)施例中,當(dāng)有代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的可向函數(shù)、進(jìn)程、調(diào)用等提供解的多個(gè)部分時(shí),系統(tǒng)可向用戶提示可能的解且用戶然后可選擇期望的解。此外,用戶可向反向工程提供指令,使得生成將特定限制視為邊界條件。換言之,邊界條件也可以是用戶定義的。本領(lǐng)域的技術(shù)人員將意識(shí)到以上不是邊界條件的窮盡列表,而是僅僅提供幾個(gè)示例以便一般地描述用戶增強(qiáng)的反向工程。在另一個(gè)實(shí)施例中,用戶增強(qiáng)的反向工程可包括在圖形表示的生成期間實(shí)時(shí)接收來自用戶的輸入的可能性并且還可包括檢測(cè)一個(gè)或 多個(gè)預(yù)定邊界條件并向用戶提供用于輸入邊界條件相關(guān)信息的界面的能力。因此,在圖形表示的生成期間,用戶可向系統(tǒng)提供輸入以完成先前不可能的生成,并且用戶還可在生成本身期間指導(dǎo)圖形生成,因此聚焦在代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的與用戶有關(guān)的部分上。在另一個(gè)實(shí)施例中,可在代碼庫等的靜態(tài)生成期間和/或在代碼庫等的運(yùn)行時(shí)間生成期間提供上述實(shí)施例中的任一種。在任意類型的生成期間,構(gòu)想到可提供用于信息輸入的用戶界面以便允許用戶聚焦代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等或允許用戶滿足對(duì)預(yù)先確定的邊界條件的解的請(qǐng)求。
圖I描繪了其中可實(shí)現(xiàn)所公開的主題的示例計(jì)算機(jī)系統(tǒng)。圖2描繪用戶增強(qiáng)的反向工程的各方面的操作的流程圖。圖3描繪在用戶增強(qiáng)的反向工程中的邊界條件的各方面的操作的流程圖。圖4描繪代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的采樣圖形表示,其中代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等具有邊界條件。圖5 (a)- (b)描繪代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的采樣圖形表示,其中已經(jīng)從圖形生成中排除代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的一部分。圖6描繪克服代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等中的邊界條件的示例方法的流程圖。圖7描繪利用活動(dòng)環(huán)境來指導(dǎo)代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的圖形表示的生成的方法的一個(gè)實(shí)施例的流程圖。圖8描繪具有用于用戶增強(qiáng)的反向工程的指令的計(jì)算機(jī)可讀介質(zhì)的一個(gè)實(shí)施例的流程圖。
具體實(shí)施例方式盡管在不包括所有其它選項(xiàng)的情況下在以下說明書中一般地引用“代碼庫”,然而應(yīng)理解本文公開的實(shí)施例包括任何其它類的代碼庫、計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)的指令、數(shù)據(jù)庫模式、二進(jìn)制模式、數(shù)據(jù)庫、代碼數(shù)據(jù)庫、代碼等。在一個(gè)實(shí)施例中,用戶增強(qiáng)的反向工程包括用于創(chuàng)建代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的圖形表示的計(jì)算機(jī)實(shí)現(xiàn)的交互式方法。該方法包括生成代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的第一部分的圖形表示;確定存在預(yù)定的邊界條件;向用戶提示與邊界條件有關(guān)的輸入;接收關(guān)于邊界條件的用戶輸入;以及生成所述代碼庫、數(shù)據(jù)庫模式、二進(jìn)制數(shù)據(jù)庫等的第二部分的圖形表示。
在另一個(gè)實(shí)施例中,用戶增強(qiáng)反向工程包括用于創(chuàng)建代碼庫的圖形表示的計(jì)算機(jī)實(shí)現(xiàn)的交互式方法。該方法包括審閱代碼庫的第一部分;生成代碼庫的第一部分的圖形表示;在顯示器上顯示代碼庫的第一部分的圖形表示;在該圖形表示的第一部分的生成期間接收輸入,其中該輸入包括所述圖形表示的生成的中斷;以及恢復(fù)圖形表示的生成,其中所述恢復(fù)的生成從圖形表示中排除代碼庫的第二部分。在另一個(gè)實(shí)施例中,用戶增強(qiáng)的反向工程包括其上存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令用于在處理器上執(zhí)行。這些指令包括用于進(jìn)行以下操作的指令審閱代碼庫的第一部分;生成代碼庫的第一部分的圖形表示;接收輸入,其中該輸入改變圖形表示的范圍;審閱代碼庫的第二部分;生成代碼庫的第二部分的圖形表示;以及顯示代碼庫的圖形表不。用于增強(qiáng)的反向工程的各實(shí)施例可以在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上執(zhí)行。圖I及以下討論旨在提供可在其中實(shí)現(xiàn)所公開的主題的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。貫穿本說明書使用的術(shù)語電路可包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件。術(shù)語“電路”還可包括微處理器、專用集成電路、和/或一個(gè)或多個(gè)邏輯處理器,例如由固件和/或軟件配置的多核通用處理單元的一個(gè)或多個(gè)核。邏輯處理器可由指令來配置,指令具體化可用于執(zhí)行從例如RAM、R0M、固件和/或大容量存儲(chǔ)等存儲(chǔ)器加載的功能的邏輯。在其中電路包括硬件和軟件的組合的示例實(shí)施例中,實(shí)現(xiàn)者可以編寫具體化邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件實(shí)現(xiàn)的功能或軟件實(shí)現(xiàn)的功能之間幾乎沒有差別的地步,因而選擇硬件還是軟件來實(shí)現(xiàn)此處描述的功能只是一個(gè)設(shè)計(jì)選擇。換言之,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實(shí)現(xiàn)或是軟件實(shí)現(xiàn)留給了實(shí)現(xiàn)者。現(xiàn)在參考圖1,描繪了示例性計(jì)算系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100可包括邏輯處理器102,例如,執(zhí)行核。盡管示出了一個(gè)邏輯處理器102,但在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可具有多個(gè)邏輯處理器,例如每一處理器基板有多個(gè)執(zhí)行核,和/或各自可具有多個(gè)執(zhí)行核的多個(gè)處理器基板。如圖I所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可由一個(gè)或多個(gè)系統(tǒng)總線互聯(lián),系統(tǒng)總線將各種系統(tǒng)組件耦合到邏輯處理器102。系統(tǒng)總線可以是幾種類型的總線·結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。在示例實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)存取存儲(chǔ)器(RAM) 104、存儲(chǔ)設(shè)備106 (例如電機(jī)硬盤驅(qū)動(dòng)器、固態(tài)硬盤驅(qū)動(dòng)器等)、固件108(例如閃速RAM或ROM)、以及可移動(dòng)存儲(chǔ)設(shè)備118 (例如⑶-ROM、軟盤、DVD、閃速驅(qū)動(dòng)器、夕卜部存儲(chǔ)設(shè)備等)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可使用其他類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如磁帶盒、閃存卡、和/或數(shù)字視頻盤。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可提供對(duì)計(jì)算機(jī)100的處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性和易失性存儲(chǔ)?;据斎?輸出系統(tǒng)(BIOS) 120可被存儲(chǔ)在固件108中,它包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)系統(tǒng)100內(nèi)的各元件之間傳遞信息的基本例程。若干個(gè)程序可被存儲(chǔ)在固件108、存儲(chǔ)設(shè)備106、RAM 104和/或可移動(dòng)存儲(chǔ)設(shè)備118上,并且可由邏輯處理器102來執(zhí)行,包括操作系統(tǒng)和/或應(yīng)用程序。
命令和信息可由計(jì)算機(jī)100通過輸入設(shè)備116來接收,輸入設(shè)備可包括但不限于鍵盤和定點(diǎn)設(shè)備。其它輸入設(shè)備可以包括話筒、操縱桿、游戲手柄、掃描儀等等。這些和其它輸入設(shè)備常通過耦合到系統(tǒng)總線的串行端口接口連接到邏輯處理器102,但也可通過其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器或其他類型的顯示設(shè)備也可經(jīng)由諸如視頻適配器等可以是圖形處理單元112的一部分或可連接到圖形處理器單元112的接口來連接到系統(tǒng)總線。除了顯示器之外,計(jì)算機(jī)通常包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖I的示例性系統(tǒng)還可包括主適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線和連接到SCSI總線的外部存儲(chǔ)設(shè)備。計(jì)算機(jī)系統(tǒng)100可以使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中工作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面關(guān)于計(jì)算機(jī)系統(tǒng)100所述的許多或全部元件。當(dāng)在LAN或WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可通過網(wǎng)絡(luò)接口卡(NIC) 114連接至LAN或WAN。NIC 114 (可以是內(nèi)部的或外部的)可被連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境 中,相對(duì)于計(jì)算機(jī)系統(tǒng)100或其部分所描述的程序模塊可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫猓枋龅木W(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。此外,盡管可想到的是可實(shí)現(xiàn)的所公開的主題的許多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng),但是在本文檔中不意味著將所公開的主題限于這些實(shí)施例。圖2描繪邏輯流程圖200的一種可能,描繪用戶增強(qiáng)的反向工程的實(shí)現(xiàn)。圖2描繪基于輸入201在202發(fā)起圖形生成。在202發(fā)起的圖形生成包括本領(lǐng)域已知的代碼庫的任何視覺表示。因此,在一個(gè)實(shí)施例中,圖形生成可以是例如流程圖、運(yùn)行圖、時(shí)序圖、時(shí)序圖表、樹圖或圖表、曲線圖、圖像或表示代碼庫或代碼庫的功能性的任何其它方式。在202發(fā)起的圖形生成的結(jié)構(gòu)也可以是本領(lǐng)域中已知的任何結(jié)構(gòu)。圖形生成可以例如跟蹤代碼庫的一個(gè)或多個(gè)特定方面。圖形表示可以是任何上述圖形表示,該圖形表示可繪制特定進(jìn)程、值、元素、類、序列、分量、時(shí)間幀、活動(dòng)、使用案例、參數(shù)、功能性、子進(jìn)程、元素、輸入、輸出、項(xiàng)、算法等,且它可表示輸入、輸出、進(jìn)程、序列、元素、值、參數(shù)、功能性、子進(jìn)程、項(xiàng)等的時(shí)序,且還可基于存儲(chǔ)器、內(nèi)部關(guān)系、外部關(guān)系或以本領(lǐng)域中已知的任何其它方式來構(gòu)造。在實(shí)施例中,在202發(fā)起圖形生成之前,可提供一個(gè)或多個(gè)輸入201以指導(dǎo)用戶實(shí)現(xiàn)的反向工程程序的一個(gè)或多個(gè)方面。例如,一個(gè)或多個(gè)輸入可用于在發(fā)起生成之前將圖形表示的生成聚焦在特定元素上。輸入201可以是可縮小、指導(dǎo)、聚焦或以其它方式改變圖形表示的生成的任何值。作為另一個(gè)示例,對(duì)用戶增強(qiáng)的反向工程的輸入201可以是用戶期望的圖形表示的類型的選擇,例如,時(shí)序圖或流程圖。此外,輸入201可限定圖形生成的結(jié)構(gòu)。在一個(gè)實(shí)施例中,用戶可提供一個(gè)或多個(gè)輸入201以建立圖形生成的邊界條件。例如,一個(gè)或多個(gè)邊界條件可以是預(yù)先確定的。在這一實(shí)施例中,對(duì)圖形生成的輸入可導(dǎo)致用戶增強(qiáng)的反向工程增加邊界條件。作為另一個(gè)實(shí)施例,可利用輸入201來改變先前設(shè)定的邊界條件。作為一個(gè)非限定的特定示例,用戶可在系統(tǒng)將確定其已經(jīng)到達(dá)邊界條件之前選擇分配給圖形生成的時(shí)間量。在這一示例中,用戶可指定5分鐘的時(shí)間限制,其中當(dāng)確定圖形生成會(huì)花費(fèi)多于邊界條件中分配的時(shí)間時(shí),用戶增強(qiáng)的反向工程向用戶提供界面,該界面允許他們以一種或多種方式指導(dǎo)圖形表示的生成。在一個(gè)實(shí)施例中,無論圖形生成的結(jié)構(gòu)、圖形表示的類型、預(yù)先選擇的邊界條件及任何其它最初輸入201如何,在202發(fā)起圖形生成。在發(fā)起202之后,圖形生成可包括用戶界面204。用戶界面204允許對(duì)圖形生成的信息輸入。用戶可在生成期間和/或生成完成之后輸入對(duì)圖形生成的輸入。用戶界面204可通過從本領(lǐng)域中已知的用戶、程序或系統(tǒng)接收輸入的任何方式來實(shí)現(xiàn)。例如,用戶界面可允許經(jīng)由鼠標(biāo)點(diǎn)擊、鍵盤、操縱桿中的一個(gè)或多個(gè)、通過語音激活、觸摸墊或觸摸屏、有線或無線連接或本領(lǐng)域的技術(shù)人員已知的任何其它方式輸入信息。在圖形表示的生成期間,可在顯示器205上顯示生成的已完成部分。例如,每當(dāng)用戶增強(qiáng)的反向工程程序確定例如流程圖中的下一步,該步可顯示在輸出設(shè)備上,205。輸出設(shè)備可以是本領(lǐng)域中已知的用于向用戶顯示視覺信息的任何設(shè)備。在一個(gè)實(shí)施例中,輸出被顯示在屏幕上或被投影,使得可看到圖形生成。被顯示的圖形生成的部分(205)可與用戶界面(204)相關(guān)聯(lián)。例如,在一個(gè)實(shí)施例中,對(duì)于圖形表示中顯示的每個(gè)元素,輸入可與該元素相關(guān)聯(lián)。例如,如果已經(jīng)構(gòu)建流程圖,且已經(jīng)顯示流程圖中的5步,則用戶可在五步中的任一個(gè)上移動(dòng)鼠標(biāo)并點(diǎn)擊,由此提供與流程圖的所選圖形元素相關(guān)聯(lián)的輸入。該特定元素的選擇可提供關(guān)于該特定元素的來自用戶的全部輸入,或者它可用于限制用戶的可能輸入。作為用戶界面204的另一個(gè)非限制性示例,可提供單個(gè)用戶界面204,不管圖形表示上顯示的元素的數(shù)量如何。例如,可以存在供用戶在任意時(shí)間暫停圖形生成的選項(xiàng)。在暫停之后,可提供附加的用戶輸入,以引導(dǎo)、聚焦或以其它方式提供對(duì)圖形生成的輸入。因此,當(dāng)運(yùn)行用戶增強(qiáng)的反向工程200時(shí),其配置成在206接收任意上述輸入。如果在206沒有接收到輸入,則生成過程可繼續(xù)。然而,如果在206接收到輸入,則輸入可具有與其相關(guān)聯(lián)的圖形生成的中斷208。作為另一個(gè)示例,輸入可被配置成中斷圖形生成208。圖形生成的中斷208可以是導(dǎo)致系統(tǒng)暫停審閱代碼庫并且還可使其停止向圖形顯示增加圖形元素的中斷。盡管可在208中斷圖形生成,但用戶增強(qiáng)的反向工程可在中斷點(diǎn)之前保持與圖形生成相關(guān)聯(lián)的信息。在圖形生成的中斷208之后,用戶增強(qiáng)的反向工程可從用戶請(qǐng)求附加輸入,或者從用戶界面提供的輸入204可足以發(fā)起恢復(fù)的圖形生成210。例如在206接收的輸入可僅包括中斷208。在這一示例中,可提示用戶提供附加輸入以指導(dǎo)生成。 然而,在另一個(gè)實(shí)施例中,中斷輸入還可被配置成指導(dǎo)在210處恢復(fù)的圖形表示的生成。例如,如果用戶通過點(diǎn)擊它選擇流程圖的單個(gè)元素,則系統(tǒng)可中斷圖形表示的最初生成,然后恢復(fù)圖形生成,其中經(jīng)恢復(fù)的生成聚焦在流程圖的被點(diǎn)擊的方面。因此,在接收足以恢復(fù)圖形生成的用戶輸入之后,可向用戶提供在210處恢復(fù)圖形生成的選項(xiàng),或者,作為另一個(gè)示例,圖形生成可在210處自動(dòng)恢復(fù)。在任一情況下,生成可恢復(fù),且在用戶期望包括附加輸入的情況下將再次向用戶提供上述用戶界面。在圖形表示生成期間的任何時(shí)間,用戶增強(qiáng)的反向工程可遇到212處的預(yù)先確定的邊界條件。在一個(gè)實(shí)施例中,預(yù)先確定的邊界條件可以是生成不能完成圖形表示的任何情況。例如,如果經(jīng)歷圖形生成的代碼庫需要不可用于代碼庫的外部輸入,則圖形生成可確定有邊界條件212。作為另一個(gè)示例,如果在代碼庫內(nèi),有對(duì)調(diào)用、問題、算法等的若干可能解,則系統(tǒng)可確定有邊界條件212。防止圖形表示完成的任何其它限制將是本領(lǐng)域的技術(shù)人員已知的,且這些限制被包含于此。在附加實(shí)施例中,可基于其它因素預(yù)先確定邊界條件,諸如提供圖形表示花費(fèi)的時(shí)間或存儲(chǔ)器的量或顯示器上的空間。例如,如果完成生成的一部分(包括但不限于全部)的時(shí)間量超過預(yù)先確定的量,則用戶增強(qiáng)的反向工程可確定有邊界條件212。在確定有邊界條件212之后,可向用戶提示解214。作為一個(gè)示例,界面可開啟、彈出、變?yōu)榛顒?dòng)等,在生成恢復(fù)之前它需要用戶輸入信息。作為提示解214的一個(gè)示例,圖形生成可運(yùn)行,且用戶增強(qiáng)的反向工程200可確定在代碼庫中存在對(duì)調(diào)用、元素、進(jìn)程、算法等的有限數(shù)量的可用解。作為第一示例,可向用戶提供多個(gè)可能的解,并要求用戶選擇哪個(gè)是適當(dāng)解。在這一示例中,用戶的輸入被僅限于在代碼庫的背景內(nèi)“有意義”的那些解?!ぴ谔崾窘?14的另一個(gè)實(shí)施例中,可按一種或多種方式限制來自用戶的輸入。例如,輸入的類型可僅限于數(shù)字解或具有與其關(guān)聯(lián)的串、函數(shù)、進(jìn)程、元素、值等的解。一般而言,可按可降低來自用戶的不適當(dāng)輸入的可能性的任何方式來限制對(duì)用戶的提示。在提示解214的附加實(shí)施例中,對(duì)可能的輸入沒有設(shè)置任何限制。在這一示例中,用戶可提供可用于它們的任何響應(yīng)。在214處提示解并且通過用戶輸入之后,在216處接收輸入。如果可能,則圖形表示的生成將繼續(xù)216。作為示例,如果在214處的解足以繼續(xù)生成216,則在提供用戶界面之前生成將繼續(xù),并且生成將繼續(xù)直到接收用戶輸入或在212處遇到另一個(gè)邊界條件,或者如果沒有附加用戶輸入或沒有遇到邊界條件,則在218處生成將完成。在216處接收的解可按本領(lǐng)域已知的任何方式影響生成前進(jìn)。應(yīng)注意,圖2描繪用戶增強(qiáng)的反向工程的一個(gè)示例。在另一個(gè)實(shí)施例中,可不提供在204處的用戶界面,且生成將繼續(xù),除非遇到邊界條件。在另一個(gè)實(shí)施例中,生成在預(yù)先確定的邊界條件處將不會(huì)暫停,且將僅包括可中斷并影響該生成的用戶界面204。對(duì)圖2描繪的元素的其它增加、或去除或重新排序被視為在用于增強(qiáng)的反向工程的范圍內(nèi),且對(duì)圖2的元素的其它布置可由本領(lǐng)域的技術(shù)人員理解。圖3描繪具有不同于以上參考圖2描述的邏輯的用戶增強(qiáng)的反向工程的另一個(gè)實(shí)施例。例如,在一個(gè)實(shí)施例中,可在254利用輸入252發(fā)起圖形生成。如上所指出的,輸入252可限制生成等的范圍,它們可確定圖形輸出的類型且它們可限定系統(tǒng)的邊界條件。用于用戶增強(qiáng)的反向工程的任何其它輸入可被包含在輸入252中。在接收輸入252并在254發(fā)起圖形生成之后,系統(tǒng)然后可執(zhí)行圖形生成256。在256處的圖形生成期間,可到達(dá)一個(gè)或兩個(gè)或十個(gè)或任一其它數(shù)量的邊界條件。在一個(gè)實(shí)施例中,在每次確定有邊界條件時(shí),圖形生成可不暫停。相反,可僅在生成已經(jīng)滿足輸入的要求或者已經(jīng)以其它方式對(duì)代碼的第一部分執(zhí)行盡可能多的圖形生成之后暫停圖形生成。在一個(gè)實(shí)施例中,執(zhí)行盡可能多的生成而沒有使用戶輸入對(duì)邊界條件作出響應(yīng)可減少用戶輸入不適當(dāng)信息的可能性。在圖形生成256之后,用戶增強(qiáng)的反向工程可提供圖形表示,示出該生成和代碼庫中的邊界條件258的一個(gè)或多個(gè)實(shí)例。在一個(gè)實(shí)施例中,可通過本領(lǐng)域中已知的任意方式在顯示器上標(biāo)識(shí)每個(gè)邊界條件258。在標(biāo)識(shí)邊界條件258之后,可提示用戶檢查邊界條件260。在一個(gè)實(shí)施例中,每個(gè)界面可提供對(duì)每個(gè)邊界條件的訪問并允許通過用戶的輸入。可參考圖2以上述方式中的任一種限制通過用戶的輸入。用戶可選擇以滿足圖形生成突出顯示的每個(gè)邊界條件或者他們可選擇地提供對(duì)邊界條件的解。因此,用戶可選擇地提供對(duì)于任意數(shù)量的邊界條件的輸入。當(dāng)用戶響應(yīng)于在260處的提示輸入對(duì)邊界條件的解時(shí),在262,用戶增強(qiáng)的反向工程可接收解。在接收所有的解之后,或者基于來自用戶的輸入,用戶增強(qiáng)的反向工程可在具有對(duì)邊界條件的解的部分上執(zhí)行代碼庫的圖形生成。在生成262中,可發(fā)現(xiàn)新的邊界條件。在260,可再次向用戶進(jìn)行提示,以滿足那些邊界條件。換言之,進(jìn)程可繼續(xù)直到?jīng)]有更多的邊界條件或直到用戶已經(jīng)對(duì)他希望的所有的邊界條件提供輸入,在那時(shí)將完成圖形生成264。圖4描繪系統(tǒng)不能確定代碼庫中的調(diào)用的解的邊界條件的示例。在圖4中,進(jìn)程的圖形生成300發(fā)生,且圖4的流程圖可以是例如代碼庫的進(jìn)程的圖形表示300。生成可確定進(jìn)程的開始點(diǎn)302。從開始點(diǎn)302,生成接下來可確定進(jìn)程300已經(jīng)與進(jìn)程A相關(guān)聯(lián),·304。進(jìn)程A可基于在304處對(duì)進(jìn)程A的“是”或“否”解,在306輸出值I和在312輸出值
2。306處的值I和312處的值2可由308處的算法B和316處的算法A利用。然而,在該點(diǎn),生成可確定它需要來自外部數(shù)據(jù)庫I的值,310。如果在310來自外部數(shù)據(jù)庫I的信息不可用于生成,則生成可確定它不能完成圖形表示300。在這種情況下,用戶增強(qiáng)的反向工程可提示用戶在320處輸入以便完成圖形生成。圖4描繪由于在310處外部數(shù)據(jù)庫I中包含的信息不可用于用戶增強(qiáng)的反向工程而不能完成圖形生成的實(shí)施例。如上所述,這僅為一個(gè)邊界條件,且該圖不旨在限制可能出現(xiàn)的各種類型的邊界條件。如上所述,用戶、程序員等可選擇任意條件并預(yù)先確定所選的條件具有與之相關(guān)聯(lián)的邊界條件。此外,本領(lǐng)域的技術(shù)人員將意識(shí)到用戶增強(qiáng)的反向工程可被配置成將諸如時(shí)間、存儲(chǔ)器、丟失元素、一組可能元素等的任意條件納入作為預(yù)先確定的邊界條件。圖5 (a)_圖5 (b)描繪基于來自用戶的輸入聚焦圖形生成的結(jié)果的示例實(shí)施例。圖5 (a)- (b)表示進(jìn)程中的圖形生成的顯示,其中圖形生成包括開始點(diǎn)402。如上參考圖2所指出的,當(dāng)圖形生成開始202時(shí),可提供用于輸入的界面。盡管圖5 (a)- (b)中未描繪,但當(dāng)創(chuàng)建圖5 (a)- (b)中的圖時(shí),應(yīng)理解向用戶提供用于輸入的界面。在404,可審閱代碼庫的第一層,并且顯示可包括示出若干進(jìn)程的圖形生成。在圖5 (a)的示例中,描繪了進(jìn)程A-YY。在圖5 (a),在404處的層I的圖形生成之后,用戶增強(qiáng)的反向工程接下來可轉(zhuǎn)到層2,406,并且開始該層的圖形生成。層2可包括代碼庫的任意元素且可按本領(lǐng)域中已知的任何方式來表示。然而,參考圖5(a),基于最初進(jìn)程的數(shù)量,并且假設(shè)對(duì)于404處層I中的每個(gè)進(jìn)程406處的層2中至少有兩個(gè)或三個(gè)元素,圖形顯示已經(jīng)變大且笨重。圖5 (b)描繪用戶已經(jīng)提供輸入之后的圖形表示。在圖5 (b),在408,用戶選擇層I的進(jìn)程B。因此,對(duì)于生成余下部分,排除404處層I和406處層2的剩余部分。事實(shí)上,如圖5 (b)所描繪的,在408選擇進(jìn)程B可排除所有的層3或與進(jìn)程A或進(jìn)程C至進(jìn)程YY中的任一個(gè)有關(guān)的其它函數(shù)。因此,通過向用戶提供界面以中斷圖形生成并提供輸入并基于該輸入排除一部分代碼庫,可極大地降低圖形生成的復(fù)雜性、時(shí)間和混亂。
圖6描繪用于在用戶增強(qiáng)的反向工程期間對(duì)邊界條件進(jìn)行響應(yīng)的示例實(shí)施例的流程。在步驟502,用戶增強(qiáng)的反向工程可生成代碼庫的第一部分的圖形表示。生成代碼庫的第一部分502可包括接收用戶輸入以設(shè)置圖形表示的類型并設(shè)立或?qū)崿F(xiàn)用戶界面以設(shè)置或改變邊界條件以聚焦生成等。生成還可包括審閱代碼,其中該審閱是靜態(tài)分析或運(yùn)行時(shí)間分析,以及創(chuàng)建可在顯示器上顯示的代碼的圖形表示。在步驟504,用戶增強(qiáng)的反向工程可確定預(yù)定的邊界條件。邊界條件可由用戶或程序員限定,或者它們可出現(xiàn)在代碼本身內(nèi)。在一個(gè)實(shí)施例中,邊界條件涉及存儲(chǔ)器或時(shí)間。在另一個(gè)實(shí)施例中,邊界條件涉及代碼本身內(nèi)的多個(gè)可能的解,和/或邊界條件可涉及不能從諸如數(shù)據(jù)庫、程序等外部源獲得信息。其它邊界條件是可能的,且本領(lǐng)域的技術(shù)人員將理解上述不是限制性的而是僅提供邊界條件的幾個(gè)示例。步驟504調(diào)用邊界條件。應(yīng)理解,在一個(gè)實(shí)施例中,發(fā)現(xiàn)存在多個(gè)邊界條件。用戶增強(qiáng)的反向工程可在解決邊界條件之前完成圖形表示的生成的任意部分。因此,在一個(gè)實(shí)施例中,如果在提示用戶提供對(duì)邊界條件的解之前發(fā)生全靜態(tài)生成,則用戶輸入較不可能 出錯(cuò)。在步驟506,可提示用戶提供與在504發(fā)現(xiàn)存在的邊界條件有關(guān)的輸入。對(duì)用戶的提示可以在圖形顯示器上。提示可具有用戶可從中進(jìn)行選擇的有限數(shù)量的選項(xiàng),或者它可以是對(duì)輸入的開放請(qǐng)求。提示也可被限于一種類型的輸入,諸如特定長(zhǎng)度的數(shù)字、字母、串或任意其它類型的輸入。本領(lǐng)域的技術(shù)人員將意識(shí)到以上不限于提示是什么或用戶可被提示做什么,相反僅僅提供與提示有關(guān)的一系列示例。在508,可接收來自用戶的輸入??砂幢绢I(lǐng)域中已知的任何方式提供用戶輸入,例如,經(jīng)由鍵盤或鼠標(biāo)、觸摸墊或觸摸屏、語音激活、有線或無線連接或任何其它方式。該輸入可與邊界條件有關(guān)且可按一種或多種方式影響圖形生成。例如,接收對(duì)邊界條件的解可允許用戶增強(qiáng)的反向工程構(gòu)建出代碼庫的新部分的表示,或者它可聚焦生成,或者它可縮小圖形表示的范圍。在圖6的510,在一個(gè)實(shí)施例中可恢復(fù)圖形生成。在另一個(gè)實(shí)施例中,它可以不同的參數(shù)重新開始,或者它可保持先前生成的一部分并發(fā)起代碼庫的另一部分的新生成。第二部分可按任意方式縮小的再生成,經(jīng)歷更廣闊的生成或聚焦。如上所述,可以有單個(gè)滿足的邊界條件,或者可滿足多個(gè)邊界條件。因此,生成的第二部分可與單個(gè)邊界條件的解有關(guān),或者它可與多個(gè)邊界條件的解有關(guān)。圖7描繪用于用戶提供輸入以影響圖形生成的用戶增強(qiáng)的反向工程的示例實(shí)施例的流程圖。在步驟602,用戶增強(qiáng)的反向工程可生成代碼庫的第一部分的圖形表示。生成代碼庫的第一部分602可包括接收用戶輸入以設(shè)置圖形表示的類型,以設(shè)置或改變邊界條件,以設(shè)立或?qū)崿F(xiàn)用戶界面,以聚焦生成等。生成還可包括審閱代碼,其中該審閱是靜態(tài)分析或運(yùn)行時(shí)間分析,以及創(chuàng)建可在顯示器上顯示的代碼的圖形表示。在步驟604,用戶增強(qiáng)的反向工程可包括顯示代碼庫的第一部分的圖形表示604。該顯示可以是向用戶顯示信息的任何裝置或方式,諸如屏幕、投影、聲音等。該顯示可以是實(shí)時(shí)地或大致實(shí)時(shí)的顯示,使得當(dāng)用戶增強(qiáng)的反向工程確定代碼庫的一個(gè)或多個(gè)元素應(yīng)被包含在圖形生成中時(shí),它們被顯示。在604,這可經(jīng)由顯示器以及時(shí)的方式向用戶提供信息。在圖7的步驟606,可向用戶提供界面,其中該界面被配置成接收與圖形生成有關(guān)的輸入。該界面能夠以本領(lǐng)域中已知的任意方式接收輸入。例如,鼠標(biāo)點(diǎn)擊、鍵盤輸入、有線或無線連接、觸摸墊或觸摸屏等可被配置成與界面一起使用。該界面也可與圖形生成的狀態(tài)相關(guān)聯(lián)。例如,當(dāng)生成增加元素時(shí),每個(gè)元素可變?yōu)榻换ナ?,或可以其它方式被包含在界面中,使得用戶可選擇或以其它方式與生成的元素交互。界面606可包括對(duì)圖形生成的任意元素的解、增加或從中減去的輸入。輸入可按本領(lǐng)域中已知的任意方式影響圖形生成,包括聚焦生成、縮小生成或擴(kuò)張生成的范圍。在步驟608,用戶增強(qiáng)的反向工程可在圖形表示的第一部分的生成期間經(jīng)由界面接收輸入,其中該輸入包括圖形表示的生成的中斷。因此,在圖形表示本身的生成期間,用戶可按任何方式提供輸入并影響生成。輸入將中斷生成并允許生成的影響。該生成可被縮小、改變、擴(kuò)張,元素可被排除或聚焦等。在一個(gè)實(shí)施例中,輸入根本不改變生成。以上充當(dāng)幾個(gè)示例,且不限制輸入具有的影響的范圍。輸入還可改變邊界條件等。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到輸入對(duì)圖形表示的生成的影響的其它可能。在步驟610,圖形表示的生成可在中斷后恢復(fù)。經(jīng)恢復(fù)的生成可排除一部分代碼庫,因此縮小生成的范圍。這可以是聚焦的或縮小的結(jié)果。
圖8描繪用戶增強(qiáng)的反向工程的示例實(shí)施例的流程圖。在步驟702,審閱代碼庫的第一部分。該審閱可包括確定代碼庫的元素的功能性或時(shí)序或任意其它方面。在審閱期間,圖形表示可與被審閱的代碼庫的元素相關(guān)聯(lián)。在步驟704,可構(gòu)建代碼庫的第一部分的圖形表示。生成代碼庫的第一部分702可包括接收用戶輸入以設(shè)置圖形表示的類型,以設(shè)置或改變邊界條件,以設(shè)立或?qū)崿F(xiàn)用戶界面,以聚焦生成等。生成還可包括審閱代碼,其中該審閱是靜態(tài)分析或運(yùn)行時(shí)間分析,以及創(chuàng)建可在顯示器上顯示的代碼的圖形表示。在步驟706,可接收對(duì)用戶增強(qiáng)的反向工程的輸入,其中輸入改變圖形表示的范圍。例如,輸入可以是鼠標(biāo)點(diǎn)擊、鍵盤輸入、有線或無線連接、觸摸墊或觸摸屏等可被配置成用作輸入。輸入可包括中斷且可按本領(lǐng)域中已知的方式影響生成的范圍。該生成可被縮小、改變、擴(kuò)張,元素可被排除或聚焦等。在一個(gè)實(shí)施例中,輸入根本不改變生成。以上充當(dāng)幾個(gè)示例,且不限制輸入具有的影響的范圍。輸入還可改變邊界條件等。在一個(gè)實(shí)施例中,對(duì)輸入的請(qǐng)求是對(duì)確定存在邊界條件的響應(yīng)。因此,輸入可以是對(duì)邊界條件的解。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到輸入對(duì)圖形表示的生成的影響的其它可能。在步驟708,可審閱代碼庫的第二部分。該審閱可包括確定代碼庫的元素的功能性或時(shí)序或任意其它方面。在審閱期間,圖形表示可與被審閱的代碼庫的元素相關(guān)聯(lián)。代碼庫的第二部分可以是代碼庫中被輸入影響的任意部分。它可以是較小的部分、新部分、相同部分或其任意組合。第二部分可以是相同類型的圖形表示,或者它可按一種或多種方式不同。第二部分可涉及該生成本身期間的邊界條件或輸入。在710,該第二部分然后可經(jīng)歷圖形表示的生成。這可包括關(guān)聯(lián)元素并在712準(zhǔn)備用于顯示,其中顯示是如上所述本領(lǐng)域中已知的任意顯示。應(yīng)該理解,此處所述的配置和/或方法在本質(zhì)上是示例性的,且這些具體實(shí)施例或示例不被認(rèn)為是限制性的。此處所述的具體例程或方法可表示任何數(shù)量的處理策略中的一個(gè)或多個(gè)。由此,所示出的各個(gè)動(dòng)作可以按所示順序執(zhí)行、按其他順序執(zhí)行、并行地執(zhí)行等等。同樣,可以改變上述過程的次序。
另外,本發(fā)明的主題包括各種過程、系統(tǒng)和配置的組合和子組合、和此處所公開的 其他特征、功能、動(dòng)作、和/或特性、以及其任何和全部等效物。
權(quán)利要求
1.一種用于創(chuàng)建代碼庫的圖形表示的計(jì)算機(jī)執(zhí)行的交互式方法,包括 生成所述代碼庫的第一部分的圖形表示; 確定一個(gè)或多個(gè)預(yù)定邊界條件存在; 提示用戶與所述一個(gè)或多個(gè)邊界條件有關(guān)的輸入; 接收關(guān)于所述一個(gè)或多個(gè)邊界條件的用戶輸入;以及 生成所述代碼庫的第二部分的圖形表示。
2.如權(quán)利要求I所述的方法,其特征在于,還包括向用戶提示用于所述一個(gè)或多個(gè)邊界條件中的每一個(gè)的多個(gè)選項(xiàng),所述多個(gè)選項(xiàng)限制所述輸入。
3.如權(quán)利要求2所述的方法,其特征在于,還包括基于對(duì)所述一個(gè)或多個(gè)邊界條件中的每一個(gè)的可能解來選擇所述多個(gè)選項(xiàng)。
4.如權(quán)利要求I所述的方法,其特征在于,確定邊界條件存在包括確定沒有足夠的存儲(chǔ)器用于生成代碼庫的圖形表示。
5.如權(quán)利要求I所述的方法,其特征在于,確定邊界條件存在包括確定需要來自代碼庫外部的源的數(shù)據(jù)來完成圖形表示的生成。
6.一種用于創(chuàng)建代碼庫的圖形表示的計(jì)算機(jī)執(zhí)行的交互式方法,包括 生成所述代碼庫的第一部分的圖形表示; 顯示所述代碼庫的第一部分的圖形表示; 向用戶提供界面,所述界面配置成接收與所述代碼庫的第一部分的圖形表示的生成有關(guān)的輸入; 在所述圖形表示的第一部分的生成期間經(jīng)由所述界面接收輸入,其中所述輸入包括圖形表示的生成的中斷;以及 將所述圖形表示的生成恢復(fù)為經(jīng)恢復(fù)的生成,其中經(jīng)恢復(fù)的生成從圖形表示中排除所述代碼庫的第二部分。
7.如權(quán)利要求6所述的方法,其特征在于,所述輸入還包括所述代碼庫的第三部分的選擇。
8.如權(quán)利要求7所述的方法,其特征在于,所述代碼庫的從經(jīng)恢復(fù)的生成中排除的第二部分包括所述代碼庫中未被包含在所述代碼庫的所述第三部分中的部分。
9.如權(quán)利要求7所述的方法,其特征在于,所述圖形表示的經(jīng)恢復(fù)的生成包括所述代碼庫的第三部分的圖形表示。
10.一種具有存儲(chǔ)于其上的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在處理器上執(zhí)行,所述指令包括用于以下動(dòng)作的指令 審閱代碼庫的第一部分; 生成所述代碼庫的第一部分的圖形表示; 接收輸入,其中所述輸入改變所述圖形表示的范圍; 審閱所述代碼庫的第二部分; 生成所述代碼庫的第二部分的圖形表示;以及 顯示所述代碼庫的圖形表示。
11.如權(quán)利要求10所述的指令,其特征在于,還包括 提供用于在所述圖形表示的第一部分的生成期間接收指令的界面;經(jīng)由所述界面接收輸入,其中所述指令包括所述第一部分的圖形表示的生成的中斷;以及 恢復(fù)所述圖形表示的生成,其中經(jīng)恢復(fù)的生成從圖形表示中排除所述代碼庫的第三部分。
12.如權(quán)利要求11所述的方法,其特征在于,還包括提供用于在經(jīng)恢復(fù)的圖形表示的生成期間接收請(qǐng)求的界面。
13.如權(quán)利要求10所述的指令,其特征在于,還包括用于確定所述代碼庫的所述第一部分中存在邊界條件的指令。
14.如權(quán)利要求13所述的指令,其特征在于,還包括 提供與所述邊界條件有關(guān)的界面;以及 接收對(duì)邊界條件的解作為來自所述界面的響應(yīng)。
15.如權(quán)利要求14所述的指令,其特征在于,確定邊界條件存在包括確定需要來自代碼庫外部的源的數(shù)據(jù)來完成圖形表示的生成。
全文摘要
本文中公開的是用戶增強(qiáng)的反向工程,其中在一個(gè)實(shí)施例中,在代碼庫、數(shù)據(jù)庫、二進(jìn)制等的圖形表示的生成期間,可向用戶提供用于“聚焦”的選項(xiàng)。例如,在大代碼庫的圖形生成期間,用戶可選擇一個(gè)或多個(gè)物以限制圖形表示生成的范圍。在另一個(gè)實(shí)施例中,圖形生成可遇到一個(gè)或多個(gè)預(yù)定的邊界條件。在遇到邊界條件后,圖形表示的生成可確定在沒有附加指令的情況下它不能在預(yù)定的一組要求內(nèi)完成圖形生成。因此,圖形生成可完成然后向用戶提示它已經(jīng)遇到的任意邊界條件的解,或者該生成可在每次遇到邊界條件時(shí)暫停,并向用戶提示對(duì)邊界條件的解。
文檔編號(hào)G06F3/14GK102947791SQ201180029767
公開日2013年2月27日 申請(qǐng)日期2011年6月6日 優(yōu)先權(quán)日2010年6月18日
發(fā)明者S·杜塔, T·特里溫, A·拜恩 申請(qǐng)人:微軟公司