田 帅 汪海涛 姜 瑛 陈 星
(昆明理工大学信息工程与自动化学院 昆明 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)资助。
田帅,男,硕士研究生,研究方向:软件工程。汪海涛,女,副教授,硕士生导师,研究方向:软件工程。姜瑛,女,博士,教授,硕士生导师,研究方向:软件工程。陈星,男,硕士,讲师,研究方向:软件工程。