[發明專利]代碼克隆通知以及體系結構改變可視化無效
| 申請號: | 201110427723.6 | 申請日: | 2011-12-19 |
| 公開(公告)號: | CN102681835A | 公開(公告)日: | 2012-09-19 |
| 發明(設計)人: | 黨映農;S·卡恩;D·張;劉未鵬;戈頌;成功 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 潘明婳 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 克隆 通知 以及 體系結構 改變 可視化 | ||
技術領域
本發明涉及代碼克隆。
背景技術
軟件開發過程在其最簡單的級別涉及軟件開發者以語言(例如,C++、C#、匯編)編寫軟件代碼并使用諸如編譯器的工具將代碼構建成二進制可執行模塊。隨著軟件變得更為復雜,多個開發者可從事一個項目并使用更為復雜的工具,諸如登記管理器(check-in?manager)、集中式構建系統等。團隊也可制定過程,諸如在體系結構和源代碼級別進行的同行評審(peer?review)。流行的過程是使除主要開發者以外的至少一個開發者評審每一個登記。開發者也可運行一個或多個自動化的驗證工具,諸如單元測試、靜態代碼檢查器、運行時代碼檢查器等。諸如MICROSOFTTMVISUAL?STUDIOTM的較新的集成開發環境(IDE)試圖盡可能早地向開發者告知潛在的代碼缺陷。例如,IDE可在開發者鍵入代碼時對軟件代碼進行解析以標識拼寫錯誤、所引用的未被聲明的變量等。
通常鼓勵代碼重用以避免為解決每個新問題而“做無用功(reinventing?thewheel)”。已經使用了長時間的軟件代碼更有可能沒有缺陷,因為代碼可能已經隨時間接收更多的覆蓋和分析。此外,許多軟件問題重復出現,使得重用代碼允許使用已知的良好實踐來解決老問題并允許開發者注意力集中在新問題或對特定項目專有的軟件代碼上。代碼重用可在小范圍進行,其中開發者對同一項目多次使用類似代碼,但是也可在更大范圍進行,其中在公司從事一個項目的開發者重用來自公司另一項目的代碼。兩個開發者可能不在同一團隊中工作,或甚至不會彼此通信以了解所重用的代碼。
代碼重用的一個問題在于,它也導致隱錯傳播。所復制(此處也稱為克隆)的代碼中的軟件缺陷將在代碼的所有實例中存在。當各個開發者在公司內或甚至更廣泛地復制代碼時,修補一個項目中的缺陷的開發者可能不會意識到其中該缺陷可能存在的其它項目。這導致每一團隊使用重復的勞動來找出并修補問題,更糟糕的是,在一個團隊中已知并得到修補的問題在重用代碼的另一個團隊中沒有得到修補。在當今的代碼評審期間,審閱者被限于在其自己的了解內的克隆,且可能不了解帶有在當前實例中修補的同一缺陷的所有克隆。難以保證考慮了所有被克隆的副本。另一問題在于,軟件代碼按照難以可視化的方式隨時間演變,尤其當多個開發者隨時間繼續對該代碼工作時。作出改變的開發者可能想要理解源代碼的兩個版本之間的體系結構差異。例如,代碼庫的類級、名字空間級或模塊級差異可能是復雜且難以通過同時鉆研許多源文件來掌握的。
發明內容
此處描述了代碼驗證系統,該系統提供帶有代碼克隆分析和可視化的擴充的代碼評審,以幫助軟件開發者自動地標識相同代碼的類似實例,并對軟件代碼隨時間變化的各版本中的差異進行可視化。系統使用代碼克隆搜索技術來在開發者作出改變時標識代碼克隆,并向用戶呈現關于類似代碼的信息。系統可在對具有一個或多個相關克隆的代碼片段作出改變時,向開發者或其他團隊提供自動化的通知。代碼驗證系統也幫助開發者理解軟件代碼體的體系結構演變。代碼驗證系統提供用于確定體系結構差異的分析組件,以及用于以直觀且有用的方式向開發者和軟件開發過程中所涉及的其他人顯示所標識的差異的用戶界面組件。這可幫助開發者理解改變的原因或在不好的體系結構改變走得太遠之前發現它們。該系統可提供代碼克隆的類似可視化,以允許開發者對一個克隆以及另一個克隆之間的差異可視化。這允許評審者對代碼庫的兩個版本之間的體系結構級的差異進行分析和可視化,提供對體系結構級的差異的直觀理解,并提高體系結構級的代碼評審的效率。因此,代碼驗證系統通過避免來自帶有先前已經修補的缺陷的未經檢測的代碼克隆的重復勞動來增加代碼的正確率并減少錯誤的成本。
提供本發明內容以便以簡化的形式介紹在以下具體實施方式中進一步描述的一些概念。本發明內容并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
附圖說明
圖1是示出在一個實施例中的代碼驗證系統的各組件的框圖。
圖2是示出在一個實施例中代碼驗證系統向軟件開發者通知存在與開發者正在修改的軟件代碼相關的軟件代碼的處理的流程圖。
圖3是示出在一個實施例中代碼驗證系統向軟件開發者顯示與軟件代碼中的改變相關的體系結構級改變的處理的流程圖。
圖4是示出在一個實施例中代碼驗證系統所顯示的、用于向軟件開發者通知代碼克隆的用戶界面的顯示畫面圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110427723.6/2.html,轉載請聲明來源鉆瓜專利網。





