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

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

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

高雄 張貴友 唐秀蓮

摘 要 :現有評估方法很少考慮模塊間依賴關系程度,導致軟件結構評估結果不能準確反映軟件質量?;赑ageRank思想計算軟件中各模塊的依賴關系權重,改進解耦水平(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 引言

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

在實際開發過程中,由于開發任務繁重,開發者很難保證每次都能遵循設計好的軟件結構,但僅憑觀察代碼很難評價軟件結構好壞,因此設計軟件體系結構評估方法是至關重要的一環?,F有軟件結構評價技術側重于通過計算軟件系統中各模塊間耦合程度評鑒軟件的結構質量,即通過傳播代價(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個模塊組成:用戶模塊、上傳模塊、分析依賴模塊、結構度量模塊、視圖模塊。

主站蜘蛛池模板: 欧美精品二区| 美女裸体18禁网站| 亚洲三级电影在线播放| 一级毛片在线免费视频| 精品国产香蕉在线播出| 91人人妻人人做人人爽男同| 日韩国产一区二区三区无码| 亚洲中文字幕久久精品无码一区| 日本道综合一本久久久88| 色婷婷狠狠干| 久久国产精品电影| 女人av社区男人的天堂| 久久综合色播五月男人的天堂| 在线欧美日韩| 久久亚洲精少妇毛片午夜无码| 国产精品尤物在线| 欧美黄网站免费观看| 色成人综合| 欧美va亚洲va香蕉在线| 日本亚洲欧美在线| 毛片最新网址| 毛片网站在线播放| 欧美成在线视频| 91在线视频福利| 亚洲欧美综合精品久久成人网| 91精品国产情侣高潮露脸| 成人字幕网视频在线观看| 久久久久中文字幕精品视频| 国产成人做受免费视频| 亚洲最大福利视频网| 2020国产精品视频| 国产九九精品视频| 国产微拍精品| 麻豆精品在线视频| 天天做天天爱夜夜爽毛片毛片| 2021国产v亚洲v天堂无码| 中国特黄美女一级视频| 国产原创自拍不卡第一页| 中文成人无码国产亚洲| 亚洲不卡无码av中文字幕| 亚洲毛片一级带毛片基地| 欧美午夜一区| 国产制服丝袜91在线| 欧美一级黄片一区2区| 青青极品在线| 国产欧美日韩视频怡春院| 白浆免费视频国产精品视频| 国产精品丝袜视频| 国产白浆在线| 欧美性天天| 亚洲区视频在线观看| 91在线高清视频| 久久久久久久久久国产精品| 国产精品自在在线午夜区app| 欧美性猛交xxxx乱大交极品| 黄色片中文字幕| 成年人视频一区二区| 亚洲成在线观看| 日韩高清在线观看不卡一区二区| 免费看的一级毛片| 找国产毛片看| JIZZ亚洲国产| 99ri国产在线| 欧美国产精品拍自| 欧美亚洲国产精品第一页| 国产欧美在线视频免费| 亚洲欧美另类中文字幕| 99在线小视频| 亚洲精品无码久久毛片波多野吉| 另类专区亚洲| 国产成人免费高清AⅤ| 免费中文字幕一级毛片| 亚洲AⅤ综合在线欧美一区| 国产精品久久久久婷婷五月| 国产精品一区不卡| 国产精品成人免费视频99| 欧美特黄一级大黄录像| 在线观看无码a∨| 亚洲AV无码乱码在线观看代蜜桃| 911亚洲精品| 99成人在线观看| 波多野结衣的av一区二区三区|