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).

主站蜘蛛池模板: 国产拍在线| 亚洲一区二区日韩欧美gif| 在线观看国产精美视频| 国产又色又刺激高潮免费看| 天天色天天操综合网| 久久黄色免费电影| 99热这里只有精品在线观看| 亚洲第一中文字幕| 在线一级毛片| a级毛片免费看| 成人亚洲国产| 91亚洲免费视频| 亚洲一区二区三区在线视频| 在线欧美一区| 另类专区亚洲| 国产精品女人呻吟在线观看| 精品亚洲麻豆1区2区3区| 2021无码专区人妻系列日韩| 欧美一区二区人人喊爽| 国产成人精品一区二区| 欧美亚洲另类在线观看| 日韩精品视频久久| 国产亚洲视频中文字幕视频| 亚洲婷婷六月| 欧美午夜在线观看| 性欧美在线| 天天色综网| 日韩精品中文字幕一区三区| 精品亚洲国产成人AV| 婷婷开心中文字幕| 欧美激情福利| 重口调教一区二区视频| 亚洲精品视频免费| 一级毛片网| 国产在线精品香蕉麻豆| 免费女人18毛片a级毛片视频| 91偷拍一区| 国产女人18水真多毛片18精品| 亚洲美女一区| 九九视频在线免费观看| 亚洲无线国产观看| 国产手机在线小视频免费观看| 在线网站18禁| 国产va在线观看| 亚洲男人的天堂久久香蕉 | 亚瑟天堂久久一区二区影院| 99久久无色码中文字幕| 国产成人三级| 国产欧美日本在线观看| 国产福利不卡视频| 72种姿势欧美久久久久大黄蕉| 人妻一区二区三区无码精品一区| 欧美午夜性视频| 国产全黄a一级毛片| 国产国拍精品视频免费看| 亚洲欧美日本国产综合在线| 国产精品2| 无码人妻免费| 日韩精品一区二区三区swag| 国产农村妇女精品一二区| 欧美色99| 国产浮力第一页永久地址| 成人久久精品一区二区三区| 67194亚洲无码| 精品日韩亚洲欧美高清a| 国产欧美精品一区二区| 99性视频| jizz在线免费播放| 国产国语一级毛片| 亚洲国产欧美国产综合久久| 91九色国产porny| 99re视频在线| 亚洲av综合网| 激情综合激情| A级毛片无码久久精品免费| 亚洲精品人成网线在线| 玖玖精品在线| 国产精品免费电影| 国产精品亚洲va在线观看| 免费看一级毛片波多结衣| 永久在线精品免费视频观看| 中文字幕永久在线看|