国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      源程序分析系統(tǒng)、源程序分析方法和記錄有程序的非瞬時(shí)記錄介質(zhì)的制作方法

      文檔序號(hào):9401908閱讀:367來(lái)源:國(guó)知局
      源程序分析系統(tǒng)、源程序分析方法和記錄有程序的非瞬時(shí)記錄介質(zhì)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本公開(kāi)涉及源程序分析系統(tǒng),源程序分析方法以及記錄程序的非瞬時(shí)記錄介質(zhì)
      【背景技術(shù)】
      [0002]如今,許多公司和組織都在利用大規(guī)模計(jì)算機(jī)系統(tǒng)用于各種目的。當(dāng)運(yùn)行大規(guī)模計(jì)算機(jī)系統(tǒng)時(shí),有必要執(zhí)行維護(hù)工作,諸如修復(fù)操作中的軟件的錯(cuò)誤,和加入需要的功能。利用計(jì)算機(jī)系統(tǒng)的公司和組織需要準(zhǔn)確地識(shí)別這種維護(hù)工作的成本。
      [0003]從代碼克隆的位置或數(shù)量估計(jì)軟件維護(hù)成本的技術(shù)是已知的。代碼克隆是指在程序的源代碼上創(chuàng)建的部分副本。已知的是,在一般情況下,大量代碼克隆的存在導(dǎo)致軟件的維護(hù)性能下降。這是因?yàn)椋?,?dāng)在代碼克隆中發(fā)現(xiàn)錯(cuò)誤時(shí),開(kāi)發(fā)者得審查具有相同內(nèi)容的每個(gè)代碼克隆是否被修復(fù),以消除錯(cuò)誤。特別是,在一個(gè)大規(guī)模系統(tǒng)中,它需要巨大人力來(lái)審查軟件包含的所有代碼克隆。
      [0004]關(guān)于代碼克隆的檢測(cè)迄今已進(jìn)行了各種研究。非專利文獻(xiàn)I將代碼克隆分為以下三種類型。類型I包括除了空格、括號(hào)等之外完全匹配的代碼克隆。類型2包括僅保留字的一部分彼此不同的代碼克隆,保留字的一部分例如用戶定義名稱(諸如變量名、標(biāo)簽名稱和程序名稱)和變量的類型。類型3包括類型2的那些代碼克隆,但是在其中,已經(jīng)插入、刪除或修改了句子。非專利文獻(xiàn)I公開(kāi)了檢測(cè)類型I和類型2的代碼克隆的技術(shù)。
      [0005]非專利文獻(xiàn)2公開(kāi)了一種用于檢測(cè)代碼克隆的系統(tǒng)和軟件。通過(guò)非專利文獻(xiàn)2所公開(kāi)的軟件(CC Finder X)在詞匯方面分析要處理的源程序,并且檢測(cè)包含在源程序中的代碼克隆。該軟件能夠檢測(cè)類型I和類型2的代碼克隆。
      [0006]專利文獻(xiàn)I公開(kāi)了一種相對(duì)于每個(gè)函數(shù)檢測(cè)代碼克隆和評(píng)估代碼克隆之間的相似性的系統(tǒng)。根據(jù)專利文獻(xiàn)I的系統(tǒng)相對(duì)于每個(gè)函數(shù)分析源程序,并且檢測(cè)滿足用戶指定的相似度檢測(cè)標(biāo)準(zhǔn)的代碼克隆。用戶可以指示檢測(cè)完全匹配(類型I)的代碼克隆,或部分彼此不同(類型2或類型3)的代碼克隆。根據(jù)專利文獻(xiàn)I的系統(tǒng)還可以根據(jù)兩個(gè)角度評(píng)價(jià)檢測(cè)到的代碼克隆,這兩個(gè)角度是對(duì)應(yīng)源代碼是否匹配和函數(shù)接口是否相同,并且根據(jù)評(píng)估結(jié)果將代碼克隆分為四類。通過(guò)查找類別,用戶可以發(fā)現(xiàn),例如,是否存在僅函數(shù)接口不同的其它代碼克隆,或者是否存在相同源代碼的其它代碼克隆,這對(duì)于代碼克隆的再利用是有用的。
      [0007]引文列表
      [0008]專利文獻(xiàn)
      [0009]專利文獻(xiàn)1:未審查日本專利申請(qǐng)公開(kāi)號(hào)2012-164211
      [0010]非專利文獻(xiàn)
      [0011]非專利文獻(xiàn)1:Yoshiki HIGO、 Shinji KUSUM0T0 和 Katsuro INOUE,“代碼克隆檢測(cè)的調(diào)查及其相關(guān)技術(shù)”電子信息通信學(xué)會(huì)論文學(xué)報(bào)D,VOL.J91-D, No6(2008),pp.1465-1481.
      [0012]非專利文獻(xiàn)2:CC Finder 主頁(yè)(URL: http://www.ccfinder.net)

      【發(fā)明內(nèi)容】

      [0013]技術(shù)問(wèn)題
      [0014]上述文獻(xiàn)公開(kāi)的技術(shù)缺點(diǎn)在于:用于計(jì)算其中已經(jīng)插入、刪除或修改了句子的代碼克隆的維護(hù)成本的有效信息。
      [0015]更詳細(xì)說(shuō)來(lái),非專利文獻(xiàn)I和2沒(méi)有提供檢測(cè)其中已經(jīng)插入、刪除或修改了句子的代碼克隆的技術(shù)。當(dāng)開(kāi)發(fā)者復(fù)制源程序的一部分以在軟件開(kāi)發(fā)中再利用該部分時(shí),復(fù)制的部分更經(jīng)常被修改,而不是按原樣利用。因此,當(dāng)要修改或改進(jìn)軟件時(shí),類型3的代碼克隆也必須作為目標(biāo)包含。從此觀點(diǎn)出發(fā),根據(jù)非專利文獻(xiàn)I和2的技術(shù)的代碼克隆檢測(cè)是不夠的。此外,非專利文獻(xiàn)I和2不提供評(píng)估檢測(cè)到的代碼克隆的相似度和可維護(hù)性的技術(shù)。因此,根據(jù)所引用的文獻(xiàn)的技術(shù)不能提供這樣的信息,該信息作為用于估計(jì)檢測(cè)到的代碼克隆的維護(hù)工作的成本的指標(biāo)。
      [0016]盡管根據(jù)專利文獻(xiàn)I的技術(shù)允許相對(duì)于每個(gè)函數(shù)檢測(cè)代碼克隆,但是部分包含在函數(shù)中的代碼克隆無(wú)法被檢測(cè)到。在軟件的維護(hù)中,常常需要修改部分包含在函數(shù)中的代碼克隆,在這種情況下,根據(jù)專利文獻(xiàn)I的技術(shù)無(wú)法輸出足夠的信息。此外,無(wú)法分析沒(méi)有函數(shù)的程序語(yǔ)言所描述的源程序。另外,根據(jù)專利文獻(xiàn)I的系統(tǒng)根據(jù)兩個(gè)角度評(píng)估檢測(cè)到的代碼克隆,即對(duì)應(yīng)的源代碼是否匹配和函數(shù)接口是否相同。然而,基于這兩個(gè)角度的指標(biāo)僅指示代碼克隆之間的相似程度,卻無(wú)法指示代碼克隆中的哪一個(gè)應(yīng)該被修改為何種程度,來(lái)修改或改進(jìn)軟件。因此,根據(jù)專利文獻(xiàn)I的技術(shù)不能提供用于計(jì)算軟件的維護(hù)成本的有效信息。
      [0017]已經(jīng)針對(duì)上述問(wèn)題完成本公開(kāi),一個(gè)目的是提供源程序分析系統(tǒng)和源程序分析方法,其能夠檢測(cè)已經(jīng)插入、刪除或修改了句子的代碼克隆,并且基于檢測(cè)到的代碼克隆輸出用于計(jì)算程序的維護(hù)成本的有效信息,以及提供記錄程序的非瞬時(shí)記錄介質(zhì)。
      [0018]技術(shù)方案
      [0019]為了實(shí)現(xiàn)上述目的,本公開(kāi)的第一方面提供一種源程序分析系統(tǒng),包括:
      [0020]匹配部分檢測(cè)器,所述匹配部分檢測(cè)器檢測(cè)源程序中相應(yīng)內(nèi)容彼此匹配的匹配部分;
      [0021]相似部分檢測(cè)器,所述相似部分檢測(cè)器基于由匹配部分檢測(cè)器檢測(cè)到的匹配部分,檢測(cè)源程序中的相似部分,其中,每個(gè)相似部分包括與另一相似部分的一部分匹配的一部分和不匹配的另一部分,且每個(gè)相似部分都滿足標(biāo)準(zhǔn);以及
      [0022]不匹配部分分析器,所述不匹配部分分析器分析由相似部分檢測(cè)器檢測(cè)到的相似部分,并且輸出指示彼此部分匹配的相似部分和另一相似部分之間的相似度的指標(biāo)。
      [0023]為了實(shí)現(xiàn)上述目的,本公開(kāi)的第二方面提供一種源程序分析方法,包括:
      [0024]檢測(cè)源程序中相應(yīng)內(nèi)容彼此匹配的匹配部分;
      [0025]基于檢測(cè)到的匹配部分,檢測(cè)源程序中的相似部分,其中,每個(gè)相似部分包括與另一相似部分的一部分匹配的一部分和不匹配的另一部分,且每個(gè)相似部分都滿足標(biāo)準(zhǔn);以及
      [0026]分析檢測(cè)到的相似部分,并且輸出指示彼此部分匹配的相似部分和另一相似部分之間的相似度的指標(biāo)。
      [0027]為了實(shí)現(xiàn)上述目的,本公開(kāi)的第三方面提供一種其上記錄有程序的非瞬時(shí)記錄介質(zhì),所述程序被配置為使計(jì)算機(jī)實(shí)現(xiàn):
      [0028]匹配部分檢測(cè)功能,所述匹配部分檢測(cè)功能檢測(cè)源程序中相應(yīng)內(nèi)容彼此匹配的匹配部分;
      [0029]相似部分檢測(cè)功能,所述相似部分檢測(cè)功能基于由匹配部分檢測(cè)功能檢測(cè)到的匹配部分,檢測(cè)源程序中的相似部分,其中,每個(gè)相似部分包括與另一相似部分的一部分匹配的一部分和不匹配的另一部分,且每個(gè)相似部分都滿足標(biāo)準(zhǔn);以及
      [0030]不匹配部分分析功能,所述不匹配部分分析功能分析由相似部分檢測(cè)功能檢測(cè)的相似部分,并且輸出指示彼此部分匹配的相似部分和另一相似部分之間的相似度的指標(biāo)。
      [0031]有益效果
      [0032]在本公開(kāi)的情況下,可以獲得源程序分析系統(tǒng)和源程序分析方法,通過(guò)該系統(tǒng)和方法能夠檢測(cè)已經(jīng)插入、刪除或修改了句子的代碼克隆,并且能夠基于檢測(cè)到的代碼克隆輸出用于計(jì)算程序的維護(hù)成本的有效信息,并且還可以獲得記錄程序的記錄介質(zhì)
      【附圖說(shuō)明】
      [0033]圖1是示出根據(jù)本公開(kāi)的示例性實(shí)施例的源程序分析系統(tǒng)的硬件配置的框圖;
      [0034]圖2是示出源程序分析系統(tǒng)的功能的框圖;
      [0035]圖3是示出源程序分析系統(tǒng)的數(shù)據(jù)流的框圖;
      [0036]圖4是示出匹配部分信息DB的內(nèi)容的表格;
      [0037]圖5是示出語(yǔ)法定義信息DB的內(nèi)容的表格;
      [0038]圖6是示出運(yùn)行單元指示符信息DB的內(nèi)容的表格;
      [0039]圖7是示出相似部分信息DB的內(nèi)容的表格;
      [0040]圖8是示出不匹配結(jié)構(gòu)信息DB的內(nèi)容的表格;
      [0041]圖9是示出根據(jù)示例性實(shí)施例的源程序的示圖;
      [0042]圖10是示出源程序分析處理的流程圖;
      [0043]圖11是示出匹配部分檢測(cè)處理的流程圖;
      [0044]圖12是示出在出匹配部分檢測(cè)處理之后的匹配部分信息DB的內(nèi)容的表格;
      [0045]圖13是示出運(yùn)行單元指示符檢測(cè)處理的流程圖;
      [0046]圖14是示出在運(yùn)行單元指示符檢測(cè)處理中查找的語(yǔ)法定義信息DB的內(nèi)容的表格;
      [0047]圖15是示出在運(yùn)行單元指示符檢測(cè)處理之后的運(yùn)行單元指示符信息DB的內(nèi)容的表格;
      [0048]圖16是示出相似部分檢測(cè)處理的流程圖;
      [0049]圖17是示出基于匹配部分的出現(xiàn)順序的相似部分檢測(cè)處理的流程圖;
      [0050]圖18是示出包含匹配部分的之前部分和之后部分的類似部分的檢測(cè)處理的流程圖;
      [0051]圖19是示出相似部分檢測(cè)處理之后的相似部分信息DB的內(nèi)容的表格;
      [0052]圖20是示出不匹配部分分析處理的流程圖;
      [0053]圖21A是示出通過(guò)不匹配部分分析處理獲得的語(yǔ)法結(jié)構(gòu)的示例的示圖;
      [0054]圖21B是示出通過(guò)不匹配部分分析處理獲得的語(yǔ)法結(jié)構(gòu)的另一示例的示圖;
      [0055]圖21C是示出通過(guò)不匹配部分分析處理獲得的語(yǔ)法結(jié)構(gòu)的再一示例的示圖;
      [0056]圖22是示出不匹配部分分析處理之后的不匹配結(jié)構(gòu)信息DB的內(nèi)容的表格;以及
      [0057]圖23是根據(jù)本公開(kāi)的示例性實(shí)施例的源程序分析系統(tǒng)的功能框圖。
      【具體實(shí)施方式】
      [0058]以下,將參照附圖描述本公開(kāi)的示例性實(shí)施例。
      [0059][示例性實(shí)施例]
      [0060]根據(jù)本公開(kāi)的示例性實(shí)施例的源程序分析系統(tǒng)被設(shè)計(jì)為分析源程序,檢測(cè)已經(jīng)插入、刪除或修改了句子的代碼克隆(換句話說(shuō),包含不匹配部分),分析檢測(cè)到的代碼克隆的不匹配部分的程序結(jié)構(gòu),并且輸出關(guān)于相似度的指標(biāo)。用戶可以查找關(guān)于相似度的指標(biāo),并且計(jì)算程序的修改成本。
      [0061]如圖1所示,根據(jù)此示例性實(shí)施例的源程序分析系統(tǒng)100包括控制器110、存儲(chǔ)單元120、操作單元130和畫面顯示器140。源程序分析系統(tǒng)100的所述組成部分通過(guò)總線101彼此鏈接。
      [0062]控制器110包括中央處理單元(CPU) 111、只讀存儲(chǔ)器(ROM) 112和隨機(jī)存取存儲(chǔ)器(RAM) 113。CPUlll根據(jù)存儲(chǔ)在R0M112中的控制程序控制源程序分析系統(tǒng)100的整體操作。R0M112包含控制程序。RAMl 13暫時(shí)存儲(chǔ)將由CPUlll利用的數(shù)據(jù)??刂破?10通過(guò)經(jīng)由總線101與各個(gè)組成部分交換信號(hào),控制在源程序分析系統(tǒng)100中提及的組成部分。
      [0063]存儲(chǔ)單元120包括硬盤、固態(tài)驅(qū)動(dòng)器(SSD)、⑶-ROM (致密盤-只讀存儲(chǔ)器)等,并且存儲(chǔ)源程序分析系統(tǒng)100執(zhí)行操作所需的信息。
      [0064]操作單元130接收由用戶進(jìn)行的輸入,并且將輸入發(fā)送到控制器110作為信息。操作單元130包括,例如,鼠標(biāo)、鍵盤、觸摸面板等。
      [0065]畫面顯示器140在控制器110的控制下顯示將由源程序分析系統(tǒng)100向用戶顯示的信息,例如,以操作畫面和結(jié)果顯示畫面的形式。畫面顯示器140由液晶顯示器、有機(jī)電致發(fā)光顯示器等構(gòu)成。
      [0066]當(dāng)源程序分析系統(tǒng)100工作時(shí),控制器110用作匹配部分檢測(cè)器11、運(yùn)行單元指示符檢測(cè)器12、相似部分檢測(cè)器13和不匹配部分分析器14,如圖2所示。存儲(chǔ)單元120用作匹配部分信息數(shù)據(jù)庫(kù)(以下,DB)21、語(yǔ)法定義信息DB22,運(yùn)行單元指示符信息DB23、相似部分信息DB24和不匹配結(jié)構(gòu)信息DB 25。
      [0067]現(xiàn)在參照?qǐng)D3,將描述圖
      當(dāng)前第1頁(yè)1 2 3 4 5 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1