999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析克隆代碼領(lǐng)域本體構(gòu)建研究

2020-09-26 11:50:30翟曄葛湘薇
內(nèi)蒙古教育·理論版 2020年6期

翟曄 葛湘薇

摘 要:代碼克隆是軟件開發(fā)中常用的方法。本文針對“克隆代碼領(lǐng)域本體構(gòu)建”這一核心問題,從克隆代碼領(lǐng)域本體模型的規(guī)劃、分析與設(shè)計、形式化、本體評估及維護(hù)等方面展開具體研究工作。通過克隆檢測結(jié)果獲取克隆代碼的克隆關(guān)系,通過代碼靜態(tài)分析技術(shù)抽取克隆代碼之間的耦合關(guān)系,基于這兩種以克隆代碼為中心的數(shù)據(jù),設(shè)計并實現(xiàn)克隆代碼領(lǐng)域本體。該本體對克隆代碼的理解、分析、維護(hù)與管理有積極作用。

關(guān)鍵詞:克隆代碼;領(lǐng)域本體;克隆關(guān)系;克隆檢測

【中圖分類號】G【文獻(xiàn)標(biāo)識碼】B 【文章編號】1008-1216(2020)06C-0127-02

克隆代碼是指,一個軟件系統(tǒng)代碼庫中的兩個或多個代碼片段彼此完全相同或幾乎相似的代碼。一組相似的代碼片段構(gòu)成一個克隆類。有關(guān)克隆代碼的研究工作開始于上世紀(jì)九十年代,并在隨后的二十多年里受到越來越多國內(nèi)外研究學(xué)者的高度關(guān)注,在克隆檢測、克隆演化分析等多個方面產(chǎn)生了大量研究成果。

過去的軟件克隆研究主要集中于代碼克隆的檢測和分析,而近年來的研究擴(kuò)展到了克隆管理的整個領(lǐng)域??寺〈a領(lǐng)域本體的構(gòu)建可以為克隆代碼理解、克隆分析、克隆維護(hù)、克隆管理以及克隆重構(gòu)等研究提供有力的參考與支持。該本體可以為軟件開發(fā)及維護(hù)人員提供克隆代碼的更多特征以及更深層次的關(guān)系,如分布特征、耦合特征、高層設(shè)計特征等。這使得克隆代碼更容易被理解,進(jìn)而使軟件開發(fā)及維護(hù)人員能更高效地維護(hù)及管理克隆代碼。

一 相關(guān)研究

目前,針對以領(lǐng)域本體為基礎(chǔ)的相關(guān)研究還非常少?,F(xiàn)有的基于領(lǐng)域本體的代碼理解及分析研究,大多是通過代碼本體與業(yè)務(wù)邏輯本體相關(guān)聯(lián)的方法分析、理解與維護(hù)軟件系統(tǒng),這些研究大多關(guān)注了代碼或克隆代碼的基本信息或是業(yè)務(wù)邏輯信息,但是,克隆代碼的維護(hù)與管理工作僅憑這些研究成果是遠(yuǎn)遠(yuǎn)不夠的。通過克隆代碼領(lǐng)域本體,可以解決類似“同一克隆群內(nèi)的克隆代碼在高層設(shè)計上有什么聯(lián)系”“哪些克隆代碼與其他代碼的耦合程度較高”等問題。這類問題可以給出克隆代碼更全面的生存環(huán)境狀況。

二、克隆代碼領(lǐng)域本體構(gòu)建

本研究面向開源軟件代碼資源,筆者制訂了詳細(xì)技術(shù)方案,并開展深入研究。本研究實現(xiàn)流程如圖 1所示。

(一)克隆靜態(tài)關(guān)系

克隆檢測是研究基礎(chǔ),本研究借助領(lǐng)域內(nèi)較為流行的克隆代碼檢測工具NiCad來進(jìn)行克隆代碼檢測工作。NiCad可以有效檢測3種類型的克隆代碼,并以XML格式反饋克隆對以及克隆群關(guān)系。根據(jù)克隆代碼檢測結(jié)果,做進(jìn)一步分析,獲得克隆關(guān)系。

1.克隆代碼相似度。

克隆代碼的相似度是指兩段克隆代碼片段之間的文本相似度,本研究利用編輯距離相似度計算模型,計算兩段克隆代碼片段之間的文本相似度。

2.克隆類型。

克隆類型除了能反應(yīng)克隆代碼文本相似程度,還能夠反應(yīng)克隆代碼之間存在的差異。本研究利用NiCad對每一種克隆類型進(jìn)行檢測,從而可以直接獲取克隆對之間的克隆類型關(guān)系。

3.克隆對及克隆群關(guān)系。

克隆對被分組,稱為克隆群的集合,其中集合中的任何兩個片段都可以形成克隆對。由于克隆代碼檢測工具能以克隆對、克隆群的方式反饋克隆代碼,所以通過分析檢測結(jié)果,可直接獲取克隆對與克隆群關(guān)系。

