• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    網(wǎng)絡(luò)社區(qū)劃分在軟件質(zhì)量問題分析中的應(yīng)用

    2019-09-09 03:38:40胡學(xué)飛李增揚(yáng)
    關(guān)鍵詞:源文件一致性軟件

    胡學(xué)飛,李 兵,2,李增揚(yáng)

    1(武漢大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430072)2(武漢大學(xué) 復(fù)雜網(wǎng)絡(luò)研究中心,武漢 430072)3(華中師范大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430079) E-mail:huxuefei@whu.edu.cn

    1 引 言

    計(jì)算機(jī)行業(yè)的快速發(fā)展使得軟件工程受到越來越多的關(guān)注,軟件系統(tǒng)也變得更加復(fù)雜.在如今信息化的時(shí)代,隨著人們對(duì)軟件的依賴程度不斷增加,提出的功能點(diǎn)也變得多樣,相應(yīng)的軟件系統(tǒng)必須不斷的升級(jí)或者打補(bǔ)丁來滿足需求,相應(yīng)的對(duì)代碼的質(zhì)量、整個(gè)軟件的架構(gòu)和安全性都有更高的標(biāo)準(zhǔn),這都大大的增加了軟件系統(tǒng)的復(fù)雜性[1].如何對(duì)這些復(fù)雜系統(tǒng)進(jìn)行研究,幫助其更好的發(fā)展顯得愈發(fā)重要.

    20世紀(jì)90年代,復(fù)雜系統(tǒng)成為了一門獨(dú)立學(xué)科,90年代末,為了研究復(fù)雜系統(tǒng),產(chǎn)生了復(fù)雜網(wǎng)絡(luò)[2].復(fù)雜系統(tǒng)可以看作是由大量的有關(guān)聯(lián)的子系統(tǒng)構(gòu)成,我們?nèi)绻炎酉到y(tǒng)視為結(jié)點(diǎn),把它們之間的作用視為邊,那么復(fù)雜系統(tǒng)就可以看成是一個(gè)復(fù)雜網(wǎng)絡(luò).1998年,在復(fù)雜網(wǎng)絡(luò)的領(lǐng)域中,Watts和Strogatz提出了小世界網(wǎng)絡(luò)(Small World Network,簡稱SWN)模型[3].1999年,Barabási和Albert又提出了無標(biāo)度特征[4,5].無數(shù)學(xué)者投入到復(fù)雜網(wǎng)絡(luò)理論的研究之中,大大促進(jìn)了其發(fā)展.

    復(fù)雜網(wǎng)絡(luò)研究具有很強(qiáng)的跨學(xué)科特色,它可以與數(shù)理學(xué)科、生命學(xué)科和工程學(xué)科等其他學(xué)科聯(lián)系起來,成為其他領(lǐng)域的研究方法[6].因此,復(fù)雜網(wǎng)絡(luò)研究作為一個(gè)新興的研究領(lǐng)域,受到格外的關(guān)注.同樣,復(fù)雜網(wǎng)絡(luò)理論研究給軟件工程研究也打開了新思路.以復(fù)雜網(wǎng)絡(luò)理論作為基礎(chǔ),將軟件中的源文件看作節(jié)點(diǎn),文件之間的關(guān)系看作邊,軟件系統(tǒng)則視為節(jié)點(diǎn)和邊的集合,對(duì)軟件系統(tǒng)結(jié)構(gòu)的研究就轉(zhuǎn)化為對(duì)其網(wǎng)絡(luò)圖的研究[7-9].

    軟件項(xiàng)目開發(fā)的過程中,由于軟件故障或新功能需求,開發(fā)人員會(huì)對(duì)源文件不斷地修改,并將這些修改提交到版本控制系統(tǒng).通常,一次提交(commit)包括源文件的增加、刪除和修改,這些信息被保存在版本控制系統(tǒng)中.軟件項(xiàng)目源文件之間的引用調(diào)用數(shù)量可視為源文件間依賴(dependency)的強(qiáng)度,軟件開發(fā)的提交信息中源文件被同時(shí)修改(co-change)的次數(shù)視為其被同時(shí)修改的頻度.已有研究發(fā)現(xiàn)在Windows 7中,具有依賴關(guān)系的源文件更容易被同時(shí)修改[10,11],我們希望通過實(shí)驗(yàn)證實(shí)在開源軟件中也存在這個(gè)規(guī)律,即依賴關(guān)系的強(qiáng)度和它們的同時(shí)修改的頻度具有一致性.如果存在同時(shí)大量被修改的源文件不存在依賴關(guān)系,我們發(fā)現(xiàn)其中往往有問題,這些問題會(huì)導(dǎo)致整個(gè)項(xiàng)目質(zhì)量的降低.所以,我們通過不符合一致性的源文件進(jìn)一步探索其中存在的問題.

    復(fù)雜網(wǎng)絡(luò)理論研究給我們提供了很好的方法.對(duì)于一個(gè)軟件系統(tǒng),將文件視為點(diǎn),文件之間的關(guān)系視為邊,關(guān)系的強(qiáng)弱視為邊權(quán),復(fù)雜的軟件系統(tǒng)就可以用加權(quán)網(wǎng)絡(luò)來表示.我們分別根據(jù)兩源文件的依賴和同時(shí)修改關(guān)系,構(gòu)建依賴關(guān)系網(wǎng)絡(luò)(dependency network)和同時(shí)修改關(guān)系網(wǎng)絡(luò)(co-change network).使用了Girvan-Newman算法[12](GN算法)對(duì)軟件的依賴關(guān)系網(wǎng)絡(luò)和同時(shí)修改關(guān)系網(wǎng)絡(luò)進(jìn)行了社區(qū)劃分.我們猜想根據(jù)兩種關(guān)系劃分出來的結(jié)果會(huì)表現(xiàn)出一致性,對(duì)于成功優(yōu)秀的項(xiàng)目,實(shí)驗(yàn)結(jié)果證實(shí)了我們的猜想,而對(duì)于質(zhì)量較低的項(xiàng)目則結(jié)果不理想,我們對(duì)有出入的地方進(jìn)行分析,找出不一致源文件出現(xiàn)的原因,如代碼的復(fù)制粘貼、混亂的引用等,給軟件中問題的發(fā)現(xiàn)方法提供新思路.

    本文的組織結(jié)構(gòu)如下:第2節(jié)我們將具體的介紹實(shí)驗(yàn)的方法,對(duì)實(shí)驗(yàn)中的項(xiàng)目選擇、數(shù)據(jù)收集和處理、實(shí)驗(yàn)過程等做詳細(xì)的說明;第3節(jié),給出實(shí)驗(yàn)結(jié)果,驗(yàn)證猜想并分析出現(xiàn)不一致的原因;第4節(jié),對(duì)實(shí)驗(yàn)和未來的工作進(jìn)行討論;第5節(jié),得出結(jié)論.

    2 研究設(shè)計(jì)

    本節(jié)闡述了本文的研究目的,并根據(jù)研究目的提出研究問題,設(shè)計(jì)分析項(xiàng)目中源文件的依賴關(guān)系和其同時(shí)修改關(guān)系一致性的研究過程.

    2.1 研究目的和研究問題

    本文的研究目的是用復(fù)雜網(wǎng)絡(luò)理論的方法,證明項(xiàng)目中源文件依賴關(guān)系和其同時(shí)修改關(guān)系具有一致性,并通過不符合一致性的源文件發(fā)現(xiàn)其中存在的問題.基于該研究目標(biāo),我們定義以下研究問題(Research Question,簡稱RQ):

    RQ1:項(xiàng)目中源文件之間的依賴關(guān)系和同時(shí)修改關(guān)系是否存在一致性?

    通過此研究問題,我們希望驗(yàn)證我們提出的兩種關(guān)系存在一致性的猜想.為進(jìn)一步研究奠定基礎(chǔ).

    RQ2:出現(xiàn)源文件依賴關(guān)系和同時(shí)修改關(guān)系不一致現(xiàn)象的項(xiàng)目可能存在哪些問題?

    通過此研究問題,我們希望從兩種關(guān)系不一致的項(xiàng)目中發(fā)現(xiàn)可能存在的問題.發(fā)現(xiàn)一種新的項(xiàng)目問題的識(shí)別方法.

    2.2 實(shí)驗(yàn)設(shè)計(jì)

    為了得到研究問題的答案,我們?cè)O(shè)計(jì)本次實(shí)驗(yàn)分為四個(gè)階段,分別是數(shù)據(jù)收集、數(shù)據(jù)處理、源文件劃分、實(shí)驗(yàn)結(jié)果分析.具體流程見圖1.

    圖1 實(shí)驗(yàn)流程圖Fig.1 Experiment procedure

    A:數(shù)據(jù)收集

    此次實(shí)驗(yàn)研究對(duì)象是Java項(xiàng)目,僅僅分析Java源文件,忽略其他類型的源文件.近些年來網(wǎng)站和各種企業(yè)管理系統(tǒng)快速發(fā)展,Java作為開發(fā)此類項(xiàng)目的流行語言受到越來越多的關(guān)注,并且應(yīng)用范圍越來越廣,再者,關(guān)于Java的分析工具比較成熟,所以我們選擇了Java項(xiàng)目.

    軟件項(xiàng)目源文件之間的引用調(diào)用數(shù)量可視為源文件間依賴的強(qiáng)度,如文件A中有2處引用了文件B中的類,我們就認(rèn)為文件A與文件B之間存在依賴關(guān)系,并且依賴強(qiáng)度為2.為了研究項(xiàng)目源文件的依賴關(guān)系,我們使用靜態(tài)項(xiàng)目分析軟件Understand(http://understand-china.com),它集成了代碼編輯器,能將分析結(jié)果以各種形式呈現(xiàn)給用戶.借助Understand,將項(xiàng)目代碼導(dǎo)入后可以方便地獲取到源文件之間依賴關(guān)系的相關(guān)數(shù)據(jù).

    為了研究項(xiàng)目中源文件的同時(shí)修改關(guān)系,我們?cè)贕itHub上獲得項(xiàng)目的代碼及其提交日志.通過Git版本控制系統(tǒng)的源客戶端TortoiseGit我們可以下載項(xiàng)目的全部代碼,并得到開發(fā)過程的提交日志.

    B:數(shù)據(jù)處理

    借助Understand工具,很方便能導(dǎo)出源文件的依賴關(guān)系.我們開發(fā)了一個(gè)工具從Understand導(dǎo)出的Excel文件中提取出兩文件名和總依賴數(shù).最后得到的是項(xiàng)目中每兩個(gè)有依賴關(guān)系的源文件名稱及其調(diào)用引用的數(shù)目,即源文件名A,源文件名B,調(diào)用引用數(shù)目x.

    軟件項(xiàng)目源文件之間的同時(shí)修改關(guān)系要對(duì)項(xiàng)目開發(fā)過程中的提交日志進(jìn)行數(shù)據(jù)處理.在項(xiàng)目的提交日志中,每兩個(gè)在同一個(gè)提交記錄中增加或者修改的源文件都被認(rèn)為是同時(shí)修改,其他情況,如刪除或者修改版本號(hào)則不視為修改.我們計(jì)算每兩個(gè)源文件在所有提交記錄中同時(shí)修改的次數(shù).得到的是每兩個(gè)有同時(shí)修改關(guān)系的源文件名稱及其同時(shí)修改的次數(shù),即源文件名A,源文件名B,同時(shí)修改次數(shù)x.圖2中,我們會(huì)得到如下三條記錄:A.java,B.java,1;A.java,C.java,1;B.java,C.java,2.

    需要指出的是,在數(shù)據(jù)中存在大量同時(shí)修改次數(shù)很少的記錄,它們產(chǎn)生的原因主要是項(xiàng)目一次提交中提交了大量源文件的修改信息,其中存在沒有任何關(guān)系的源文件也被同時(shí)提交.在后續(xù)的實(shí)驗(yàn)中進(jìn)行了社區(qū)劃分,經(jīng)過對(duì)衡量網(wǎng)絡(luò)中社區(qū)穩(wěn)定度的模塊化度量值Q[12,13]的計(jì)算,我們發(fā)現(xiàn)這種數(shù)據(jù)對(duì)源文件的劃分的準(zhǔn)確性產(chǎn)生了很大的影響,即Q值很低,這些數(shù)據(jù)也極大的影響了數(shù)據(jù)處理的速度,所以我們嘗試著去除掉次數(shù)較少的數(shù)據(jù)使社區(qū)比較穩(wěn)定,即Q值大于0.5.經(jīng)過不斷試驗(yàn),對(duì)于我們研究的幾個(gè)項(xiàng)目中,去掉次數(shù)小于3的數(shù)據(jù)能使Q值大于0.5,數(shù)據(jù)的處理速度也在可以接受的范圍.我們刪除了次數(shù)小于3的數(shù)據(jù),但是這種處理也對(duì)實(shí)驗(yàn)結(jié)果造成一定的影響.

    圖2 同時(shí)修改數(shù)據(jù)處理說明附圖Fig.2 co-change data processing

    在源文件劃分階段,我們開發(fā)了一個(gè)程序進(jìn)行數(shù)據(jù)處理,程序輸入為數(shù)字格式而不是文本格式.為了讓數(shù)據(jù)符合下一步劃分所使用程序的輸入格式,我們需要將項(xiàng)目中的文件進(jìn)行編號(hào),并記錄下源文件名和數(shù)字編號(hào)的對(duì)應(yīng)關(guān)系,然后將依賴關(guān)系數(shù)據(jù)和同時(shí)修改數(shù)據(jù)中的源文件名稱都改為相應(yīng)的編號(hào).此步驟結(jié)束后,我們會(huì)得到均為數(shù)字的依賴關(guān)系數(shù)據(jù)和同時(shí)修改數(shù)據(jù),還有兩數(shù)據(jù)共用的一份源文件名與編號(hào)對(duì)應(yīng)表.

    C:源文件劃分

    社區(qū)結(jié)構(gòu)是復(fù)雜網(wǎng)絡(luò)的一個(gè)特性,整個(gè)網(wǎng)絡(luò)是由很多社區(qū)組成的,社區(qū)中的結(jié)點(diǎn)聯(lián)系很緊密,社區(qū)之間的聯(lián)系比較少.為了比較兩個(gè)網(wǎng)絡(luò),我們將問題轉(zhuǎn)化為社區(qū)的比較,因?yàn)槿绻麅煞N關(guān)系具有一致性,社區(qū)劃分也會(huì)具有一致性,通過社區(qū)比較,可以發(fā)現(xiàn)關(guān)系不一致的地方.我們使用了GN算法對(duì)軟件的依賴關(guān)系網(wǎng)絡(luò)和同時(shí)修改關(guān)系網(wǎng)絡(luò)進(jìn)行了社區(qū)劃分.

    GN算法最初由Michelle Girvan和Mark Newman提出[12],是經(jīng)典的社團(tuán)發(fā)現(xiàn)算法,屬于分裂的層次聚類算法,常用于研究復(fù)雜網(wǎng)絡(luò)中的聚類特性.該算法根據(jù)網(wǎng)絡(luò)中社團(tuán)內(nèi)部高內(nèi)聚、社團(tuán)之間低內(nèi)聚的特點(diǎn),逐步去除社團(tuán)之間的邊,取得相對(duì)內(nèi)聚的社團(tuán)結(jié)構(gòu).算法用邊介數(shù)的概念來探測(cè)邊的位置[13],某邊的邊介數(shù)定義為網(wǎng)絡(luò)上所有頂點(diǎn)之間的最短路徑通過該邊的次數(shù).由定義可知,如果一條邊連接兩個(gè)社團(tuán),那么這兩個(gè)社團(tuán)節(jié)點(diǎn)之間的最短路徑通過該邊的次數(shù)就會(huì)最多,相應(yīng)的邊介數(shù)最大.如果刪除該邊,那么兩個(gè)社團(tuán)就會(huì)分割開.GN算法就是基于此思想反復(fù)計(jì)算當(dāng)前網(wǎng)絡(luò)的最短路徑,計(jì)算每條邊的邊介數(shù),刪除邊介數(shù)最大的邊.最后在一定條件下,算法停止,即可得到網(wǎng)絡(luò)的社團(tuán)結(jié)構(gòu),網(wǎng)絡(luò)中社區(qū)穩(wěn)定度用模塊化度量值Q衡量[13].

    我們將源文件視為節(jié)點(diǎn),它們之間的依賴關(guān)系,同時(shí)修改關(guān)系作為兩源文件的邊,軟件系統(tǒng)可以視為復(fù)雜網(wǎng)絡(luò),這里用依賴網(wǎng)絡(luò)和同時(shí)修改網(wǎng)絡(luò)來命名根據(jù)兩種關(guān)系形成的復(fù)雜網(wǎng)絡(luò).將依賴關(guān)系數(shù)據(jù)和同時(shí)修改數(shù)據(jù)作為GN算法的輸入,對(duì)兩種網(wǎng)絡(luò)進(jìn)行劃分.得到的是根據(jù)兩種關(guān)系得到的兩種網(wǎng)絡(luò)社區(qū)劃分結(jié)果.

    D:實(shí)驗(yàn)結(jié)果分析

    為了幫助分析依賴關(guān)系網(wǎng)絡(luò)和同時(shí)修改關(guān)系網(wǎng)絡(luò),我們定義了兩個(gè)概念:關(guān)系簇和奇異點(diǎn).

    1.關(guān)系簇(relation cluster)定義為:

    在同一個(gè)軟件系統(tǒng)中,一部分源文件無論在依賴關(guān)系網(wǎng)絡(luò)中還是同時(shí)修改關(guān)系網(wǎng)絡(luò)中都被分進(jìn)同一個(gè)社區(qū),這部分源文件被稱為一個(gè)關(guān)系簇.

    2.奇異點(diǎn)(strange node)定義為:

    在依賴關(guān)系網(wǎng)絡(luò)中或者是同時(shí)修改關(guān)系網(wǎng)絡(luò)中,如果存在某個(gè)文件不屬于當(dāng)前社區(qū)中任何一個(gè)關(guān)系簇,則稱這個(gè)文件為奇異點(diǎn).

    圖3 關(guān)系簇和奇異點(diǎn)概念圖Fig.3 Concept graphs of relation clusters and strange points

    圖3中,A、B、C三個(gè)點(diǎn)在兩個(gè)網(wǎng)絡(luò)中都被分在一個(gè)社區(qū)中,因此,它們組成一個(gè)關(guān)系簇,而F不屬于依賴關(guān)系網(wǎng)絡(luò)社區(qū)1中任何一個(gè)關(guān)系簇,所以F為奇異點(diǎn).我們對(duì)每個(gè)社區(qū)計(jì)算它的總節(jié)點(diǎn)數(shù),關(guān)系簇?cái)?shù)和奇異點(diǎn)數(shù).如果存在奇異點(diǎn),它對(duì)應(yīng)的源文件可能指示質(zhì)量問題,我們將對(duì)奇異點(diǎn)出現(xiàn)的原因做仔細(xì)的探究.

    3 實(shí)驗(yàn)結(jié)果

    軟件項(xiàng)目數(shù)目龐大,質(zhì)量參差不齊.為了更好的研究源文件依賴關(guān)系及其同時(shí)修改關(guān)系的一致性,我們選取了評(píng)價(jià)較好,關(guān)注度高的項(xiàng)目Tomcat_9_0_0_M21(https://codeload.github.com/apache/tomcat/zip/TOMCAT_9_0_0_M21),截取2006年3月27日至2017年5月5日的提交信息進(jìn)行研究.為了尋找項(xiàng)目的源文件中兩種關(guān)系不一致情況下可能存在的問題,我們選取了Tomcat(https://github.com/apache/tomcat)早期版本,即2013年7月2日之前的版本,和評(píng)價(jià)次數(shù)較少,關(guān)注度較低的Restunit(https://github.com/davetron5000/restunit)項(xiàng)目,更新截止時(shí)間為2008年12月21日.

    每一個(gè)項(xiàng)目供實(shí)驗(yàn)使用的數(shù)據(jù)首先包括項(xiàng)目文件名稱與編號(hào)對(duì)應(yīng)表,其次,根據(jù)兩文件之間的依賴關(guān)系和實(shí)際關(guān)聯(lián),分別得到的依賴關(guān)系表和實(shí)際關(guān)聯(lián)表,格式均為“文件編號(hào)1,文件編號(hào)2,強(qiáng)度”,最后是根據(jù)兩種關(guān)系的劃分結(jié)果數(shù)據(jù),每一行為一個(gè)社區(qū),社區(qū)以文件編號(hào)組成.具體數(shù)據(jù)我們提交至github(https://github.com/huxuefei/hu.git)上.

    3.1 軟件項(xiàng)目中源文件的依賴關(guān)系和其實(shí)際關(guān)聯(lián)存在一致性(RQ1)

    表1是tomcat根據(jù)同時(shí)修改劃分的實(shí)驗(yàn)結(jié)果.其中,有一部分社區(qū)有相同的總節(jié)點(diǎn)數(shù),關(guān)系簇?cái)?shù),奇異點(diǎn)數(shù),因此我們把這些社區(qū)表示在同一行.例如,表1第一列的17-21表示社區(qū)編號(hào)在17至21之間的所有社區(qū).對(duì)于項(xiàng)目Tomcat的實(shí)驗(yàn)結(jié)果,我們從表1可以看出,根據(jù)同時(shí)修改劃分的每一社區(qū)中的源文件之間大部分是有依賴的,這在一方面證明了我們的猜想,大量同時(shí)修改的源文件往往是有依賴關(guān)系的.

    比如劃分塊4,其中源文件在根據(jù)同時(shí)修改關(guān)系的劃分和根據(jù)依賴關(guān)系的劃分上都被劃分在一個(gè)社區(qū),這是由于有依賴的源文件一旦其中一個(gè)做出修改,調(diào)用此源文件和被此源文件調(diào)用的源文件就有很大可能需要做出修改.

    我們發(fā)現(xiàn)實(shí)驗(yàn)結(jié)果中存在奇異點(diǎn),它們表示源文件被大量提交而它們之間不存在依賴關(guān)系,這似乎與我們的假設(shè)有出入,仔細(xì)探究其出現(xiàn)原因,我們發(fā)現(xiàn)奇異點(diǎn)跟關(guān)系簇中的某些結(jié)點(diǎn)有很少的引用數(shù)目,但是在根據(jù)依賴關(guān)系的劃分中并沒有歸為一個(gè)社區(qū),從而成了奇異點(diǎn).所以,單純以引用和調(diào)用的數(shù)量來判定兩源文件的依賴關(guān)系大小并不全面,但是只是在少量的源文件點(diǎn)中出現(xiàn)差錯(cuò),經(jīng)過排查,我們的猜想是成立的.

    表1 Tomcat根據(jù)同時(shí)修改劃分Table 1 Tomcat partition according to co-change

    表2描述了tomcat根據(jù)依賴關(guān)系劃分的情況,我們可以看出根據(jù)依賴關(guān)系被劃分到一個(gè)社區(qū)中的源文件在同時(shí)修改關(guān)系劃分中也很可能被分到同一個(gè)社區(qū),說明具有較強(qiáng)依賴性的源文件在實(shí)際開發(fā)中更容易被同時(shí)修改.這在另一方面證明了我們的猜想,具有依賴關(guān)系的源文件往往會(huì)被同時(shí)修改.

    表2 Tomcat根據(jù)依賴關(guān)系劃分Table 2 Tomcat partition according to dependencies

    同樣,根據(jù)依賴關(guān)系劃分的社區(qū)中也存在奇異點(diǎn),它們表示源文件有較強(qiáng)的依賴關(guān)系而它們沒有被大量提交.我們分析發(fā)現(xiàn)其存在也是合理的.有些源文件與其他源文件有很強(qiáng)的依賴關(guān)系,但其本身修改的次數(shù)就非常少,在刪除同時(shí)修改次數(shù)小于3的數(shù)據(jù)的處理中,這些數(shù)據(jù)被刪除,從而產(chǎn)生了奇異點(diǎn).但這與我們的猜想并不違背.

    綜上,雖然兩種劃分中都存在奇異點(diǎn),但數(shù)量很小,并且其存在有合理的解釋,所以說Tomcat項(xiàng)目的源文件依賴和其同時(shí)修改關(guān)系有較好的一致性,在評(píng)價(jià)高,優(yōu)秀的Tomcat項(xiàng)目中,我們的猜想得到了證實(shí).

    表3 Tomcat根據(jù)同時(shí)修改關(guān)系劃分Table 3 Earlier versions of Tomcat partition according to co-change

    3.2 出現(xiàn)依賴關(guān)系和實(shí)際關(guān)聯(lián)不一致現(xiàn)象的項(xiàng)目可能存在的問題(RQ2)

    對(duì)于評(píng)價(jià)高,星數(shù)多的優(yōu)秀項(xiàng)目Tomcat的研究中,我們的猜想得到了證實(shí).而對(duì)于與我們猜想不相符的項(xiàng)目,它們中是否存在一定的問題.為了探究出現(xiàn)依賴關(guān)系和同時(shí)修改關(guān)系不一致現(xiàn)象的項(xiàng)目可能存在哪些問題,我們選取了Tomcat和評(píng)價(jià)較低,關(guān)注度較低的項(xiàng)目Restunit(2008年12月21號(hào)之前)進(jìn)行分析.

    我們選擇Tomcat(2013年7月2號(hào)之前)的數(shù)據(jù)是因?yàn)樵诖酥蟮囊淮翁峤恢?,?xiàng)目進(jìn)行了大量文件的增加與刪除,開發(fā)者可能對(duì)項(xiàng)目的結(jié)構(gòu)做出了調(diào)整,修復(fù)了很多問題,這將不利于我們發(fā)現(xiàn)問題,所以將此時(shí)間節(jié)點(diǎn)之前的數(shù)據(jù)進(jìn)行分析更可能找出潛在質(zhì)量問題.Tomcat根據(jù)同時(shí)修改關(guān)系劃分的結(jié)果見表3.

    我們發(fā)現(xiàn),社區(qū)17中的奇異點(diǎn)源文件el/ImplicitObjectELResolver.java和同一社區(qū)中的所有源文件沒有任何依賴,但是卻大量與它們一起提交.經(jīng)過分析,此源文件與同一社區(qū)中的el/BeanELResolver.java代碼十分相似,大部分是重復(fù)的.這種情況不止一處,社區(qū)43中,文件authenticator/TesterDigestAuthenticatorPerformance.java和同一社區(qū)中另一文件authenticator/TestDigestAuthenticator.java之間沒有依賴卻同時(shí)提交,經(jīng)過兩文件對(duì)比分析,發(fā)現(xiàn)存在部分代碼重復(fù)的現(xiàn)象.而在社區(qū)26中,我們發(fā)現(xiàn)三個(gè)文件valves/RemoteIpValve,filters/RemoteIpFilter 和 filters/ExpiresFilter的部分代碼均是按照同一模板而寫,社區(qū)22中的四個(gè)文件startup/WebRuleSet,startup/NamingRuleSet,starup/SetNextNamingRule,startup/ConnectorCreateRule也是同一個(gè)模板.可見,通過此方法分析奇異點(diǎn)可以發(fā)現(xiàn)軟件中可能存在問題的地方.

    對(duì)于Restunit,我們也計(jì)算了每個(gè)社區(qū)的總節(jié)點(diǎn)數(shù),關(guān)系簇和奇異點(diǎn),實(shí)驗(yàn)結(jié)果見表4.

    表4 Restunit根據(jù)同時(shí)修改關(guān)系劃分Table 4 Restunit partition according to co-change

    對(duì)奇異點(diǎn)進(jìn)行分析我們發(fā)現(xiàn)影響項(xiàng)目質(zhì)量的問題,我們將現(xiàn)象以圖的形式展示,并做分析.圖4展現(xiàn)了文件之間的依賴關(guān)系和它們?cè)谏鐓^(qū)劃分中的情況.記奇異點(diǎn)源文件restunit/SSLRequirement.java為S,記同一社區(qū)中的其他兩個(gè)源文件restunit/RestTest.java為A,restunit/RestTestResult.java為B.我們發(fā)現(xiàn)S與A和B沒有任何的依賴關(guān)系,但是存在源文件P,即restunit/RestCall.java,引用了S,而A和B都直接或者是間接的引用了P,B引用了源文件Q,即restunit/RestCallResult.java,而Q源文件引用了源文件P.有趣的是P源文件沒有和任何的源文件一起提交過,反而是S頻繁與A和B源文件一起提交.

    圖4 質(zhì)量問題1說明圖Fig.4 Description of quality issue 1

    如果兩個(gè)文件之間有很強(qiáng)的關(guān)系,即在提交中大量被同時(shí)修改,但它們之間不是直接引用或者調(diào)用的話,在出現(xiàn)bug或者維護(hù)時(shí)需要修改文件時(shí)會(huì)十分不方便.例如程序員在做出修改時(shí)很可能不會(huì)發(fā)現(xiàn)另一個(gè)文件也要做出修改,因?yàn)樗鼈冎g沒有直接調(diào)用.所以出現(xiàn)這種現(xiàn)象會(huì)降低軟件的可維護(hù)性,也反映出設(shè)計(jì)上的失誤.

    類似的,我們還發(fā)現(xiàn)另一種情況,并將文件之間的依賴關(guān)系和它們?cè)谏鐓^(qū)劃分中的情況展示見圖5.記奇異點(diǎn)源文件restunit/TestRestUnit.java為S,記同一社區(qū)中的其他兩個(gè)源文件restunit/TestAssertions.java為A,http/RESTTreeHttp.java為B.我們發(fā)現(xiàn)S與A和B沒有任何依賴關(guān)系,但是存在源文件P,即restunit/RestCallResponse.java,S、A、B源文件都引用了P源文件.P源文件幾乎沒有被修改過,而S、A、B卻大量同時(shí)被修改.這種情況下,P被視為不活躍的點(diǎn)而在兩種劃分中都被去掉,一定意義上影響了根據(jù)依賴關(guān)系的劃分中,S與A和B劃分到同一社區(qū).這種現(xiàn)象的產(chǎn)生可能是因?yàn)槭褂谜邔?duì)P中類錯(cuò)誤的引用,這也加大了項(xiàng)目風(fēng)險(xiǎn).

    圖5 質(zhì)量問題2說明圖Fig.5 Description of quality issue 2

    綜上,我們可以說出現(xiàn)依賴關(guān)系和同時(shí)修改關(guān)系不一致現(xiàn)象的項(xiàng)目可能存在問題.最典型的問題是代碼的復(fù)制粘貼現(xiàn)象,這種單純的復(fù)制粘貼降低了代碼的重用性,進(jìn)而降低了軟件的可維護(hù)性,是影響軟件項(xiàng)目質(zhì)量的重要原因.而實(shí)驗(yàn)結(jié)果中提到的另外兩種引用造成的不一致,從項(xiàng)目本身出發(fā),其中也存在一些設(shè)計(jì)上的不合理.所以我們可以從項(xiàng)目中源文件的依賴關(guān)系和其同時(shí)修改關(guān)系是否具有一致性來發(fā)現(xiàn)軟件項(xiàng)目中存在的問題.

    4 討 論

    實(shí)驗(yàn)運(yùn)用復(fù)雜網(wǎng)絡(luò)研究中的社團(tuán)檢測(cè)方法對(duì)軟件工程中項(xiàng)目源文件依賴關(guān)系與同時(shí)修改關(guān)系的一致性進(jìn)行了探究.實(shí)驗(yàn)結(jié)果符合已知的規(guī)律,從中我們發(fā)現(xiàn)兩種關(guān)系不一致的軟件項(xiàng)目中可能存在問題,經(jīng)過仔細(xì)對(duì)代碼分析,找出了其中的原因,最典型的有代碼的復(fù)制粘貼和混亂的引用關(guān)系.

    實(shí)驗(yàn)方法上具有一定的局限性.對(duì)于依賴關(guān)系大小的衡量上,我們單純的用源文件之間引用調(diào)用的數(shù)量來判斷,從實(shí)驗(yàn)結(jié)果來看,這是不全面的,有些源文件引用調(diào)用數(shù)量很少,但是這少量的依賴卻是非常的重要,以至于它們大量同時(shí)被修改,即同時(shí)修改關(guān)系十分的緊密.對(duì)于根據(jù)同時(shí)修改關(guān)系對(duì)源文件進(jìn)行劃分中,為了排除干擾,縮小數(shù)據(jù)規(guī)模,對(duì)數(shù)據(jù)做出一定的刪減,這種刪減是合理而有效的,但是這種處理也不可避免的在實(shí)驗(yàn)結(jié)果上造成了小部分的錯(cuò)誤,比如有些源文件與其他源文件有很強(qiáng)的依賴關(guān)系,但其本身修改的次數(shù)就非常少,在數(shù)據(jù)縮減中我們忽略了它與其他源文件的聯(lián)系,從結(jié)果上看就無法證明具有依賴關(guān)系的源文件更容易被同時(shí)修改的觀點(diǎn).但在我們實(shí)驗(yàn)中由于這種原因造成的奇異點(diǎn)數(shù)量占總結(jié)點(diǎn)數(shù)量不足3%,所以不影響整體的判斷.

    實(shí)驗(yàn)項(xiàng)目的選擇上,我們傾向于選擇中小型規(guī)模的項(xiàng)目,對(duì)于較大規(guī)模的項(xiàng)目因?yàn)闂l件所限沒有進(jìn)行嘗試,有一定的局限性.

    5 結(jié) 論

    我們對(duì)項(xiàng)目中源文件的依賴關(guān)系與其在提交信息中同時(shí)修改關(guān)系的一致性進(jìn)行了分析,得出以下結(jié)論:

    在質(zhì)量較高的軟件項(xiàng)目中,源文件的依賴關(guān)系與同時(shí)修改關(guān)系有非常強(qiáng)的一致性.有依賴的源文件更容易被同時(shí)修改,同時(shí)大量修改的源文件之間往往存在依賴.

    如果存在沒有依賴關(guān)系而被同時(shí)大量提交的源文件,軟件項(xiàng)目中很可能存在一定的問題,比如代碼的復(fù)制粘貼現(xiàn)象,或者混亂的引用情況.

    未來的研究中,我們可以嘗試更多不同規(guī)模的項(xiàng)目,看是否與我們的猜想相符.在項(xiàng)目中源文件的依賴關(guān)系和其同時(shí)修改關(guān)系具有一致性的前提下,我們可以探究更多造成不一致的原因,分析它們是否降低了軟件項(xiàng)目的質(zhì)量.進(jìn)而,我們可以用這種方法偵測(cè)軟件項(xiàng)目架構(gòu)上的問題.為了分析實(shí)驗(yàn)結(jié)果,我們提出了關(guān)系簇的概念,顯然關(guān)系簇?cái)?shù)目越小,兩種關(guān)系更具有一致性,這種簡單指標(biāo)一定程度上可以用作軟件項(xiàng)目質(zhì)量的評(píng)定,但還需要更多的實(shí)驗(yàn)來證明.

    猜你喜歡
    源文件一致性軟件
    關(guān)注減污降碳協(xié)同的一致性和整體性
    公民與法治(2022年5期)2022-07-29 00:47:28
    禪宗軟件
    英語文摘(2021年10期)2021-11-22 08:02:26
    注重教、學(xué)、評(píng)一致性 提高一輪復(fù)習(xí)效率
    IOl-master 700和Pentacam測(cè)量Kappa角一致性分析
    基于源文件可疑度的軟件缺陷定位方法研究
    軟件對(duì)對(duì)碰
    LKJ基礎(chǔ)數(shù)據(jù)源文件自動(dòng)編制系統(tǒng)的研究
    基于事件觸發(fā)的多智能體輸入飽和一致性控制
    談軟件的破解與保護(hù)
    精品(2015年9期)2015-01-23 01:36:01
    基于數(shù)據(jù)透視表的實(shí)驗(yàn)室管理
    亚洲av美国av| 女警被强在线播放| 亚洲欧美日韩高清在线视频 | 最黄视频免费看| 亚洲精品国产一区二区精华液| 丁香六月欧美| 黄色 视频免费看| 日韩 欧美 亚洲 中文字幕| 久久国产精品大桥未久av| 亚洲一卡2卡3卡4卡5卡精品中文| 久久午夜综合久久蜜桃| 韩国高清视频一区二区三区| 国产真人三级小视频在线观看| 波野结衣二区三区在线| 女人精品久久久久毛片| 欧美性长视频在线观看| 香蕉国产在线看| 男女边吃奶边做爰视频| 夜夜骑夜夜射夜夜干| 亚洲伊人色综图| www.999成人在线观看| 国产成人精品久久二区二区91| 亚洲免费av在线视频| 免费一级毛片在线播放高清视频 | 久久精品人人爽人人爽视色| 国产成人一区二区三区免费视频网站 | 精品少妇久久久久久888优播| 一级黄色大片毛片| 亚洲精品一二三| 男的添女的下面高潮视频| 爱豆传媒免费全集在线观看| 在现免费观看毛片| 波多野结衣av一区二区av| 久久国产精品大桥未久av| 十八禁人妻一区二区| 18在线观看网站| 丝袜人妻中文字幕| 免费女性裸体啪啪无遮挡网站| 国产精品av久久久久免费| 精品一区二区三卡| 99久久人妻综合| 91成人精品电影| 老司机靠b影院| 伊人久久大香线蕉亚洲五| 精品人妻1区二区| h视频一区二区三区| 男女之事视频高清在线观看 | 丰满饥渴人妻一区二区三| 久久天堂一区二区三区四区| 久久久久久久久久久久大奶| 久久久精品94久久精品| 国产亚洲一区二区精品| 国产一区二区三区综合在线观看| 日本午夜av视频| 青青草视频在线视频观看| 国产精品国产三级国产专区5o| 成人午夜精彩视频在线观看| 欧美亚洲 丝袜 人妻 在线| 国产精品三级大全| 一边摸一边做爽爽视频免费| 精品人妻熟女毛片av久久网站| 十八禁人妻一区二区| 欧美少妇被猛烈插入视频| 9热在线视频观看99| 欧美97在线视频| 国产成人精品久久二区二区91| 成年女人毛片免费观看观看9 | 国产精品一区二区在线观看99| 精品熟女少妇八av免费久了| 91精品伊人久久大香线蕉| 成年av动漫网址| 视频区欧美日本亚洲| 在线观看免费午夜福利视频| 亚洲欧美一区二区三区久久| 亚洲图色成人| 午夜福利免费观看在线| 可以免费在线观看a视频的电影网站| 中文字幕精品免费在线观看视频| 国产主播在线观看一区二区 | 久久久久久久大尺度免费视频| 人人妻人人爽人人添夜夜欢视频| 在线观看免费午夜福利视频| 婷婷色综合www| 波多野结衣av一区二区av| 欧美xxⅹ黑人| 欧美少妇被猛烈插入视频| 狂野欧美激情性bbbbbb| 欧美人与善性xxx| 日本午夜av视频| 久久 成人 亚洲| 日韩制服丝袜自拍偷拍| 久久中文字幕一级| 国产精品 欧美亚洲| 九色亚洲精品在线播放| 亚洲成人免费av在线播放| 国产淫语在线视频| 亚洲男人天堂网一区| 午夜免费男女啪啪视频观看| 国产伦理片在线播放av一区| 国产av一区二区精品久久| 久热这里只有精品99| 99国产综合亚洲精品| e午夜精品久久久久久久| 一本久久精品| 国产午夜精品一二区理论片| 69精品国产乱码久久久| 美国免费a级毛片| 在线观看一区二区三区激情| 日韩大码丰满熟妇| xxxhd国产人妻xxx| 无遮挡黄片免费观看| 日本a在线网址| 日本猛色少妇xxxxx猛交久久| 亚洲欧美日韩另类电影网站| 成年人免费黄色播放视频| 免费在线观看黄色视频的| 美女福利国产在线| 天天影视国产精品| 免费人妻精品一区二区三区视频| 免费在线观看日本一区| 国产一区有黄有色的免费视频| 男女免费视频国产| 成人影院久久| 黑人巨大精品欧美一区二区蜜桃| 亚洲国产精品一区二区三区在线| 9色porny在线观看| 人人妻,人人澡人人爽秒播 | 精品卡一卡二卡四卡免费| 极品少妇高潮喷水抽搐| 亚洲精品自拍成人| 91精品国产国语对白视频| 亚洲av成人不卡在线观看播放网 | 自拍欧美九色日韩亚洲蝌蚪91| 在线 av 中文字幕| 国产精品国产av在线观看| 婷婷色麻豆天堂久久| 激情五月婷婷亚洲| 日韩一卡2卡3卡4卡2021年| 大话2 男鬼变身卡| 日本一区二区免费在线视频| av网站在线播放免费| 亚洲欧美清纯卡通| 人人妻,人人澡人人爽秒播 | 国产精品秋霞免费鲁丝片| 久久99热这里只频精品6学生| 国产亚洲一区二区精品| 自线自在国产av| 久久天堂一区二区三区四区| 亚洲一区二区三区欧美精品| 欧美国产精品一级二级三级| 欧美精品啪啪一区二区三区 | 99re6热这里在线精品视频| 女警被强在线播放| 成年人午夜在线观看视频| 久久久国产欧美日韩av| 久久亚洲精品不卡| 美女高潮到喷水免费观看| 国产熟女欧美一区二区| 男女下面插进去视频免费观看| 免费看十八禁软件| 日本色播在线视频| xxx大片免费视频| 国产99久久九九免费精品| 成年人午夜在线观看视频| 欧美+亚洲+日韩+国产| 一本一本久久a久久精品综合妖精| 日韩av在线免费看完整版不卡| 欧美大码av| 国产欧美日韩一区二区三区在线| cao死你这个sao货| 美女福利国产在线| 91麻豆精品激情在线观看国产 | 脱女人内裤的视频| 日韩视频在线欧美| 操出白浆在线播放| 水蜜桃什么品种好| 亚洲av电影在线进入| 91麻豆av在线| 三上悠亚av全集在线观看| 国产精品av久久久久免费| 多毛熟女@视频| 欧美 日韩 精品 国产| 久久人妻福利社区极品人妻图片 | 啦啦啦 在线观看视频| 两人在一起打扑克的视频| 一二三四在线观看免费中文在| 捣出白浆h1v1| 成人三级做爰电影| 在线观看www视频免费| 色网站视频免费| 激情五月婷婷亚洲| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲熟女精品中文字幕| 国产老妇伦熟女老妇高清| 亚洲成av片中文字幕在线观看| 国产成人91sexporn| 亚洲欧美一区二区三区国产| 亚洲成色77777| 久久久久久亚洲精品国产蜜桃av| 亚洲国产欧美日韩在线播放| 久久久久久久久久久久大奶| 一级毛片我不卡| 国产午夜精品一二区理论片| 一本—道久久a久久精品蜜桃钙片| 9热在线视频观看99| 黄色视频不卡| √禁漫天堂资源中文www| 国产成人欧美| 久久久久久久久久久久大奶| 亚洲色图综合在线观看| 久久久欧美国产精品| 亚洲国产av影院在线观看| 五月天丁香电影| 在线精品无人区一区二区三| √禁漫天堂资源中文www| 久久久久久人人人人人| 伊人亚洲综合成人网| 日日摸夜夜添夜夜爱| 亚洲国产看品久久| 亚洲av成人精品一二三区| 精品福利观看| 肉色欧美久久久久久久蜜桃| 中文字幕av电影在线播放| 亚洲精品久久成人aⅴ小说| 久久久亚洲精品成人影院| 91麻豆av在线| 亚洲国产欧美网| 建设人人有责人人尽责人人享有的| av欧美777| 精品久久久久久久毛片微露脸 | 免费看不卡的av| 电影成人av| 久久久精品94久久精品| 亚洲欧美中文字幕日韩二区| 亚洲欧美色中文字幕在线| 欧美精品一区二区大全| 国产精品欧美亚洲77777| 成年av动漫网址| 性色av乱码一区二区三区2| 亚洲国产av影院在线观看| 久久国产精品人妻蜜桃| 天天躁夜夜躁狠狠久久av| 亚洲国产中文字幕在线视频| 2021少妇久久久久久久久久久| 日韩电影二区| 只有这里有精品99| 亚洲国产欧美网| 国产淫语在线视频| 国产精品熟女久久久久浪| 国产成人精品久久久久久| 激情五月婷婷亚洲| 另类精品久久| 精品人妻在线不人妻| 色精品久久人妻99蜜桃| 国产成人av教育| 亚洲国产中文字幕在线视频| 色婷婷久久久亚洲欧美| 一本综合久久免费| 精品国产一区二区三区四区第35| 亚洲一区二区三区欧美精品| 成人影院久久| 久热爱精品视频在线9| 精品一品国产午夜福利视频| 国产福利在线免费观看视频| 国产男女内射视频| 99国产精品一区二区三区| 丝袜喷水一区| 性色av乱码一区二区三区2| 十分钟在线观看高清视频www| 欧美国产精品va在线观看不卡| 涩涩av久久男人的天堂| 日韩熟女老妇一区二区性免费视频| 国产麻豆69| 一本大道久久a久久精品| 一个人免费看片子| av有码第一页| 爱豆传媒免费全集在线观看| 午夜激情av网站| 久久亚洲国产成人精品v| 亚洲精品久久久久久婷婷小说| 脱女人内裤的视频| 亚洲精品国产av蜜桃| 深夜精品福利| 黄色片一级片一级黄色片| 2021少妇久久久久久久久久久| 国产精品香港三级国产av潘金莲 | 国产一区二区 视频在线| 亚洲五月色婷婷综合| 欧美黄色片欧美黄色片| 国产极品粉嫩免费观看在线| 国产精品熟女久久久久浪| 午夜福利一区二区在线看| 日本色播在线视频| 久久精品久久精品一区二区三区| 亚洲av综合色区一区| 国产免费现黄频在线看| 菩萨蛮人人尽说江南好唐韦庄| 亚洲欧美清纯卡通| 亚洲精品久久成人aⅴ小说| 欧美亚洲 丝袜 人妻 在线| 久久久久久久精品精品| 伊人久久大香线蕉亚洲五| 精品国产一区二区三区久久久樱花| 爱豆传媒免费全集在线观看| 一区二区三区激情视频| 夫妻性生交免费视频一级片| 成人三级做爰电影| 亚洲一区中文字幕在线| 免费少妇av软件| 精品国产一区二区三区久久久樱花| 精品久久蜜臀av无| www日本在线高清视频| 亚洲视频免费观看视频| 久久这里只有精品19| 90打野战视频偷拍视频| 两性夫妻黄色片| 色播在线永久视频| 黑人巨大精品欧美一区二区蜜桃| 色网站视频免费| 国产精品亚洲av一区麻豆| 欧美人与性动交α欧美软件| 亚洲国产毛片av蜜桃av| 欧美日韩成人在线一区二区| 国产成人av激情在线播放| 丝瓜视频免费看黄片| 日本黄色日本黄色录像| 国产黄频视频在线观看| 高潮久久久久久久久久久不卡| 亚洲欧美一区二区三区国产| 成年人免费黄色播放视频| 国产精品成人在线| 亚洲,一卡二卡三卡| 亚洲少妇的诱惑av| 亚洲七黄色美女视频| 18禁裸乳无遮挡动漫免费视频| 欧美国产精品va在线观看不卡| 午夜免费观看性视频| 久9热在线精品视频| 一本综合久久免费| 久热这里只有精品99| 国产一区二区三区av在线| 欧美 亚洲 国产 日韩一| 高清视频免费观看一区二区| 一本色道久久久久久精品综合| 美女国产高潮福利片在线看| 久久狼人影院| 高清黄色对白视频在线免费看| 两人在一起打扑克的视频| 午夜91福利影院| 久热这里只有精品99| 免费观看a级毛片全部| 最近手机中文字幕大全| 一区福利在线观看| 男的添女的下面高潮视频| 久久99热这里只频精品6学生| 亚洲成人免费av在线播放| 视频在线观看一区二区三区| 国产成人免费无遮挡视频| 欧美黑人精品巨大| 亚洲色图 男人天堂 中文字幕| 又紧又爽又黄一区二区| 国产黄色免费在线视频| 日韩一区二区三区影片| 如日韩欧美国产精品一区二区三区| 一边摸一边做爽爽视频免费| 成年人黄色毛片网站| 亚洲精品在线美女| 99精品久久久久人妻精品| 国产高清视频在线播放一区 | 夫妻午夜视频| 宅男免费午夜| 欧美精品av麻豆av| 亚洲,欧美,日韩| 色视频在线一区二区三区| 国产欧美日韩一区二区三 | 亚洲色图综合在线观看| 午夜福利免费观看在线| 日韩免费高清中文字幕av| 中文字幕人妻丝袜制服| 亚洲一区中文字幕在线| av网站免费在线观看视频| 欧美日韩精品网址| 这个男人来自地球电影免费观看| 国产精品一二三区在线看| 久久精品亚洲av国产电影网| 免费在线观看影片大全网站 | 国产亚洲av高清不卡| 婷婷色麻豆天堂久久| 日韩一区二区三区影片| 在线观看免费日韩欧美大片| 国产亚洲一区二区精品| 国产精品一国产av| 中文字幕亚洲精品专区| 午夜老司机福利片| 三上悠亚av全集在线观看| 亚洲av成人精品一二三区| 精品人妻1区二区| 十分钟在线观看高清视频www| 国产精品麻豆人妻色哟哟久久| 91麻豆av在线| 久久亚洲精品不卡| 久久久久精品国产欧美久久久 | 精品久久久久久久毛片微露脸 | 亚洲三区欧美一区| 国产精品偷伦视频观看了| 国产精品久久久久久精品古装| 日本色播在线视频| 天天躁夜夜躁狠狠躁躁| 精品国产一区二区久久| 久久精品国产a三级三级三级| 亚洲av成人精品一二三区| 新久久久久国产一级毛片| 中文字幕色久视频| 精品国产一区二区三区四区第35| 国产精品三级大全| 国产一卡二卡三卡精品| 我的亚洲天堂| 岛国毛片在线播放| 99久久99久久久精品蜜桃| 精品国产一区二区三区久久久樱花| 国产精品久久久久成人av| 人成视频在线观看免费观看| 97人妻天天添夜夜摸| 国产精品国产三级专区第一集| 蜜桃国产av成人99| 欧美日韩福利视频一区二区| 精品人妻1区二区| 大码成人一级视频| 久久久精品免费免费高清| 两个人看的免费小视频| 日韩,欧美,国产一区二区三区| 99久久综合免费| 少妇裸体淫交视频免费看高清 | 中文字幕亚洲精品专区| 性少妇av在线| 国产xxxxx性猛交| 亚洲欧洲日产国产| 欧美老熟妇乱子伦牲交| 久久青草综合色| 成人亚洲精品一区在线观看| 一本大道久久a久久精品| 男的添女的下面高潮视频| 亚洲成人免费电影在线观看 | 免费在线观看日本一区| 国产亚洲欧美在线一区二区| 欧美人与性动交α欧美软件| 色精品久久人妻99蜜桃| 飞空精品影院首页| 国产精品亚洲av一区麻豆| 亚洲精品一区蜜桃| 亚洲欧洲国产日韩| 日本五十路高清| 中文精品一卡2卡3卡4更新| 亚洲国产精品国产精品| 人人妻人人澡人人看| 十八禁高潮呻吟视频| 又粗又硬又长又爽又黄的视频| 久久毛片免费看一区二区三区| 色视频在线一区二区三区| 波野结衣二区三区在线| 亚洲国产精品成人久久小说| 香蕉国产在线看| av线在线观看网站| 欧美日韩亚洲国产一区二区在线观看 | av视频免费观看在线观看| 国产成人av激情在线播放| 久久久国产精品麻豆| 热99国产精品久久久久久7| 视频在线观看一区二区三区| 999久久久国产精品视频| 午夜福利在线免费观看网站| 国产老妇伦熟女老妇高清| 免费高清在线观看视频在线观看| 嫩草影视91久久| 国产男人的电影天堂91| 高清视频免费观看一区二区| 亚洲国产最新在线播放| 日韩av在线免费看完整版不卡| 每晚都被弄得嗷嗷叫到高潮| 18禁裸乳无遮挡动漫免费视频| 精品人妻在线不人妻| 亚洲精品久久午夜乱码| 一级毛片黄色毛片免费观看视频| 亚洲精品成人av观看孕妇| 99精品久久久久人妻精品| 伊人久久大香线蕉亚洲五| 国产男人的电影天堂91| 在线精品无人区一区二区三| 亚洲欧美清纯卡通| 一区二区三区精品91| 老熟女久久久| 欧美国产精品一级二级三级| 五月开心婷婷网| 亚洲精品日本国产第一区| 成人手机av| www.自偷自拍.com| 久久久国产一区二区| 国产精品二区激情视频| 久久 成人 亚洲| 国产福利在线免费观看视频| 老汉色∧v一级毛片| 桃花免费在线播放| 国产不卡av网站在线观看| 男男h啪啪无遮挡| 亚洲国产精品一区二区三区在线| 欧美日韩黄片免| 欧美黄色淫秽网站| 亚洲第一av免费看| 国产亚洲欧美精品永久| 欧美97在线视频| 国产成人精品久久二区二区91| 一级毛片 在线播放| 成人国产一区最新在线观看 | 一本综合久久免费| 国产av精品麻豆| 女人爽到高潮嗷嗷叫在线视频| 大陆偷拍与自拍| 99九九在线精品视频| 99国产综合亚洲精品| 99国产精品一区二区三区| 久久精品国产亚洲av高清一级| 欧美国产精品va在线观看不卡| 久久99一区二区三区| 曰老女人黄片| 色精品久久人妻99蜜桃| 一边摸一边做爽爽视频免费| 久久性视频一级片| 另类精品久久| av福利片在线| 老熟女久久久| 首页视频小说图片口味搜索 | 91麻豆av在线| 一区福利在线观看| 伦理电影免费视频| 亚洲av美国av| av在线播放精品| 色94色欧美一区二区| 国产免费一区二区三区四区乱码| 亚洲精品自拍成人| 极品少妇高潮喷水抽搐| 丰满迷人的少妇在线观看| 精品国产乱码久久久久久男人| 建设人人有责人人尽责人人享有的| 亚洲免费av在线视频| 亚洲av美国av| 在现免费观看毛片| 在线观看免费午夜福利视频| 久久久精品免费免费高清| 丝袜美足系列| 最新的欧美精品一区二区| 日本五十路高清| 国产一区二区 视频在线| 你懂的网址亚洲精品在线观看| 一区二区三区激情视频| 国产精品人妻久久久影院| 十八禁网站网址无遮挡| 亚洲午夜精品一区,二区,三区| 免费在线观看黄色视频的| 人妻 亚洲 视频| 国产成人精品久久二区二区免费| 最新的欧美精品一区二区| 国产亚洲av片在线观看秒播厂| 国产日韩一区二区三区精品不卡| 中文字幕另类日韩欧美亚洲嫩草| 婷婷色av中文字幕| 亚洲精品国产一区二区精华液| 美女高潮到喷水免费观看| 亚洲欧美一区二区三区国产| 99久久精品国产亚洲精品| 免费在线观看完整版高清| 欧美 亚洲 国产 日韩一| 观看av在线不卡| 国产淫语在线视频| 亚洲国产欧美网| 国产精品偷伦视频观看了| 国产又爽黄色视频| 在线观看免费高清a一片| 亚洲精品日韩在线中文字幕| 国产亚洲精品第一综合不卡| 日本av手机在线免费观看| av网站免费在线观看视频| 亚洲国产精品国产精品| 天堂8中文在线网| 高清黄色对白视频在线免费看| 亚洲 国产 在线| 国产视频首页在线观看| 免费女性裸体啪啪无遮挡网站| 亚洲国产成人一精品久久久| 男女国产视频网站| 欧美日韩亚洲综合一区二区三区_| 婷婷成人精品国产| 国产精品 欧美亚洲| 国产精品av久久久久免费| 亚洲国产欧美日韩在线播放| 欧美少妇被猛烈插入视频| 精品国产乱码久久久久久男人| 老司机靠b影院| 一级毛片电影观看| 中文字幕另类日韩欧美亚洲嫩草| 女人被躁到高潮嗷嗷叫费观| 男女国产视频网站| 男女之事视频高清在线观看 | 青草久久国产| 国产xxxxx性猛交| 亚洲av片天天在线观看| 如日韩欧美国产精品一区二区三区| avwww免费| av电影中文网址| 在线观看免费午夜福利视频| 欧美老熟妇乱子伦牲交| 亚洲一区中文字幕在线| 日本vs欧美在线观看视频| 一二三四社区在线视频社区8| 亚洲专区国产一区二区| 中文字幕色久视频|