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

軟件體系結構評價平臺設計與實現

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

高雄 張貴友 唐秀蓮

摘 要 :現有評估方法很少考慮模塊間依賴關系程度,導致軟件結構評估結果不能準確反映軟件質量。基于PageRank思想計算軟件中各模塊的依賴關系權重,改進解耦水平(DL)的結構評價,開發了一個軟件結構質量評價平臺,并分別在6個數據集上實驗,比較改進前后DL的準確度。實驗結果表明,改進的DL在4個指標上都有較大提高,更能準確反映軟件質量狀況。

關鍵詞:軟件質量評價;傳播代價;獨立水平;解耦水平;PageRank

DOI:10. 11907/rjdk. 182348

中圖分類號:TP319 文獻標識碼:A 文章編號: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 引言

隨著軟件產業飛速發展,軟件規模越來越大,功能越來越復雜,代碼量也隨之越來越大。因此,反映軟件模塊間關系的結構好壞直接影響軟件質量。結構好的軟件憑借其良好擴展性和模塊獨立性,不僅可以簡化開發人員的工作量,而且可以保證軟件質量。

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

1 研究現狀

一直以來,代碼質量度量方法都是軟件質量領域研究熱點,常見度量元有McCabe循環復雜度[4]、Halstead度量元[5]、代碼行等。還有許多度量元專用于度量面向對象開發的軟件,如CK度量元[6]、LK度量元[7]、MOOD度量元[8]等,可以用來預測質量問題或者定位缺陷位置[9-12]。此外,還有部分研究人員將不同度量元結合起來,用于度量軟件可維護性,例如Oman[13] & Hagemeister[14]提出了可維護性指標(MI),Bijlsma等[15]、Heitlager等[16]也進行了類似工作。

雖然目前面向代碼質量的度量方法已經相當豐富,但是Nagappan等[17]指出,在不同軟件中,最合適的度量元并不一定相同;Menzies[18] 也指出從一個項目中收集到的數據在另一個項目中并不一定適用。所以,提出一個相對普適的軟件度量或評價方法成為當下需要解決的關鍵問題。

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

為了在軟件系統中監測設計規則和獨立模塊,Cai等[22-23]利用聚類算法提出了設計規則等級(DRH),它把一個軟件分成若干層,其中最頂層往往是接口或抽象類等一些最重要的文件。文獻[24]將DRH用于軟件恢復。此后,相關學者又對DRH進行了可視化,形成了設計結構矩陣(DSM)。

在上述理論基礎上,相關專家分別基于傳播代價、獨立水平、解耦水平提出了一些可行方案。具體有:

(1)基于傳播代價的結構評價。為了測量系統變化的修改性和影響,MacCormack等[1]提出的傳播代價是一種依賴結構矩陣度量軟件系統可變性的方法。研究者可從架構的依賴結構矩陣視圖中提取穩定性和傳播成本指標,表明變更傳播的可能性,因此它對未來維護成本和修改易用性產生了影響。提供一個依賴結構矩陣,首先計算傳遞閉包添加間接依賴關系,然后計算矩陣中存在依賴關系的節點占總關系節點的比例。傳播代價數值越低,說明軟件系統耦合性越低,結構就越好。

(2)基于獨立水平的結構評價。由于環境因素的高度波動性,模塊化和穩定軟件開發對軟件架構師來說是一個越來越大的挑戰。利益相關者關注是影響架構決策的經典外部因素,影響軟件的模塊性和穩定性。因此,驅動軟件變化的環境條件是推理傳統和現代架構設計替代方案的關鍵步驟。直接受環境因素影響的架構級決策對于在整個軟件開發生命周期中保持模塊化和穩定性至關重要。因此,需要從體系結構模型而不是源代碼評估和權衡模塊化替代品。Cai等[22-23]提出的獨立水平,以量化設計支持模塊式獨立搜索和替換的程度,揭示哪種模塊化替代方案可以從高級模型中生成更穩定的模塊化設計。

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

雖然基于解耦水平(DL)的結構評價很好地實現了軟件分層計算,但是它分配給軟件中各模塊的權重是由模塊中文件數量得到的,沒有考慮到模塊間不同依賴關系對軟件質量的影響程度不同,對一些核心文件是不公平的,例如被多次實現的接口類。針對該問題,本文提出通過PageRank算法計算出軟件中各模塊依賴關系權重,以提高DL度量的準確性。

目前軟件結構評價只停留在度量指標設計上,沒有一個開放平臺供開發者們檢驗自己的軟件結構是否足夠好,并且,基于PageRank算法改進DL的評價指標理論上可以提高評價準確度。本文從解決以上問題入手開展實證研究,對得到的數據進行合理分析,并開發出一個可供任意用戶使用的軟件質量評價平臺。本文貢獻主要有:①基于PageRank算法改進DL評價算法,并通過實驗比較改進前后的評價結果;②利用調研過程中得到的結論,實現了一個簡單的軟件結構評價平臺。該平臺基于B/S架構,具有用戶管理模塊、文件上傳模塊和結構度量模塊等,可對用戶提交的軟件進行質量評價。

2 DL算法演化

2.1 DL介紹

