[發(fā)明專利]使用代碼克隆檢測的智能代碼差分有效
| 申請?zhí)枺?/td> | 201080070705.0 | 申請日: | 2010-12-15 |
| 公開(公告)號: | CN103262047B | 公開(公告)日: | 2016-11-16 |
| 發(fā)明(設(shè)計)人: | 劉未鵬;成功;S·康;戈頌;D·張;黨映農(nóng) | 申請(專利權(quán))人: | 微軟技術(shù)許可有限責(zé)任公司 |
| 主分類號: | G06F11/28 | 分類號: | G06F11/28 |
| 代理公司: | 上海專利商標(biāo)事務(wù)所有限公司 31100 | 代理人: | 段登新 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 使用 代碼 克隆 檢測 智能 | ||
技術(shù)領(lǐng)域
本發(fā)明一般涉及代碼差分(differencing)系統(tǒng),或者“區(qū)分(diffing)”系統(tǒng),所述系統(tǒng)智能地生成并輸出語義信息。
背景
代碼審閱的常見任務(wù)是能夠確定并理解源代碼的前一版本和源代碼的當(dāng)前版本之間的改變。傳統(tǒng)的代碼差分(或區(qū)分)系統(tǒng)僅僅標(biāo)識源代碼中或者源代碼的各版本之間的改變。這些系統(tǒng)通常提供基本信息,諸如在一個源代碼文件中添加和/或刪除了行的地方。審閱傳統(tǒng)區(qū)分系統(tǒng)的結(jié)果的代碼審閱者因此沒有直觀的或其他的描述信息,其中針對所述信息來關(guān)注對文件的改變的本質(zhì),例如,是否發(fā)生了語義或詞匯的改變。
軟件開發(fā)通常利用多個軟件開發(fā)者來并行合作開發(fā)或修改源代碼。為了便于這樣的開發(fā),相同的源代碼或源代碼庫(例如,包含源代碼的一組文件)經(jīng)常由不同開發(fā)者修改。此外,在一些情況下,一個開發(fā)者可修復(fù)源代碼中的隱錯(bug),而另一開發(fā)者可以并行通過在不同文件內(nèi)或跨不同文件移動源代碼的行來修改同一源代碼。而且,由于由不同開發(fā)者在兩個或更多個不同分支中的并行處理,可能產(chǎn)生同一源代碼的不同版本。各個前述方法均產(chǎn)生同一代碼的不同版本。各版本的代碼因此可能非常相似,而且,因此,理解各版本源代碼之間的改變的任務(wù)可能非常困難。
盡管上面描述的區(qū)分系統(tǒng)為開發(fā)者提供了有限程度的支持,然而如同所提到的,它們的信息并不是特別豐富。當(dāng)今的代碼區(qū)分系統(tǒng)的上述缺點僅旨在提供常規(guī)系統(tǒng)的一些問題的概覽,并且不旨在是窮盡性的。傳統(tǒng)系統(tǒng)的其他問題以及此處所描述的各非限制性實施例的對應(yīng)的益處可以在審閱以下描述后變得更顯而易見。
概述
此處提供了簡化的概述以幫助能夠?qū)σ韵赂敿?xì)的描述和附圖中的示例性、非限制性實施例的各方面有基本或大體的理解。然而,本概述并不旨在是詳盡的或窮盡的。相反,本概述的唯一目的在于,以簡化的形式提出與一些示例性、非限制性實施例相關(guān)的一些概念,作為以下各實施例的更詳細(xì)的描述的序言。
本文所提供的各實施例是針對其中可利用代碼克隆檢測技術(shù)的集成開發(fā)環(huán)境(IDE)的。各個實施例還針對利用代碼克隆檢測方法的系統(tǒng)和技術(shù)。代碼克隆檢測技術(shù)可被用作生成被輸出到代碼審閱者的語義信息中的初步步驟。也構(gòu)想了可能受益于本文描述的差分技術(shù)的其他環(huán)境和上下文。
各個實施例利用代碼克隆檢測技術(shù)來生成關(guān)于各版本代碼間的改變的語義信息。所述語義信息可以是各版本間的改變的表征。所述表征可以被輸出到代碼審閱者并由此一般性地幫助軟件開發(fā),具體而言是幫助代碼審閱過程。在一些實施例中,信息可被輸出到開發(fā)者以審閱由該開發(fā)者他/她本人所做的改變,并且因此本文所述的實施例可以幫助對開發(fā)者先前輸入的改變的自我審閱和/或?qū)Φ谌剿斎氩⑶覂H由該開發(fā)者審閱的改變的審閱。
在一些實施例中,可以生成可視化信息,諸如架構(gòu)圖或顏色編碼信息來顯示關(guān)于各版本間的改變的信息。所述可視化信息被輸出到代碼審閱者以在視覺上幫助理解所述改變。
而且,在一些實施例中,本文描述的其他系統(tǒng)和方法包括克隆檢測核心和重要性引擎。克隆檢測組件或核心被配置成生成指示對在至少兩個版本的源代碼之間的內(nèi)容改變的類型的確定的信息。重要性引擎被配置成確定與該內(nèi)容改變的類型相關(guān)聯(lián)的重要性級別,并且輸出指示所述重要性級別的信息。在一些實施例中,重要性級別與所述改變的表征有關(guān)。在其他實施例中,重要性級別與所述改變的類型有關(guān),例如是格式、詞匯還是邏輯改變。重要性級別可被表達(dá)成一個值,例如整數(shù)、分?jǐn)?shù)、百分比等,或被表達(dá)成可視化,例如顏色編碼。
這些和其他實施例在下文中更詳細(xì)地描述。
附圖簡述
參考附圖進(jìn)一步描述各非限制性實施例,在附圖中:
附圖1是根據(jù)一個或多個實施例的示出智能代碼區(qū)分系統(tǒng)的示例性非限制性實現(xiàn)的框圖;
附圖2是根據(jù)一個或多個實施例的示出智能代碼區(qū)分系統(tǒng)的示例性非限制性實現(xiàn)的另一框圖;
附圖3是根據(jù)一個或多個實施例的示出智能代碼區(qū)分系統(tǒng)的示例性非限制性實現(xiàn)的另一框圖;
圖4是示出用于使用代碼克隆檢測技術(shù)的智能代碼區(qū)分的示例性非限制性過程的流程圖;
圖5是示出用于使用代碼克隆檢測技術(shù)的智能代碼區(qū)分的示例性非限制性過程的另一流程圖;
圖6是示出用于使用代碼克隆檢測技術(shù)的智能代碼區(qū)分的示例性非限制性過程的另一流程圖;
圖7是示出用于使用代碼克隆檢測技術(shù)的智能代碼區(qū)分的示例性非限制性過程的另一流程圖;
圖8是示出用于使用代碼克隆檢測技術(shù)的智能代碼區(qū)分的示例性非限制性截屏的框圖;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟技術(shù)許可有限責(zé)任公司,未經(jīng)微軟技術(shù)許可有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201080070705.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