4.克隆代碼位置。

克隆檢測結(jié)果中至少要包含表征克隆代碼位置信息的三元組:所在文件名、起始行號、終止行號。通過分析克隆代碼檢測工具的反饋信息,即可獲取克隆對與克隆群關(guān)系信息。

(二)克隆代碼耦合關(guān)系分析

構(gòu)建克隆代碼領(lǐng)域本體,除了關(guān)注代碼的克隆關(guān)系外,還需關(guān)注克隆代碼與其他代碼之間存在的耦合關(guān)系,這樣才能更全面地表征克隆代碼的生存環(huán)境,更深層次地理解克隆代碼。本文中涉及克隆代碼的耦合關(guān)系包含以下幾個方面。

1.繼承、實現(xiàn)關(guān)系。

由于特定粒度的克隆代碼片段位于某一個類或接口中,本研究考慮了克隆代碼所在的類是否繼承了其他類,從而可反映出部分克隆代碼是否在高層設(shè)計上存在著聯(lián)系。

2.聲明關(guān)系。

聲明關(guān)系指一個類中聲明的屬性和方法。通過分析聲明關(guān)系,可以挖掘出克隆代碼所在的類之間是否存在聚合等關(guān)系,這些關(guān)系可以反應(yīng)克隆代碼所在類之間存在著哪些設(shè)計模式。

3.調(diào)用關(guān)系。

克隆代碼與其他代碼片段之間存在著耦合關(guān)系,例如,某一段克隆代碼調(diào)用了某些函數(shù),或者該克隆代碼片段被其他代碼段調(diào)用。與克隆代碼相關(guān)的調(diào)用關(guān)系,是構(gòu)成克隆代碼生存環(huán)境的重要數(shù)據(jù)。

克隆代碼耦合關(guān)系提取,是克隆代碼本體構(gòu)建的關(guān)鍵,本研究采用AST技術(shù)準(zhǔn)確地提取了克隆代碼中的耦合關(guān)系。

三、克隆代碼領(lǐng)域本體的構(gòu)建

結(jié)合克隆代碼的實際需要,本項目以七步法本體構(gòu)建思想為指導(dǎo),結(jié)合軟件工程的結(jié)構(gòu)化開發(fā)方法,設(shè)計克隆代碼領(lǐng)域本體的構(gòu)建流程。主要包括以下步驟。

(一)本體規(guī)劃

需求分析是本體規(guī)劃的第一步,主要任務(wù)是明確本體構(gòu)建的基本信息,最后生成需求分析文檔。該本體適用的專業(yè)領(lǐng)域和范圍是軟件代碼中的克隆代碼,構(gòu)建本體的目的主要是為克隆管理提供方便。該本體的目標(biāo)用戶是開發(fā)人員和測試維護(hù)人員等,目前不存在可重用的本體。

(二)本體分析

本體分析階段主要任務(wù)是:確定本體的主體架構(gòu)和知識粒度,明確克隆代碼領(lǐng)域本體需要哪些克隆實體來填充和支撐,以及提取克隆代碼中的各種信息。克隆代碼以克隆代碼片段為單位的方式進(jìn)行組織,本文選用自上而下的構(gòu)建方法設(shè)計本體。

(三)本體設(shè)計

對本體分析階段收集到的概念進(jìn)行分析歸納,建立本體類,然后依據(jù)概念的唯一性和同級概念間不存在交集的要求,形成以繼承關(guān)系為主關(guān)系結(jié)構(gòu)的樹狀模型、聲明及調(diào)用關(guān)系。類是本體的核心與基礎(chǔ),定義本體的類應(yīng)該能夠突顯類本身的特性,所以,一個新的類應(yīng)包含其父類所沒有的新屬性。例如,對于“克隆群”類,它具備的屬性有克隆群尺寸、克隆群號等,而對于該類下的子類“克隆代碼”則新增了代碼相似度、克隆類型、文件距離等屬性。

克隆代碼領(lǐng)域不同實體間存在的關(guān)系很多,如對一個具體克隆片段來說,它需同屬于一個克隆對。本項目設(shè)計的關(guān)系如右表。同時,圖2呈現(xiàn)了克隆代碼領(lǐng)域本體中部分實體以及對應(yīng)關(guān)系。

(四)本體形式化

1.本體的形式化主要采用形式語言來構(gòu)建。

本研究中采用OWL 描述語言,用 Protégé保存為基于 RDF/XML格式的 OWL 文件,文件命名為Code Clone.owl。

2.命名空間聲明。

一組 XML 格式的命名空間的聲明,本體標(biāo)識符的表示可以提供無歧義的解釋方式,使本體的表示更具可讀性。

3.實體定義。

為了避免本體表示過程中對冗長的 URL 的書寫,文檔類型聲明部分提供了對一些實體的定義,利用實體名來代替冗長的URL。