DL(Decoupling Level)是一個對Baldwin and Clark的Design Rule Theory與Parnas's Information Hiding Principle以及DRH理論的結合,是一個用來衡量軟件去偶成模塊后軟件結構好壞程度的指標?;贒RH理論,一個軟件被分為n個層,根據Baldwin and Clark的Design Rule Theory,在每層產生一些模塊,這些模塊根據Parnas理論是獨立的。一個軟件的DL,應是經過DRH分層之后每層[DLLi](0

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

3 改進DL軟件質量評估平臺

本文搭建了一個B/S架構的軟件結構評價平臺,專門用于評價Java項目。該平臺具有完善的用戶模塊和結構質量評價模塊,用戶登錄后,可以提交檢測軟件源碼壓縮包,服務器對其進行解壓,分析出軟件中各模塊的依賴關系,然后計算PC、IL、DL、IDL,將計算結果保存到數據庫,最終將評價結果展示在用戶頁面上。

3.1 設計目的

平臺開發應著重兩點:對提交軟件進行PC、IL、DL、IDL分析。由于軟件結構指標是一個較新的技術,現在也沒有較為成熟的平臺或軟件提供對PC、IL、DL的分析,所以平臺最初目的是給開發者們提供一個能夠分析軟件結構指標的便捷途徑,另一個目的是為改進的DL收集更多檢測數據。由于改進的DL測試樣本較少,希望通過該平臺收集大量樣本數據,以論證改進DL相較于原始DL的優越性。在實驗驗證時發現,改進的DL在實際運行過程中存在耗時較長的問題,希望通過檢測數據進行測試和改進。

3.2 數據集

本文使用了6個不同的真實代碼,以比較改進前后DL的準確度,其中包括:Apache Ant、ElasticSearch、Guava、Tetris、AircraftBattle、CRM。

3.3 網站組織結構

如圖1所示,軟件質量評測網的主要頁面是首頁和個人中心頁。首頁是軟件質量評測的門戶頁面,為了便于開發者使用,首頁風格簡潔,只提供上傳檢測、登錄和注冊功能。個人中心頁面提供與開發者個人信息相關的頁面,如查看個人信息、修改密碼和查看檢測記錄等。

3.4 網站功能模塊

從開發角度考慮整個網站,使用圖2刻畫網站內部結構。

網站主要由5個模塊組成:用戶模塊、上傳模塊、分析依賴模塊、結構度量模塊、視圖模塊。

主站蜘蛛池模板: 中文无码精品A∨在线观看不卡| 日韩精品成人在线| 香蕉国产精品视频| 专干老肥熟女视频网站| 国产极品美女在线观看| 一本大道香蕉久中文在线播放 | 激情無極限的亚洲一区免费| 欧美v在线| 97在线公开视频| 国产欧美精品午夜在线播放| 国产精品专区第1页| 国产精品久久国产精麻豆99网站| 免费人欧美成又黄又爽的视频| 久久黄色视频影| 青青草原偷拍视频| 国产av剧情无码精品色午夜| 国产精品手机在线播放| 毛片一区二区在线看| 亚洲一区二区三区国产精品| av一区二区人妻无码| 国产高清在线观看| 99久久精品视香蕉蕉| 手机精品福利在线观看| 欧美成人手机在线观看网址| 亚洲无码日韩一区| 亚洲精品国产乱码不卡| 久久青草免费91线频观看不卡| 五月激情综合网| 欧美性精品| 国产精品yjizz视频网一二区| 这里只有精品在线| 五月丁香伊人啪啪手机免费观看| 久久精品人妻中文视频| 亚洲av无码久久无遮挡| 国产00高中生在线播放| 亚洲人成影视在线观看| 免费又黄又爽又猛大片午夜| 国产精品手机在线播放| 高清无码手机在线观看| 亚洲国内精品自在自线官| 91国内在线观看| 美女内射视频WWW网站午夜 | 浮力影院国产第一页| 这里只有精品国产| 在线另类稀缺国产呦| 高清欧美性猛交XXXX黑人猛交 | 亚洲有无码中文网| 色男人的天堂久久综合| 国产大全韩国亚洲一区二区三区| 色偷偷一区二区三区| 青青青国产免费线在| 国产成人超碰无码| 日韩毛片免费视频| 国产欧美日韩资源在线观看| www.av男人.com| 91福利免费| 久久这里只精品国产99热8| 免费A级毛片无码免费视频| 国产精品女在线观看| 日韩在线观看网站| 亚洲91在线精品| 九九这里只有精品视频| 婷婷久久综合九色综合88| 成人毛片在线播放| 亚洲成人一区二区| 亚洲综合婷婷激情| 国产精品亚洲αv天堂无码| 2021国产精品自产拍在线观看| AV片亚洲国产男人的天堂| 国产精品jizz在线观看软件| 久久99蜜桃精品久久久久小说| 日韩免费无码人妻系列| 国产啪在线91| 在线日本国产成人免费的| 久一在线视频| 国产女人水多毛片18| 在线网站18禁| 永久免费精品视频| 91成人精品视频| 欧美19综合中文字幕| 国产区91| 国产一级毛片网站|