田 帥 汪海濤 姜 瑛 陳 星
(昆明理工大學信息工程與自動化學院 昆明 650500)
結合聚類分析與信息熵賦權的構件選擇方法?
田 帥 汪海濤 姜 瑛 陳 星
(昆明理工大學信息工程與自動化學院 昆明 650500)
為解決多位專家從構件庫系統檢索結果中選出最適合用戶需求的構件這一問題,論文提出了一種結合聚類分析與信息熵賦權的構件選擇方法。首先由業內專家對系統自動檢索出的構件進行再次評估選擇,然后通過論文提出的構件選擇方法給出一個綜合的構件選擇結果,把系統自動檢索與人工經驗選擇結合起來,多角度全面地評估選擇構件,以利于得到最優和最適合用戶需求的構件。該方法不但結合了專家們對用戶需求及構件的整體把握,更通過科學有效的方法計算選出最優構件,選出的構件能更好地發揮軟件復用的優勢。并給出了一個實例,通過實驗對該構件選擇方法進行了分析說明,為進一步的研究工作奠定了基礎。
構件選擇;最優選擇;聚類分析;信息熵;賦權
1968年,Mcllroy在北大西洋公約組織(NATO)會議上提交的《大量生產的軟件構件》一文中,首次提出了軟件復用和構件庫概念。至此構件開發思想便應運而生。隨著時間的推移,涌現出大量的構件評估方式和方法,可復用構件的規模也不斷擴大,由此構件的分類檢索便成為一個亟待解決的問題。基于此,國內外專家結合現有的知識理論,構建了各種分類及檢索模型[1],如基于刻面分類的檢索、基于關鍵詞的分類檢索等等,隨著互聯網大數據時代的到來,數據信息量急劇增長,在這個大環境背景下構件的開發及復用也獲得了前所未有的發展,并且構件開發技術愈發純熟,可信度明顯提高,分類及檢索方法顯著改善,軟件開發人員在選擇構件時也有了更多的余地,目前大部分評估分類模型的重點為:
1)構件檢索中,大部分只關注提高檢索的效率——查全率跟查準率。
2)構件選擇中,大部分關注點在選擇的標準計算上,如可信構件的選擇[2],然后根據相應標準進行構件選擇[3]。
然而在大量的實際工作應用中發現,經過檢索后大于閾值的構件往往不止一個,此時有太多選擇往往會導致效率低下,并且我們不能僅依賴匹配度去決定一個構件的使用與否,檢索到的構件往往是局部最優構件,此構件只對所需功能提供較為完美的實現,但對于整個系統卻不盡然,由于檢測出的構件功能具有相似性,選出一個最優構件的理由可能會變得模棱兩可。此外不同的軟件開發人員由于專業知識背景的偏差,以及對所開發系統的了解程度不同,在選擇構件時極有可能造成各執己見的場景。全局最優構件直接關系到后期系統的開發的進度和質量,如果選擇的構件與系統要求的切合度不高,不僅會導致后期修改工作量巨大,而且可能會推遲開發進度,造成大量人力和財力的損失,使開發陷入困境導致項目失敗。考慮到現有的模型幾乎只關注構件的評估、分類及檢索,對此問題帶來的嚴重危害沒有提出有效的解決方法。目前國內外專家僅僅是對該問題可能會導致嚴重影響有過簡單概述,也并未提出一種得到廣泛認可的有效處理辦法。文獻[4]提出了一種針對多構件進行評估和選擇的模型,但未給出一種詳細的選擇方法;文獻[5]提出了基于非線性模糊的質量功能展開模型,建立一種基于NF-QFD的可復用選擇構件模型,但此模型僅把滿足用戶的需求和系統的可維護性作為考慮的重點,對于構件的全局最優與科學選擇閾值問題則未加考慮;文獻[6]提出的用法示例代碼的構件選擇方法雖能幫助用戶去了解構件的相關用法,但用戶對構件的最終選擇仍具有相當大的主觀性。
基于上述問題,本文提出了一種結合聚類分析與信息熵進行賦權[7]的構件選擇方法:選取多位專家對構件庫系統檢索出的構件進行共同判斷決策,多位專家結合自己的專業背景知識,在對用戶需求進行深入研究了解以后,對每個構件做出評價并得出判斷矩陣,憑借每個專家的判斷矩陣獲得排序向量,使用相關系數法來構造構件相關矩陣,再對聚類閾值變化率進行系統分析,從而選出最優的聚類閾值,對相似程度較高的專家給出合理的聚類,并賦予類間權重(類內權重、類間權重的概念在后文有相關詳細定義),數目相對較多的專家所聚得的類分配較大的權重;然后結合信息熵理論分別為類內的專家分配權重,使得同類中認識思維清晰、評價相對準確的分配比較大的權重,最后結合類間權重和類內權重來決定專家的總權重,并通過總權重與構件排序向量計算得出最優構件,此構件才是真正既符合局部需求,又滿足整體要求的構件。
所謂聚類分析[8]是一組將研究對象經過統計計算分為相對同質群組的一種統計分析技術,在聚類的過程中,我們不必給出一個確定分類的標準,聚類分析能夠從樣本數據出發,通過相關信息自動進行分類,分得的同一個類對象有很大的相似性,不同類對象有較大的差異性。
2.2.1 1-9標度法構造構件判斷矩陣
假設在某一準則下第i個專家對n個功能相似的構件進行評價,根據1~9標度法[9]做出構件判斷矩陣:

