两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種代碼分析方法及系統(tǒng)的制作方法

文檔序號:6598802閱讀:237來源:國知局
專利名稱:一種代碼分析方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)軟件領(lǐng)域,尤其涉及一種代碼分析方法及系統(tǒng)。
背景技術(shù)
代碼分析又稱代碼掃描或代碼檢查,主要檢查源程序代碼對標(biāo)準(zhǔn)的遵循程度、可讀性高低、代碼邏輯表達(dá)的正確性、代碼結(jié)構(gòu)的合理性等方面。通過代碼分析可以發(fā)現(xiàn)程序中違背程序編寫標(biāo)準(zhǔn)的問題,以及程序中不安全、不明確和模糊的部分,找出程序中重復(fù)或不可移植部分。代碼分析包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結(jié)構(gòu)檢查等內(nèi)容。目前,實(shí)現(xiàn)代碼分析的工具有很多,采用的技術(shù)方法大同小異,如圖1所示,一般分為讀取程序、分析器和報表展示三個部分,大部分工具都可以自定義檢查規(guī)則,主要差別集中在檢查規(guī)則的制定和分析器算法的不同?,F(xiàn)有的代碼分析工具存在如下缺點(diǎn)(1)分析效率低、耗時長、無法勝任企業(yè)級的代碼管理;(2)代碼讀取和分析耦合在一起,當(dāng)檢查規(guī)則改變后,代碼讀取和代碼分析工作需要重新做;(3)如分析的代碼發(fā)生變動,只能再次從頭執(zhí)行分析程序,因此難以實(shí)現(xiàn)代碼頻繁變動時的分析;(4)更適用單個或少量代碼文件的統(tǒng)計分析,面對龐大的代碼庫,無法做文件與文件之間的對比分析,例如函數(shù)調(diào)用情況、重復(fù)代碼率、代碼重用情況、模塊劃分情況等。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種代碼分析方法,旨在解決現(xiàn)有的代碼分析效率低、靈活度差、不適應(yīng)企業(yè)級代碼分析的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種代碼分析方法,所述方法包括下述步驟收集代碼信息,建立索引庫;根據(jù)配置的檢查規(guī)則,查詢所述索引庫,獲取查詢結(jié)果;對所述查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。本發(fā)明實(shí)施例的另一目的在于提供一種代碼分析系統(tǒng),所述系統(tǒng)包括索引單元,用于收集代碼信息,建立索引庫,并提供查詢接口 ;代碼分析器,用于根據(jù)配置的檢查規(guī)則,通過所述查詢接口查詢所述索引庫,獲取查詢結(jié)果,對查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果;以及代碼分析展示單元,用于輸出顯示所述代碼分析器輸出的代碼分析結(jié)果。本發(fā)明實(shí)施例搜集代碼,建立索引,針對代碼查詢結(jié)果進(jìn)行分析,實(shí)現(xiàn)了代碼讀取與代碼分析相分離,極大提升了代碼分析的效率和靈活度,能夠?qū)崿F(xiàn)企業(yè)級代碼的分析管理,代碼收集與索引可以通過搜索引擎實(shí)現(xiàn)。


