[发明专利]一种基于加权q2指数的软件类重要性度量方法有效
申请号: | 201510957055.6 | 申请日: | 2015-12-18 |
公开(公告)号: | CN105389192B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 潘伟丰;宋贝贝;姜波;谢波;王家乐 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 加权 q2 指数 软件 重要性 度量 方法 | ||
本发明公开了一种基于加权q2指数的软件类重要性度量方法,包括以下步骤:将Java语言编写的软件源代码在特征粒度抽象为特征依赖网;基于特征依赖网构建类依赖网;基于类依赖网计算节点的加权h指数;基于类依赖网计算节点的加权m指数;基于节点的加权h指数和加权m指数计算节点的加权q2指数,并以节点的加权q2指数作为类重要性的度量指标。本发明弥补了现有技术鲜有涉及类重要性度量的不足,对于理解软件,提高代码维护效率具有重要意义。
技术领域
本发明涉及一种软件类重要性度量方法,尤其是涉及一种基于加权q2指数的软件类重要性度量方法。
背景技术
计算机软件已经渗透到我们工作和日常生活的各个方面,正在改变并且还将继续改变我们的生活。随着软件技术的发展和互联网的普及,人们对软件的依赖与日俱增,对软件质量的要求越来越高。这导致了系统规模的激增和软件应用环境的日益复杂,使得软件开发的风险增加、软件质量很难得到有效的控制。
同时演化性是软件的本质属性之一。软件系统同生物一样,在其生命周期内,也必须不断的演化,否则就有可能提前被淘汰。软件演化的重要内容之一是对软件源代码的修改。然而要修改代码,我们必须对软件系统有一定的了解。在维护资源有限的情况下,对于一个新加入的开发者,加快其对系统的了解具有比较重要的意义。可以通过为新开发者推荐重要的软件元素(如类、包等)从而加快其对系统的了解。尽管目前已经有不少软件度量方面的研究工作,如LOC(Lines of Code)代码行、McCabe圈复杂度(CyclomaticComplexity)、Halstead度量法、CK度量组、MOOD度量集等,能够为认识软件的复杂性提供一定的帮助,但是仍有如下不足:
(1)现有的工作主要集中于度量代码元素本身的复杂性,缺少对代码元素重要性的度量。
(2)现有工作主要是针对元素级的度量,度量的往往是软件的局部特征,如度量一个方法、一个类,缺少从整体角度进行软件度量的工作,更缺少从整体角度度量软件元素重要性的工作。
类是目前主流的面向对象软件的主要构成元素之一。因此,提供一种有效的类重要性度量方法,从整体角度度量类的重要性,对于理解软件,提高代码维护效率具有重要意义。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种基于加权q2指数的软件类重要性度量方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:一种基于加权q2指数的软件类重要性度量方法,该方法包括以下步骤:
(1)将Java语言编写的软件源代码在特征粒度抽象为特征依赖网FDN=(Nf,Df)。其中,Nf为源代码中特征节点的集合;Df={(fi,fj)}(fi∈Nf,fj∈Nf)是无向边的集合,表示特征间的依赖关系。特征包括了Java源代码中的属性和方法。特征间的依赖关系包括了方法间的调用关系和方法对属性的使用关系。
(2)基于步骤(1)完成的FDN构建类依赖网CDN=(Nc,Dc,P)。其中,Nc为源代码中类节点的集合;Dc(ci∈Dc,cj∈Dc)是一个无向边的集合,表示类之间的依赖关系;P是一个|Nc|×|Nc|(|Nc|返回Nc中的节点数)的矩阵,代表类之间依赖关系的强度矩阵。类包含了Java中的类、内部类、抽象类和接口。类之间的依赖关系是根据类包含的特征间的依赖关系得到的,即类包含的特征间具有依赖关系,则相应的类之间也存在依赖关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510957055.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种悬浮细胞的免疫荧光染色方法
- 下一篇:多功能呼吸面罩