2.2.2 層次分析法構造構件排序向量矩陣
通過層次分析法[10]中幾何平均法的使用對構件的判斷矩陣Ai進行一致性判斷、歸一化處理后求出其排序向量ui=(u1u2u3… un)T,其中:

則由m個專家組成的構件排序向量矩陣為U:

2.2.3 相關系數法構造相關矩陣
由于以上所做分析都是基于相同的量綱,因此所得構件矩陣為標準化矩陣。
接下來確定ui=(u1iu2iu3i… uni)T與uj=(u1ju2ju3j… unj)T之間的相似程度rij,

根據皮爾森相關系數法求得rij:

由此便可構造一個構件和構件間比較的相關矩陣R:

2.2.4 基于變化率確定閾值的聚類分析
本文采用聚類分析中的直接聚類法,把R中除去對角線以外的元素數據從大到小進行排列,去除重復值得到:

假設聚類閾值為θ=θk∈[ ]0,1 ,當 rij>θk(i≠k)時,我們便認定文ui與uj有高度相似特性,然后將它們劃分成同類。由此可以看出,聚類閾值θ的取值不同,分類結果可能會大相徑庭,而且θ越接近1,分類就越細。如果S1與S2為通過某一閾值θ得出的兩個類,若:

便認定它們是具有相似性,將全部相似的類歸并成同類,最終獲得的分類便是聚類閥值為θk時的一種聚類結果,接下來通過變化率選取聚類閾值。
在現實的專家對構件進評價選取中,結果間可能有微小差別,也就是說從專家處獲得的構件排序向量的類似程度也許較高,此時我們把閾值θ的變化率Ci來作為參考進而確定最優閾值:

公式中:i為θ由大到小聚類的次數,ni和ni-1分別是第i次與第i-1次聚類的類數量,θi和θi-1是第i次與第i-1次的聚類閾值,如果:

我們就認定第i次的聚類閾值為最優閾值。
在實際的軟件選擇中,由于每位專家有不同的專業背景知識,不同的履歷及偏好,對系統的認識深淺不一,他們的評價結果對評價對象的反映不同,因此我們科學地分配每個專家的權重是十分必要的,
現階段有兩方面的問題需要我們確定:第一是類間權重,類和類之間相比較得出的權重。主要反映每個分得的類里專家的數量,對于有較多專家的類,我們應該給予較大權重;第二是類內權重,即在某個類內,專家間相比較得出的權重。主要根據某個專家分析的邏輯性,清晰度,提供消息的準確性來賦予權值,此時我們需要用信息熵的知識幫助我們更加準確地確定類內的權重。下面分別對類間權重及類內權重提供計算方法。
如果m位專家被分成了t類(t<n),第i類中包含 φi(φi≤m)位專家,λi為類間權重,則有:

由此我們可以得出每個類的類間權重。
信息熵[11]一詞是C.E.香農從熱力學里借用的,在熱力學中,熱熵用來呈現分子狀態的混亂水平,香農把信息熵來描述信源的不確定度。對于給定的信源,信息熵應該是一個相應確定的值。在此我們把某位專家對所有可選構件進行評價后的構件排序向量作為一個離散信源,則概率空間為

m個專家在既定準則下對n個構件進行評價,第i位專家通過構件排序向量計算出信息熵為(單位是BIT):