圖1是現(xiàn)有技術(shù)提供的代碼分析的實(shí)現(xiàn)原理圖;圖2是本發(fā)明實(shí)施例提供的代碼分析方法的實(shí)現(xiàn)流程圖;圖3是本發(fā)明實(shí)施例提供的代碼分析系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例對代碼進(jìn)行搜集處理,建立索引庫,利用高速查詢接口進(jìn)行查詢,并對查詢結(jié)果進(jìn)行代碼分析,能夠大大提高代碼分析的效率和靈活度,實(shí)現(xiàn)企業(yè)級代碼的分
析管理。圖2示出了本發(fā)明實(shí)施例提供的代碼分析方法的實(shí)現(xiàn)流程,詳述如下在步驟SlOl中,收集代碼信息,建立索引庫;作為本發(fā)明的一個實(shí)施例,利用搜索引擎收集代碼信息,建立索引庫。搜索引擎可以利用現(xiàn)有的搜索引擎,也可以自行開發(fā)。搜索引擎可以根據(jù)一定的策略搜集代碼信息,對代碼信息進(jìn)行組織和處理后,輸出處理后的代碼信息,為后端代碼分析提供檢索服務(wù)。本發(fā)明實(shí)施例中的搜索引擎為全文搜索引擎,提取各個軟件程序中的代碼信息, 建立索引數(shù)據(jù)庫,并能檢索與查詢條件相匹配的記錄,按一定的排列順序返回查詢結(jié)果,具體過程如下1、抓取程序中的代碼信息搜索引擎有相應(yīng)的代碼抓取程序(Web Crawler),可以從龐大的企業(yè)級程序代碼庫中連續(xù)地抓取各個程序中的代碼信息。2、處理抓取的代碼,建立索引庫搜索引擎抓到代碼信息后,要做大量的預(yù)處理工作,最重要的就是提取代碼信息中的關(guān)鍵詞,建立索引庫。作為本發(fā)明的一個實(shí)施例,搜索引擎可以方便的監(jiān)視目標(biāo)程序的代碼變動情況, 即使代碼發(fā)生變化,只需要重新讀取和分析變化的代碼部分,因此可以適應(yīng)代碼頻繁變動情況下的代碼分析。在步驟S102中,根據(jù)配置的檢查規(guī)則,查詢索引庫,獲取查詢結(jié)果;在本發(fā)明實(shí)施例中,代碼分析時不直接對代碼進(jìn)行分析,而是基于搜索引擎提供的查詢接口,根據(jù)配置的檢查規(guī)則輸入查詢條件,查詢索引庫,對搜索引擎返回的查詢結(jié)果進(jìn)行統(tǒng)計分析,可以極大地提升統(tǒng)計和對比分析的效率。在步驟S103中,對查詢結(jié)果進(jìn)行分析,輸出分析結(jié)果。在本發(fā)明實(shí)施例中,根據(jù)搜索引擎的查詢結(jié)果,能夠?qū)崿F(xiàn)對龐大的源代碼庫中代碼之間的對比分析,例如找出整個項(xiàng)目或企業(yè)內(nèi)某個函數(shù)被調(diào)用情況等,還能夠?qū)Υa作高層的邏輯分析,例如重復(fù)代碼率、代碼重用情況、模塊劃分情況等。本發(fā)明實(shí)施例通過將搜索引擎和代碼分析器兩種成熟的技術(shù)進(jìn)行結(jié)合,利用搜索引擎收集文本信息的能力來收集代碼信息,保存代碼中的必要信息,按關(guān)鍵字創(chuàng)建索引,這樣就具備了對代碼庫的全文搜索能力。代碼分析時不直接對代碼進(jìn)行分析,而是基于搜索引擎提供的查詢接口,對查詢結(jié)果進(jìn)行統(tǒng)計分析,可以極大地提升統(tǒng)計和對比分析的效率, 例如可以先檢索出包含某個函數(shù)定義的代碼文件,再對這些代碼文件進(jìn)行對比分析,判斷這些函數(shù)內(nèi)部是否也相同,以方便快捷地找出重復(fù)代碼。圖3示出了本發(fā)明實(shí)施例提供的代碼分析系統(tǒng)的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。索引單元1收集代碼信息,建立索引庫,并提供查詢接口。作為本發(fā)明的一個實(shí)施例,以搜索引擎作為索引單元,搜索引擎可以利用現(xiàn)有的搜索引擎,也可以自行開發(fā)。搜索器11發(fā)現(xiàn)和搜集程序中的代碼信息。索引器12處理搜索器11所搜索到的代碼信息,從中抽取出索引項(xiàng),按關(guān)鍵字創(chuàng)建索引。索引庫13存儲索引器12創(chuàng)建的索引,例如索引表。檢索器14向代碼分析器2提供查詢接口,根據(jù)代碼分析器2提供的查詢條件查詢索引庫13,輸出查詢結(jié)果。代碼分析器2根據(jù)配置的檢查規(guī)則,通過索引單元1提供的查詢接口,查詢索引庫,獲取查詢結(jié)果,對查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。在本發(fā)明實(shí)施例中,代碼分析器2代碼分析時不直接對代碼進(jìn)行分析,而是基于索引單元1提供的查詢接口,根據(jù)配置的檢查規(guī)則輸入查詢條件,查詢索引庫,對索引單元 1返回的查詢結(jié)果進(jìn)行統(tǒng)計分析,可以極大地提升統(tǒng)計和對比分析的效率。作為本發(fā)明的一個實(shí)施例,代碼查詢邏輯21根據(jù)配置的檢查規(guī)則,生成并向代碼搜索引擎1提供的查詢接口輸入查詢條件,接收代碼搜索引擎1返回的查詢結(jié)果。代碼分析邏輯22對查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。在本發(fā)明實(shí)施例中,代碼分析邏輯22根據(jù)搜索引擎的查詢結(jié)果,能夠?qū)崿F(xiàn)對龐大的源代碼庫中代碼之間的對比分析,例如找出整個項(xiàng)目或企業(yè)內(nèi)某個函數(shù)被調(diào)用情況等, 還能夠?qū)Υa作高層的邏輯分析,例如重復(fù)代碼率、代碼重用情況、模塊劃分情況等。代碼分析展示單元3輸出顯示代碼分析器2輸出的代碼分析結(jié)果。本發(fā)明實(shí)施例搜集代碼,建立索引,針對代碼查詢結(jié)果進(jìn)行分析,實(shí)現(xiàn)了代碼讀取與代碼分析相分離,極大提升了代碼分析的效率和靈活度,能夠?qū)崿F(xiàn)企業(yè)級代碼的分析管理,代碼收集與索引可以通過搜索引擎實(shí)現(xiàn)。具體而言,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)(1)可以分析龐大的代碼庫,可以實(shí)現(xiàn)企業(yè)級代碼的分析管理;(2)將代碼讀取和代碼分析分離,如果檢查規(guī)則更改,只需重新做代碼分析。同時, 基于高速的搜索查詢接口,使得代碼分析高效、迅速;(3)可以方便監(jiān)視目標(biāo)代碼的變動情況,即使代碼發(fā)生變化,只需要重新讀取和分析變化部分,可以實(shí)現(xiàn)代碼頻繁變動時的分析;(4)擴(kuò)大了代碼分析的適用范圍,尤其適用于代碼數(shù)量巨大的大型項(xiàng)目,或者對整個企業(yè)全部代碼的分析和監(jiān)控,還可以實(shí)現(xiàn)跨項(xiàng)目的代碼比對分析。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種代碼分析方法,其特征在于,所述方法包括下述步驟 收集代碼信息,建立索引庫;根據(jù)配置的檢查規(guī)則,查詢所述索引庫,獲取查詢結(jié)果; 對所述查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,所述收集代碼信息,建立索引庫的步驟具體為抓取程序中的代碼信息;對抓取的代碼進(jìn)行處理,建立索引庫。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述收集代碼信息,建立索引庫通過搜索引擎實(shí)現(xiàn)。
4.如權(quán)利要求3所述的方法,其特征在于,所述搜索引擎為全文搜索引擎。
5.一種代碼分析系統(tǒng),其特征在于,所述系統(tǒng)包括 索引單元,用于收集代碼信息,建立索引庫,并提供查詢接口 ;代碼分析器,用于根據(jù)配置的檢查規(guī)則,通過所述查詢接口查詢所述索引庫,獲取查詢結(jié)果,對查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果;以及代碼分析展示單元,用于輸出顯示所述代碼分析器輸出的代碼分析結(jié)果。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述索引單元為搜索引擎。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述代碼搜索引擎為全文搜索引擎。
8.如權(quán)利要求5、6或7所述的系統(tǒng),其特征在于,所述代碼分析器包括代碼查詢邏輯,用于根據(jù)配置的檢查規(guī)則,生成并向所述代碼搜索引擎提供的查詢接口輸入查詢條件,接收所述代碼搜索引擎返回的查詢結(jié)果;以及代碼分析邏輯,用于對所述查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。
全文摘要
本發(fā)明適用于計算機(jī)軟件領(lǐng)域,提供了一種代碼分析方法及系統(tǒng),所述方法包括下述步驟收集代碼信息,建立索引庫;根據(jù)配置的檢查規(guī)則,查詢所述索引庫,獲取查詢結(jié)果;對所述查詢結(jié)果進(jìn)行代碼分析,輸出代碼分析結(jié)果。本發(fā)明搜集代碼,建立索引,針對代碼查詢結(jié)果進(jìn)行分析,實(shí)現(xiàn)了代碼讀取與代碼分析相分離,極大提升了代碼分析的效率和靈活度,能夠?qū)崿F(xiàn)企業(yè)級代碼的分析管理,代碼收集與索引可以通過搜索引擎實(shí)現(xiàn)。
文檔編號G06F11/36GK102193859SQ20101011840
公開日2011年9月21日 申請日期2010年3月3日 優(yōu)先權(quán)日2010年3月3日
發(fā)明者白廣元 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
曲周县| 阿荣旗| 陆河县| 娱乐| 洪江市| 星座| 长垣县| 弥勒县| 卢湾区| 贺兰县| 宿迁市| 沧源| 文山县| 湟源县| 六枝特区| 苏尼特右旗| 南溪县| 城市| 环江| 黄石市| 武义县| 岳西县| 会泽县| 固安县| 措美县| 西青区| 徐汇区| 稷山县| 太保市| 民县| 巨鹿县| 靖西县| 城固县| 富蕴县| 泉州市| 伊金霍洛旗| 建湖县| 浦北县| 荔浦县| 平武县| 崇明县|