(五)克隆代碼本體的存儲與維護(hù)

對于克隆代碼領(lǐng)域本體的持久化,本文采用 Jena 技術(shù)實現(xiàn),并將本體持久化到 MySQL 數(shù)據(jù)庫中存儲。

本體的維護(hù)是指本體的迭代進(jìn)化。本體的建模目標(biāo)非一個周期或者一次循環(huán)就能夠完全實現(xiàn)的。由于軟件復(fù)雜度的增加或新技術(shù)的迭代更新,后期需要對現(xiàn)有本體進(jìn)行調(diào)整。

四、總結(jié)與展望

本研究是將克隆代碼與領(lǐng)域本體相結(jié)合,構(gòu)建出克隆代碼的領(lǐng)域本體。研究過程中,通過對克隆代碼中耦合關(guān)系的提取,深入地研究了克隆代碼中的函數(shù)調(diào)用、變量之間的關(guān)系,該本體能幫助開發(fā)和維護(hù)人員有效地理解克隆代碼的生存環(huán)境,為克隆代碼的后期演化和重構(gòu)提供依據(jù)。

參考文獻(xiàn):

[1]史慶慶,孟繁軍,張麗萍,等.克隆代碼技術(shù)研究綜述[J].計算機(jī)應(yīng)用研究,2013,(6).

[2]張瑞霞,張麗萍,王春暉,等.基于主題建模技術(shù)的克隆群映射方法[J]. 計算機(jī)工程與設(shè)計,2015,(6).

[3]涂穎,張麗萍,王春暉,等.基于軟件多版本演化提取克隆譜系[J].計算機(jī)應(yīng)用,2015,(4).

[4]蘇小紅,張凡龍.面向管理的克隆代碼研究綜述[J].計算機(jī)學(xué)報,2018,(3).

[5]郭穎,陳峰宏,周明輝.大規(guī)模代碼克隆的檢測方法[J].計算機(jī)科學(xué)與探索,2014,(4).

[6]史慶慶,孟繁軍,張麗萍,劉東升.克隆代碼技術(shù)研究綜述[J].計算機(jī)應(yīng)用研究,2013,(6).

主站蜘蛛池模板: 成人蜜桃网| 亚洲综合精品香蕉久久网| 国产成人福利在线| 国产精品冒白浆免费视频| 国产尤物在线播放| 成人一级黄色毛片| 91国内在线视频| 丁香婷婷久久| 日本a∨在线观看| 久久99国产乱子伦精品免| 欧美视频在线播放观看免费福利资源| 亚洲欧洲日韩综合色天使| 国产精品午夜福利麻豆| 欧美不卡视频在线| 久久久久国产精品熟女影院| 亚洲美女久久| 特级aaaaaaaaa毛片免费视频| 91精品国产自产在线老师啪l| 中文无码伦av中文字幕| 亚洲国产精品一区二区第一页免| 亚洲视频免| 熟妇丰满人妻| 97av视频在线观看| 国产91久久久久久| 毛片久久网站小视频| 国产在线观看99| 国产免费人成视频网| 99在线观看视频免费| 色综合久久无码网| 欧美三级视频网站| 四虎国产在线观看| 国产一区免费在线观看| 成人伊人色一区二区三区| 国产亚洲欧美另类一区二区| 国产污视频在线观看| 黄色网站在线观看无码| 亚洲综合香蕉| 久久婷婷人人澡人人爱91| 免费A级毛片无码免费视频| 99精品国产自在现线观看| 久久综合丝袜长腿丝袜| 香蕉综合在线视频91| 亚洲美女久久| 国产毛片不卡| 欧美一区国产| 国产精品综合久久久| 99视频免费观看| 国产麻豆aⅴ精品无码| 精品亚洲欧美中文字幕在线看| 国产啪在线91| 污网站在线观看视频| а∨天堂一区中文字幕| 亚洲成aⅴ人在线观看| 欧美一区福利| 国产自在线播放| 日韩欧美在线观看| 尤物亚洲最大AV无码网站| 91精品啪在线观看国产91九色| 97人妻精品专区久久久久| 97精品国产高清久久久久蜜芽| 国产日韩av在线播放| 中国国产A一级毛片| a毛片在线免费观看| 国产一级在线播放| 欧美一级特黄aaaaaa在线看片| 亚洲人成网站日本片| 欧美性久久久久| 色国产视频| 成人亚洲天堂| 天天综合网色中文字幕| 国产美女主播一级成人毛片| 黄色网在线免费观看| 国产对白刺激真实精品91| 亚洲国产成人精品一二区 | 日韩毛片免费| 亚洲欧美自拍视频| 国产91透明丝袜美腿在线| 欧美一级99在线观看国产| 麻豆精品在线视频| 中日韩欧亚无码视频| 中国丰满人妻无码束缚啪啪| 一本一道波多野结衣一区二区|