根據信息熵的表征,我們可以知道,計算出的某位專家的信息熵值越小,信息的不肯定度與隨機性就越小,信息確定性越大,表明該專家所做的評估更可信,應該給予更大的權重。因此類內權重可以用信息熵的大小進行度量。
設Iik為第i類中第k位專家類內權重,則:

此時n代表第i類內專家的人數,當專家自成一類時,類內權值定為1。
到現在,我們已經求得了類間權重與類內權重,接下來對類間權重λi,類內權重Iik相乘,得到第k位專家的總權重 βk,由此可求出每位專家的總權重。

最后,結合每個專家的總權重和構件排序向量得到最終的構件排序向量P:

通過max(Pi)選出最優構件[12]矩陣。
本節給出一個構件選擇的實際應用案例,選擇對象為從上海構件庫中選擇一個B/S端、java語言開發的商城系統中文章發布功能模塊。該模塊包括四個基本功能,查看已發表文章,發表新文章,修改已發表文章,刪除已發表文章。經基于刻面檢索匹配查找后,大于閾值的構件有四個,由低到高分別為83%、88%、89%、91%。此時四個構件均能較為完善的實現本模塊功能,但匹配度為83%的構件與其他三個構件有明顯的架構區別,該構件運用了java中的ssh框架和maven進行管理,而其他三個基于spring mvc開發。于此,公司技術部門選出10位工程開發專家對四個構件按匹配度由低到高編號進行評價打分后進行選擇,具體步驟如下:

由式(1)~(2)計算每個專家的構件排序向量,則m個專家組成的構件排序向量矩陣為U:

因為此矩陣是在相同量綱和數量級下構造,所以此構件排序向量矩陣為標準化矩陣,接了來求相關程度rij。根據式(3)我們可以求得某兩位專家構造的構件排序向量的相關程度,從而構造出形如(5)的相關矩陣R:

根據式(6)遍歷θ值并進行聚類,聚類結果如圖1~2所示,圖1為凝聚計劃圖,圖2為聚類譜系圖。
根據式(7)可求得每次聚類的變化率:

圖1 凝聚計劃圖

當Ci無解、每個專家自成一類或者全部分為一類時沒有實際意義,所以剔除C4、C8。根據式(8)可求得C3為最大值,此時θ=0.996683,為最優閾值,θ取此值時,所得聚類為

由此我們便可知分為6類最佳,按上述聚類順序分別標為

根據式(9)可算出類間權重,分別為t1=0.2,t2=0.2,t3=0.45,t4=0.05,t5=0.05,t6=0.05。
通過式(11)可計算出各個專家信息熵值,其信息熵值向量表示為

根據式(12)可計算出每位專家的類內權重,向量表示為

根據式(13)計算出每位專家的總權重,向量表示為

最后,結合類位專家的總權重與構件排序向量,根據式(14)得出最終的構件排序向量P:

