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

        ?

        軟件體系結(jié)構(gòu)評(píng)價(jià)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

        2019-05-24 14:17:58高雄張貴友唐秀蓮
        軟件導(dǎo)刊 2019年5期

        高雄 張貴友 唐秀蓮

        摘 要 :現(xiàn)有評(píng)估方法很少考慮模塊間依賴關(guān)系程度,導(dǎo)致軟件結(jié)構(gòu)評(píng)估結(jié)果不能準(zhǔn)確反映軟件質(zhì)量?;赑ageRank思想計(jì)算軟件中各模塊的依賴關(guān)系權(quán)重,改進(jìn)解耦水平(DL)的結(jié)構(gòu)評(píng)價(jià),開(kāi)發(fā)了一個(gè)軟件結(jié)構(gòu)質(zhì)量評(píng)價(jià)平臺(tái),并分別在6個(gè)數(shù)據(jù)集上實(shí)驗(yàn),比較改進(jìn)前后DL的準(zhǔn)確度。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的DL在4個(gè)指標(biāo)上都有較大提高,更能準(zhǔn)確反映軟件質(zhì)量狀況。

        關(guān)鍵詞:軟件質(zhì)量評(píng)價(jià);傳播代價(jià);獨(dú)立水平;解耦水平;PageRank

        DOI:10. 11907/rjdk. 182348

        中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)005-0137-05

        Abstract: In order to improve the situation that the lack of attention on the module dependency in the software leads to the inaccurate evaluation result of the software quality, we calculate the dependency weight of each module in the software on the basis of the PageRank idea to improve the decoupling level (DL) structural evaluation. We establish a software structure quality evaluation platform and experimentally compare the accuracy of DL before and after the improvement on six data sets. The experimental results show that the improved DL has a greater improvement in the four indicators, so it can reflect the quality of the software more accurately.

        Key Words: software quality evaluation; propagation cost; independency level; decoupling level; PageRank

        0 引言

        隨著軟件產(chǎn)業(yè)飛速發(fā)展,軟件規(guī)模越來(lái)越大,功能越來(lái)越復(fù)雜,代碼量也隨之越來(lái)越大。因此,反映軟件模塊間關(guān)系的結(jié)構(gòu)好壞直接影響軟件質(zhì)量。結(jié)構(gòu)好的軟件憑借其良好擴(kuò)展性和模塊獨(dú)立性,不僅可以簡(jiǎn)化開(kāi)發(fā)人員的工作量,而且可以保證軟件質(zhì)量。

        在實(shí)際開(kāi)發(fā)過(guò)程中,由于開(kāi)發(fā)任務(wù)繁重,開(kāi)發(fā)者很難保證每次都能遵循設(shè)計(jì)好的軟件結(jié)構(gòu),但僅憑觀察代碼很難評(píng)價(jià)軟件結(jié)構(gòu)好壞,因此設(shè)計(jì)軟件體系結(jié)構(gòu)評(píng)估方法是至關(guān)重要的一環(huán)。現(xiàn)有軟件結(jié)構(gòu)評(píng)價(jià)技術(shù)側(cè)重于通過(guò)計(jì)算軟件系統(tǒng)中各模塊間耦合程度評(píng)鑒軟件的結(jié)構(gòu)質(zhì)量,即通過(guò)傳播代價(jià)(Propagation Cost,PC)[1]、獨(dú)立水平(Independency Level,IL)[2]和解耦水平(Decoupling Level,DL)[3]定量地評(píng)價(jià)出軟件結(jié)構(gòu)質(zhì)量。在上述3個(gè)指標(biāo)中,DL指標(biāo)是最具代表性的,但它分配給軟件中各模塊的權(quán)重由模塊中文件數(shù)量得到,沒(méi)有考慮模塊間不同依賴關(guān)系對(duì)軟件質(zhì)量的影響程度不同。本文提出通過(guò)PageRank算法計(jì)算出軟件中各模塊的依賴關(guān)系權(quán)重,從而提高DL度量準(zhǔn)確性,并結(jié)合PC、IL、DL以及改進(jìn)的DL(Improved DL,IDL)4種評(píng)價(jià)指標(biāo)開(kāi)發(fā)出一個(gè)軟件結(jié)構(gòu)質(zhì)量評(píng)價(jià)平臺(tái)。實(shí)驗(yàn)結(jié)果表明,IDL度量結(jié)構(gòu)有較好效果。

        1 研究現(xiàn)狀

        一直以來(lái),代碼質(zhì)量度量方法都是軟件質(zhì)量領(lǐng)域研究熱點(diǎn),常見(jiàn)度量元有McCabe循環(huán)復(fù)雜度[4]、Halstead度量元[5]、代碼行等。還有許多度量元專用于度量面向?qū)ο箝_(kāi)發(fā)的軟件,如CK度量元[6]、LK度量元[7]、MOOD度量元[8]等,可以用來(lái)預(yù)測(cè)質(zhì)量問(wèn)題或者定位缺陷位置[9-12]。此外,還有部分研究人員將不同度量元結(jié)合起來(lái),用于度量軟件可維護(hù)性,例如Oman[13] & Hagemeister[14]提出了可維護(hù)性指標(biāo)(MI),Bijlsma等[15]、Heitlager等[16]也進(jìn)行了類似工作。

        雖然目前面向代碼質(zhì)量的度量方法已經(jīng)相當(dāng)豐富,但是Nagappan等[17]指出,在不同軟件中,最合適的度量元并不一定相同;Menzies[18] 也指出從一個(gè)項(xiàng)目中收集到的數(shù)據(jù)在另一個(gè)項(xiàng)目中并不一定適用。所以,提出一個(gè)相對(duì)普適的軟件度量或評(píng)價(jià)方法成為當(dāng)下需要解決的關(guān)鍵問(wèn)題。

        為了科學(xué)有效地研究軟件體系結(jié)構(gòu),建立合適的模型描述軟件各個(gè)模塊間關(guān)系十分必要。Parnas等[19]提出的 information hiding principle把模塊當(dāng)作一個(gè)獨(dú)立的分配任務(wù)。另外,Baldwin等[20]提出的design rule theory理論表明,獨(dú)立模塊是由系統(tǒng)設(shè)計(jì)規(guī)則(DRs)解耦創(chuàng)建的,只要DRs保持穩(wěn)定,某個(gè)獨(dú)立模塊的改變就不會(huì)影響到其它模塊;Sullivan等[21]將該項(xiàng)理論引入軟件設(shè)計(jì)中來(lái),在軟件中design rule常常體現(xiàn)為接口和抽象類,當(dāng)接口和抽象類不變時(shí),滿足design rule的接口實(shí)現(xiàn)類的增加、刪除、更新,都不會(huì)影響到系統(tǒng)其它部分。這些理論雖然可以一定程度體現(xiàn)軟件結(jié)構(gòu)質(zhì)量,但是還不全面,并且沒(méi)有實(shí)際操作或算法體現(xiàn)。

        為了在軟件系統(tǒng)中監(jiān)測(cè)設(shè)計(jì)規(guī)則和獨(dú)立模塊,Cai等[22-23]利用聚類算法提出了設(shè)計(jì)規(guī)則等級(jí)(DRH),它把一個(gè)軟件分成若干層,其中最頂層往往是接口或抽象類等一些最重要的文件。文獻(xiàn)[24]將DRH用于軟件恢復(fù)。此后,相關(guān)學(xué)者又對(duì)DRH進(jìn)行了可視化,形成了設(shè)計(jì)結(jié)構(gòu)矩陣(DSM)。

        在上述理論基礎(chǔ)上,相關(guān)專家分別基于傳播代價(jià)、獨(dú)立水平、解耦水平提出了一些可行方案。具體有:

        (1)基于傳播代價(jià)的結(jié)構(gòu)評(píng)價(jià)。為了測(cè)量系統(tǒng)變化的修改性和影響,MacCormack等[1]提出的傳播代價(jià)是一種依賴結(jié)構(gòu)矩陣度量軟件系統(tǒng)可變性的方法。研究者可從架構(gòu)的依賴結(jié)構(gòu)矩陣視圖中提取穩(wěn)定性和傳播成本指標(biāo),表明變更傳播的可能性,因此它對(duì)未來(lái)維護(hù)成本和修改易用性產(chǎn)生了影響。提供一個(gè)依賴結(jié)構(gòu)矩陣,首先計(jì)算傳遞閉包添加間接依賴關(guān)系,然后計(jì)算矩陣中存在依賴關(guān)系的節(jié)點(diǎn)占總關(guān)系節(jié)點(diǎn)的比例。傳播代價(jià)數(shù)值越低,說(shuō)明軟件系統(tǒng)耦合性越低,結(jié)構(gòu)就越好。

        (2)基于獨(dú)立水平的結(jié)構(gòu)評(píng)價(jià)。由于環(huán)境因素的高度波動(dòng)性,模塊化和穩(wěn)定軟件開(kāi)發(fā)對(duì)軟件架構(gòu)師來(lái)說(shuō)是一個(gè)越來(lái)越大的挑戰(zhàn)。利益相關(guān)者關(guān)注是影響架構(gòu)決策的經(jīng)典外部因素,影響軟件的模塊性和穩(wěn)定性。因此,驅(qū)動(dòng)軟件變化的環(huán)境條件是推理傳統(tǒng)和現(xiàn)代架構(gòu)設(shè)計(jì)替代方案的關(guān)鍵步驟。直接受環(huán)境因素影響的架構(gòu)級(jí)決策對(duì)于在整個(gè)軟件開(kāi)發(fā)生命周期中保持模塊化和穩(wěn)定性至關(guān)重要。因此,需要從體系結(jié)構(gòu)模型而不是源代碼評(píng)估和權(quán)衡模塊化替代品。Cai等[22-23]提出的獨(dú)立水平,以量化設(shè)計(jì)支持模塊式獨(dú)立搜索和替換的程度,揭示哪種模塊化替代方案可以從高級(jí)模型中生成更穩(wěn)定的模塊化設(shè)計(jì)。

        (3)基于解耦水平的結(jié)構(gòu)評(píng)價(jià)。Baldwin等[20]認(rèn)為一個(gè)高可用模塊應(yīng)該是足夠小的并很少具有依賴性,設(shè)計(jì)規(guī)則的層次結(jié)構(gòu)允許人們?cè)u(píng)估軟件架構(gòu)潛力,以生成選項(xiàng)值,因?yàn)槠滹@式地識(shí)別模塊、大小以及它們之間是如何解耦的。因此,Cai等[22-23]提出了結(jié)構(gòu)水平以度量體系結(jié)構(gòu)與模塊的耦合程度。具體地,按設(shè)計(jì)規(guī)則的層次結(jié)構(gòu)將模塊劃分為層,計(jì)算每一層的結(jié)構(gòu)水平,然后求平均值。

        雖然基于解耦水平(DL)的結(jié)構(gòu)評(píng)價(jià)很好地實(shí)現(xiàn)了軟件分層計(jì)算,但是它分配給軟件中各模塊的權(quán)重是由模塊中文件數(shù)量得到的,沒(méi)有考慮到模塊間不同依賴關(guān)系對(duì)軟件質(zhì)量的影響程度不同,對(duì)一些核心文件是不公平的,例如被多次實(shí)現(xiàn)的接口類。針對(duì)該問(wèn)題,本文提出通過(guò)PageRank算法計(jì)算出軟件中各模塊依賴關(guān)系權(quán)重,以提高DL度量的準(zhǔn)確性。

        目前軟件結(jié)構(gòu)評(píng)價(jià)只停留在度量指標(biāo)設(shè)計(jì)上,沒(méi)有一個(gè)開(kāi)放平臺(tái)供開(kāi)發(fā)者們檢驗(yàn)自己的軟件結(jié)構(gòu)是否足夠好,并且,基于PageRank算法改進(jìn)DL的評(píng)價(jià)指標(biāo)理論上可以提高評(píng)價(jià)準(zhǔn)確度。本文從解決以上問(wèn)題入手開(kāi)展實(shí)證研究,對(duì)得到的數(shù)據(jù)進(jìn)行合理分析,并開(kāi)發(fā)出一個(gè)可供任意用戶使用的軟件質(zhì)量評(píng)價(jià)平臺(tái)。本文貢獻(xiàn)主要有:①基于PageRank算法改進(jìn)DL評(píng)價(jià)算法,并通過(guò)實(shí)驗(yàn)比較改進(jìn)前后的評(píng)價(jià)結(jié)果;②利用調(diào)研過(guò)程中得到的結(jié)論,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的軟件結(jié)構(gòu)評(píng)價(jià)平臺(tái)。該平臺(tái)基于B/S架構(gòu),具有用戶管理模塊、文件上傳模塊和結(jié)構(gòu)度量模塊等,可對(duì)用戶提交的軟件進(jìn)行質(zhì)量評(píng)價(jià)。

        2 DL算法演化

        2.1 DL介紹

        DL(Decoupling Level)是一個(gè)對(duì)Baldwin and Clark的Design Rule Theory與Parnas's Information Hiding Principle以及DRH理論的結(jié)合,是一個(gè)用來(lái)衡量軟件去偶成模塊后軟件結(jié)構(gòu)好壞程度的指標(biāo)?;贒RH理論,一個(gè)軟件被分為n個(gè)層,根據(jù)Baldwin and Clark的Design Rule Theory,在每層產(chǎn)生一些模塊,這些模塊根據(jù)Parnas理論是獨(dú)立的。一個(gè)軟件的DL,應(yīng)是經(jīng)過(guò)DRH分層之后每層[DLLi](0

        將[#AllFiles]定義為系統(tǒng)中文件的總數(shù),將[#File(Mj)]定義為DRH模塊中的文件數(shù)[Mj]。給定具有n層的DRH,其DL等于所有層DL的總和。

        3 改進(jìn)DL軟件質(zhì)量評(píng)估平臺(tái)

        本文搭建了一個(gè)B/S架構(gòu)的軟件結(jié)構(gòu)評(píng)價(jià)平臺(tái),專門(mén)用于評(píng)價(jià)Java項(xiàng)目。該平臺(tái)具有完善的用戶模塊和結(jié)構(gòu)質(zhì)量評(píng)價(jià)模塊,用戶登錄后,可以提交檢測(cè)軟件源碼壓縮包,服務(wù)器對(duì)其進(jìn)行解壓,分析出軟件中各模塊的依賴關(guān)系,然后計(jì)算PC、IL、DL、IDL,將計(jì)算結(jié)果保存到數(shù)據(jù)庫(kù),最終將評(píng)價(jià)結(jié)果展示在用戶頁(yè)面上。

        3.1 設(shè)計(jì)目的

        平臺(tái)開(kāi)發(fā)應(yīng)著重兩點(diǎn):對(duì)提交軟件進(jìn)行PC、IL、DL、IDL分析。由于軟件結(jié)構(gòu)指標(biāo)是一個(gè)較新的技術(shù),現(xiàn)在也沒(méi)有較為成熟的平臺(tái)或軟件提供對(duì)PC、IL、DL的分析,所以平臺(tái)最初目的是給開(kāi)發(fā)者們提供一個(gè)能夠分析軟件結(jié)構(gòu)指標(biāo)的便捷途徑,另一個(gè)目的是為改進(jìn)的DL收集更多檢測(cè)數(shù)據(jù)。由于改進(jìn)的DL測(cè)試樣本較少,希望通過(guò)該平臺(tái)收集大量樣本數(shù)據(jù),以論證改進(jìn)DL相較于原始DL的優(yōu)越性。在實(shí)驗(yàn)驗(yàn)證時(shí)發(fā)現(xiàn),改進(jìn)的DL在實(shí)際運(yùn)行過(guò)程中存在耗時(shí)較長(zhǎng)的問(wèn)題,希望通過(guò)檢測(cè)數(shù)據(jù)進(jìn)行測(cè)試和改進(jìn)。

        3.2 數(shù)據(jù)集

        本文使用了6個(gè)不同的真實(shí)代碼,以比較改進(jìn)前后DL的準(zhǔn)確度,其中包括:Apache Ant、ElasticSearch、Guava、Tetris、AircraftBattle、CRM。

        3.3 網(wǎng)站組織結(jié)構(gòu)

        如圖1所示,軟件質(zhì)量評(píng)測(cè)網(wǎng)的主要頁(yè)面是首頁(yè)和個(gè)人中心頁(yè)。首頁(yè)是軟件質(zhì)量評(píng)測(cè)的門(mén)戶頁(yè)面,為了便于開(kāi)發(fā)者使用,首頁(yè)風(fēng)格簡(jiǎn)潔,只提供上傳檢測(cè)、登錄和注冊(cè)功能。個(gè)人中心頁(yè)面提供與開(kāi)發(fā)者個(gè)人信息相關(guān)的頁(yè)面,如查看個(gè)人信息、修改密碼和查看檢測(cè)記錄等。

        3.4 網(wǎng)站功能模塊

        從開(kāi)發(fā)角度考慮整個(gè)網(wǎng)站,使用圖2刻畫(huà)網(wǎng)站內(nèi)部結(jié)構(gòu)。

        網(wǎng)站主要由5個(gè)模塊組成:用戶模塊、上傳模塊、分析依賴模塊、結(jié)構(gòu)度量模塊、視圖模塊。

        日韩精品一区二区三区四区视频| 无码夜色一区二区三区| 亚洲av熟女少妇久久| 丝袜美腿在线观看一区| 欧美最猛性xxxx| 粉嫩av国产一区二区三区| 亚洲av综合av一区| 亚洲va无码va在线va天堂| 亚洲女初尝黑人巨高清| 色八区人妻在线视频免费| 日韩a无v码在线播放| 小12箩利洗澡无码视频网站| 传媒在线无码| 91精品国产91久久综合桃花| 亚洲国产成人aⅴ毛片大全| 亚洲啊啊啊一区二区三区| 最新国内视频免费自拍一区| 国产亚洲精品一品二品| 国产影片一区二区三区| 精品熟人妻一区二区三区四区不卡| 亚洲爆乳无码专区www| 欧美私人情侣网站| 日韩插啊免费视频在线观看| 国产亚洲日韩欧美一区二区三区| 日韩av二区三区一区| 久久亚洲一级av一片| 久久人妻少妇嫩草av蜜桃 | 国产美女主播视频一二三区| а天堂中文最新一区二区三区| 黑人巨茎大战欧美白妇| 国产在线观看黄| 自拍视频国产在线观看| 在线视频观看一区二区| 精品人妻一区二区三区浪人在线| 国产网红主播无码精品| 国产suv精品一区二人妻| 丰满人妻妇伦又伦精品国产| 久久99精品久久久66| 国产毛片三区二区一区| 色婷婷精品大在线视频| 日本区一区二区三视频|