亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        翟曄 葛湘薇

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

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

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

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

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

        一 相關(guān)研究

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

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

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

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

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

        1.克隆代碼相似度。

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

        2.克隆類(lèi)型。

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

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

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

        4.克隆代碼位置。

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

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

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

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

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

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

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

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

        (一)本體規(guī)劃

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

        (二)本體分析

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

        (三)本體設(shè)計(jì)

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

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

        (四)本體形式化

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

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

        2.命名空間聲明。

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

        3.實(shí)體定義。

        為了避免本體表示過(guò)程中對(duì)冗長(zhǎng)的 URL 的書(shū)寫(xiě),文檔類(lèi)型聲明部分提供了對(duì)一些實(shí)體的定義,利用實(shí)體名來(lái)代替冗長(zhǎng)的URL。

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

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

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

        四、總結(jié)與展望

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

        參考文獻(xiàn):

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

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

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

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

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

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

        精品欧美乱码久久久久久1区2区| 久久一道精品一区三区| 久久精品国产99国产精偷| 国产亚洲av综合人人澡精品| 国产偷国产偷亚洲欧美高清| 亚洲一区二区在线视频,| 精品久久亚洲中文字幕| 国产女人高潮叫床视频| 一本大道香蕉视频在线观看| 亚洲一区二区三区成人在线| 日本中文一区二区在线| 东京热人妻无码一区二区av| 日本中文字幕在线播放第1页| 免费国产在线精品三区| 国产实拍日韩精品av在线| 国产日产精品一区二区三区四区的特点 | 在线观看一区二区中文字幕| 亚洲乱码国产乱码精品精| 无码夜色一区二区三区| 激情综合五月天开心久久| 亚洲国产精品久久无人区| 中文人妻熟妇乱又伦精品| 国产午夜福利不卡在线观看视频| 国产毛片一区二区日韩| 成年人观看视频在线播放| 国产裸拍裸体视频在线观看| 91久久精品无码人妻系列| 中文字幕一区二区网址| 午夜精品久久久久久久99老熟妇| 亚洲国产精品sss在线观看av | 国产肉体ⅹxxx137大胆| 欧美h久免费女| 一区二区三区四区在线观看日本| 久久成人国产精品免费软件| 欧美视频第一页| 麻豆成人久久精品二区三区91| 午夜熟女插插xx免费视频| 制服丝袜人妻中文字幕在线| 亚洲成A人A∨久在线观看| 久久久国产精品黄毛片| 插b内射18免费视频|