P1=max(Pi),據此我們便能得出,構件1為最優構件,由上述匹配度我們得知,構件1的匹配度相對最低,然而專家中大多數對此構件更加青睞,于是該公司最終選擇構件1。后期開發中,基于SSH框架開發的此構件不但簡化了開發中業務邏輯處理與數據交互的流程,后期客戶又增加的其他功能的編譯、依賴問題,maven也能輕松應對,大大節省了開發周期,并避免了不必要的邏輯錯誤。而如果僅僅按照匹配度選擇構件4,則后期必定會出現二次開發的問題。所以,我們可以說,經過此方法選出的構件,不但結合了專家組們對系統及構件的整體把握,更通過科學有效方法計算出最優,選出的構件能更好地發揮軟件復用的優勢。
本文通過對在構件庫中檢索出匹配度大于閾值的構件后,從檢索結果里再次選擇最優構件的研究,提出在實際應用中出現且必須面對的問題,即如何從構件庫系統自動檢索結果中選出最適合用戶需求的構件,并給出結合聚類分析與信息熵進行賦權的一種構件選擇方法,此方法不但結合了每位專家的能力水平、經驗、客觀準確性以及對系統的整體把握等因素,而且結合聚類分析和信息熵理論,達到選出最佳構件的目的。接下來的研究重點在:如何挑選更專業的專家進行構件評價及選擇;如何引入其他知識和算法更加科學合理地選擇出最佳構件;由于構件為外部人員開發,使用構件便會存在一定的風險,如何在評估選擇構件時加入風險評估機制也是一個需要考慮的問題。
[1]汪海濤,劉帥,姜瑛,等.一種基于模糊物元評價法的構件質量度量模型研究[J].云南大學學報(自然科學版),2015,37(1):31-42.WANG Haitao,LIU Shuai,JIANG Ying,et al.Study on a component quality metrics model based on the fuzzy mat?ter-elenent evaluation method[J].Iournal of Yunnan Uni?versity,2015,37(1):31-42.
[2]Ding X L,Wang H M,Wang Y Y.Verification oriented trustworthiness evidence and trustworthiness evaluation of software[J].Journal of Frontiers of Computer Science and Technology,2010,4(1):46-48.
[3]Lang B,Liu X D,Wang H M,et al.A classification model for software trustworthiness[J].Journal of Frontiers of Computer Science and Technology,2010,4(3):231-239.
[4]盛津芳,王斌.基于FCD擴展的多構件選擇過程[J].計算機應用,2007,27(4):860-863.SHENG Jinfang,WANG Bin.Multi-component Selection Process Based on FCD Extension[J].Journal of Computer Applications,2007,27(4):860-863.
[5]孫劍,徐瑩.基于NF-QFD的構件選擇方法[J].高師理科學刊,2013,33(5):24-28.SUN Jian,XU Ying.Component selection method based on NF-QFD[J].Science Journal of Higher Education,2013,33(5):24-28.
[6]楊秀榮,任姚鵬.一種基于用法示例的構件選擇方法[J].運城學院學報,2013(5):83-85.YANG Xiurong,REN Yaopeng.A component-based selec?tion method based on usage[J].Journal of Yuncheng Uni?versity,2013(5):83-85.
[7]傅祖蕓.信息論[M].第三版,北京:電子工業出版社,2011:132-212.FU Zuyun.Information Theory[M].Third Edition,Bei?jing:Publishing House of Electronics Industry,2011:132-212.
[8]Bolloju N.Aggregation of analytic hierarchy process mod?els based on similarities in decision makers'preferences[J].European Journal of Operational Research,2011,128(3):499-508.
[9]葛世倫.用1—9標度法確定功能評價系數[J].價值工程,1989(1):33-34.GE Shilun.With 1-9 scale method to determine the func?tion evaluation coefficient[J].Value Engineering,1989(1):33-34.
[10]向東進.實用多元統計分析[M].武漢:中國地質大學出版社,2005:232-256.XIANG Dongjin.Practical multivariate statistical analysis[M].Wuhan:China University of Geosciences Press,2005:232-256.
[11]陳云翔,董驍雄,項華春,等.基于信息熵的群組聚類組合賦權法[J].中國管理科學,2015,23(6):142-146.CHEN Yunxiang,DONG Xiongxiong,XIANG Huachun,et al.Composition Entropy Weighting Method Based on Information Entropy[J].Chinese Journal of Management Science,2015,23(6):142-146.
[12]楊芙清,梅宏.構件化軟件設計與實現[M].北京:清華大學出版社,2008:86-145.YANG Fuqing,MEI Hong.Component-based software design and implementation[M].Beijing:Tsinghua Uni?versity Press,2008:86-145.
A New Software Component Selection Method Based on Clustering and Information Entropy Weighting
TIAN ShuaiWANG HaitaoJIANG YingCHEN Xing
(Faculty of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500)
In order to solve the problem of selecting the most suitable components which meet the needs of users from the search results of component library system by experts,this paper proposes a component selection method based on clustering and in?formation entropy weighting.Firstly,industry experts evaluate and select components again from which automatically retrieved by the system,then the component selection method which proposed in this paper gives a comprehensive component selection result,combining the system automatic retrievals with artificial experience choice,comprehensively evaluating and selecting components from multi-angle so as to select the most optimal and appropriate components to meet the users'needs.This method not only com?bines the overall grasp of the experts on the needs of users and components,but also computes and selects the optimal components through scientific and effective method,so that the selected components can better play to the advantages of software reuse.And this paper also gives an example to analyze and explain the components selection method by the way of experiments,which lays the foun?dation for the further research.Research work in this paper has some theoretical research value and practical significance.
component selection,optimal choice,clustering analys,information entropy,weighting
Class Number TP18
TP18
10.3969/j.issn.1672-9722.2017.12.024
2017年6月6日,
2017年7月7日
國家自然科學基金項目(編號:61462049)資助。
田帥,男,碩士研究生,研究方向:軟件工程。汪海濤,女,副教授,碩士生導師,研究方向:軟件工程。姜瑛,女,博士,教授,碩士生導師,研究方向:軟件工程。陳星,男,碩士,講師,研究方向:軟件工程。