基于加权软件网络的软件模块性和稳定性度量方法研究
发布时间:2021-01-26 11:16
软件结构指的是软件内部的元素及元素之间的联系,它已经成为影响软件质量非常重要的因素。随着软件功能、结构的日益复杂,软件质量难以保证。了解一件事物,应该采取量化的方式,在软件工程领域也是如此:没有度量就没有理解和控制。因此,要控制或者改善软件的质量,就需要对软件结构进行合理的描述和有效的量化。软件度量已经成为软件工程领域的一个重要研究方向。软件度量是对软件内部结构质量属性的量化。结构质量有很多方面,包括理解性、可支持性、稳定性、模块性等。模块性和稳定性是软件的两大重要质量属性。模块性被认为是设计成功软件的最重要特性之一,它对许多外部质量属性具有重大影响。因此,提出衡量软件模块性的指标非常有用。软件稳定性意味着抵抗软件变化的放大,它已成为影响维护成本的最重要因素之一。尽管一些国内外学者在软件模块性和稳定性方面做出了很多贡献,取得了诸多成果,但是现有工作仍存在如下不足:1)在软件模块性的度量研究中,现有工作主要探讨与软件模块性相关的耦合性和内聚性的度量,没有将耦合性和内聚性两者结合起来,进而从整体上度量软件的模块性;2)在软件稳定性度量方面,现有工作未能充分考虑软件元素之间的多种耦合关系,也...
【文章来源】:浙江工商大学浙江省
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
论文组织架构图
基于加权软件网络的软件模块性和稳定性度量方法研究11第3章基于加权软件网络的软件模块性度量方法3.1引言软件质量一直是软件工程领域极为关注的问题,质量好的软件可以节约大量资源,所以最大限度地提升软件质量一直是软件工程追求的目标。软件质量的提升离不开软件的度量,特别是在软件功能和结构日益复杂时。软件的模块性在软件结构化度量中占据着极其重要的地位,但度量软件仍是一件比较困难的事,所以本文接下来就软件的模块性提出度量方法。“低耦合和高内聚”被认为是实现模块性设计的主要驱动因素之一。因此,现有的量度软件模块性的研究工作主要集中在量度软件元素之间的耦合和软件元素的内聚。但现有的度量指标主要集中在模块性单方面,即耦合或内聚,无法全面了解软件的模块性。针对不足,提出我们的研究方法。模块性被认为是成功软件设计的最重要特性之一。因此,提出衡量软件模块性的指标是有用的。在本文中,我们提出了一种新的度量指标Q(模块性),从复杂网络的角度衡量软件的模块性。首先,特定的软件由特征耦合网络(FCN)表示。然后,将软件原始的类结构作为特征的社区,并引入复杂网络领域用于评价社区结构的模块度指标度量类的模块性;我们应用著名的标准理论来验证我们的模块性,并使用开源Java软件系统进行实证评估,以显示其作为衡量软件模块性的度量指标的有效性。3.2整体框架图3.1方法概述图3.1显示了基于加权软件网络的软件模块性度量方法概述。首先,通过静态分析,该方法从软件系统的源代码中提取软件结构信息。其次,使用提取的软件结构信息构建FCN。然后,根据FCN网络,提出软件模块性的度量指标Q的定义以及计算Q值的伪代
基于加权软件网络的软件模块性和稳定性度量方法研究13的注释表示该节点的方法名称或属性名称,边旁边的注释表示该边的权重。由于方法d()访问属性a一次,调用方法b()一次,并且调用方法c()两次,所以d()和a,d()和b(),d()和c(),权重分别为1,1和2。由于方法b()调用方法c()一次,因此权重为1且b()和c()之间存在一条边。因为方法f()调用方法c()一次,所以f()和c()之间有一条边,权重为1。由于方法e()调用方法f()一次,因此e()和f()之间存在一条边且权重为1。图3.2一个简单的代码段及其对应的FCN3.5软件模块性度量“高内聚和低耦合”是软件设计中最重要的原则之一,该原则主张将相关属性和方法合并到同一个模块中,并减少模块之间的耦合。软件中的“模块”与复杂网络研究中的“社区”概念非常相似。在复杂网络中,社区是密集连接节点的子集,因此社区中的边密度高于社区之间的边密度。社区结构已成为许多网络系统中可以观察到的最重要的网络属性之一。当软件系统用软件网络表示时,软件系统也具有社区结构。通常,包是类和接口的自然社区,类和接口是方法和属性的自然社区[67]。因此,我们可以通过使用质量指标来量化复杂网络中的社区结构,并以此来衡量软件模块性。在复杂网络中,已经提出了许多质量指标来评估社区结构,例如MQ[68],EVM[69]和模块性(Q)[70]。可以说,Newman和Girvan提出的Q是使用最广泛和最著名的质量指标。
【参考文献】:
期刊论文
[1]一种基于深度学习的上帝类检测方法[J]. 卜依凡,刘辉,李光杰. 软件学报. 2019(05)
[2]面向对象软件度量因子的幂律分布研究[J]. 冼伟成,刘伟,刘宏韬,胡志刚. 计算机应用与软件. 2018(01)
[3]面向对象软件内聚度度量数据分布的实证研究[J]. 周晓聪,赖蔚,温剑丰. 软件学报. 2018(10)
[4]混源软件质量模型与度量方法研究[J]. 刘启林,董威,尹良泽,齐璇,杨沙洲. 计算机科学. 2017(04)
[5]基于GMDH因果关系的软件缺陷预测模型[J]. 张德平,刘国强,张柯. 计算机科学. 2016(07)
[6]软件可信评估研究综述:标准、模型与工具[J]. 沈国华,黄志球,谢冰,朱羿全,廖莉莉,王飞,刘银陵. 软件学报. 2016(04)
[7]基于复杂软件网络的回归测试用例优先级排序[J]. 潘伟丰,李兵,马于涛,刘婧. 电子学报. 2012(12)
[8]利用h指数及其衍生度量识别关键类[J]. 王木生,卢红敏,周毓明,徐宝文. 计算机科学与探索. 2011(10)
[9]基于变更传播仿真的软件稳定性分析[J]. 张莉,钱冠群,李琳. 计算机学报. 2010(03)
硕士论文
[1]面向软件度量的复合式属性选择算法研究[D]. 乐明昊.武汉理工大学 2015
[2]基于软件测试的质量度量研究和应用[D]. 陈文兵.中国科学院大学(工程管理与信息技术学院) 2015
本文编号:3001015
【文章来源】:浙江工商大学浙江省
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
论文组织架构图
基于加权软件网络的软件模块性和稳定性度量方法研究11第3章基于加权软件网络的软件模块性度量方法3.1引言软件质量一直是软件工程领域极为关注的问题,质量好的软件可以节约大量资源,所以最大限度地提升软件质量一直是软件工程追求的目标。软件质量的提升离不开软件的度量,特别是在软件功能和结构日益复杂时。软件的模块性在软件结构化度量中占据着极其重要的地位,但度量软件仍是一件比较困难的事,所以本文接下来就软件的模块性提出度量方法。“低耦合和高内聚”被认为是实现模块性设计的主要驱动因素之一。因此,现有的量度软件模块性的研究工作主要集中在量度软件元素之间的耦合和软件元素的内聚。但现有的度量指标主要集中在模块性单方面,即耦合或内聚,无法全面了解软件的模块性。针对不足,提出我们的研究方法。模块性被认为是成功软件设计的最重要特性之一。因此,提出衡量软件模块性的指标是有用的。在本文中,我们提出了一种新的度量指标Q(模块性),从复杂网络的角度衡量软件的模块性。首先,特定的软件由特征耦合网络(FCN)表示。然后,将软件原始的类结构作为特征的社区,并引入复杂网络领域用于评价社区结构的模块度指标度量类的模块性;我们应用著名的标准理论来验证我们的模块性,并使用开源Java软件系统进行实证评估,以显示其作为衡量软件模块性的度量指标的有效性。3.2整体框架图3.1方法概述图3.1显示了基于加权软件网络的软件模块性度量方法概述。首先,通过静态分析,该方法从软件系统的源代码中提取软件结构信息。其次,使用提取的软件结构信息构建FCN。然后,根据FCN网络,提出软件模块性的度量指标Q的定义以及计算Q值的伪代
基于加权软件网络的软件模块性和稳定性度量方法研究13的注释表示该节点的方法名称或属性名称,边旁边的注释表示该边的权重。由于方法d()访问属性a一次,调用方法b()一次,并且调用方法c()两次,所以d()和a,d()和b(),d()和c(),权重分别为1,1和2。由于方法b()调用方法c()一次,因此权重为1且b()和c()之间存在一条边。因为方法f()调用方法c()一次,所以f()和c()之间有一条边,权重为1。由于方法e()调用方法f()一次,因此e()和f()之间存在一条边且权重为1。图3.2一个简单的代码段及其对应的FCN3.5软件模块性度量“高内聚和低耦合”是软件设计中最重要的原则之一,该原则主张将相关属性和方法合并到同一个模块中,并减少模块之间的耦合。软件中的“模块”与复杂网络研究中的“社区”概念非常相似。在复杂网络中,社区是密集连接节点的子集,因此社区中的边密度高于社区之间的边密度。社区结构已成为许多网络系统中可以观察到的最重要的网络属性之一。当软件系统用软件网络表示时,软件系统也具有社区结构。通常,包是类和接口的自然社区,类和接口是方法和属性的自然社区[67]。因此,我们可以通过使用质量指标来量化复杂网络中的社区结构,并以此来衡量软件模块性。在复杂网络中,已经提出了许多质量指标来评估社区结构,例如MQ[68],EVM[69]和模块性(Q)[70]。可以说,Newman和Girvan提出的Q是使用最广泛和最著名的质量指标。
【参考文献】:
期刊论文
[1]一种基于深度学习的上帝类检测方法[J]. 卜依凡,刘辉,李光杰. 软件学报. 2019(05)
[2]面向对象软件度量因子的幂律分布研究[J]. 冼伟成,刘伟,刘宏韬,胡志刚. 计算机应用与软件. 2018(01)
[3]面向对象软件内聚度度量数据分布的实证研究[J]. 周晓聪,赖蔚,温剑丰. 软件学报. 2018(10)
[4]混源软件质量模型与度量方法研究[J]. 刘启林,董威,尹良泽,齐璇,杨沙洲. 计算机科学. 2017(04)
[5]基于GMDH因果关系的软件缺陷预测模型[J]. 张德平,刘国强,张柯. 计算机科学. 2016(07)
[6]软件可信评估研究综述:标准、模型与工具[J]. 沈国华,黄志球,谢冰,朱羿全,廖莉莉,王飞,刘银陵. 软件学报. 2016(04)
[7]基于复杂软件网络的回归测试用例优先级排序[J]. 潘伟丰,李兵,马于涛,刘婧. 电子学报. 2012(12)
[8]利用h指数及其衍生度量识别关键类[J]. 王木生,卢红敏,周毓明,徐宝文. 计算机科学与探索. 2011(10)
[9]基于变更传播仿真的软件稳定性分析[J]. 张莉,钱冠群,李琳. 计算机学报. 2010(03)
硕士论文
[1]面向软件度量的复合式属性选择算法研究[D]. 乐明昊.武汉理工大学 2015
[2]基于软件测试的质量度量研究和应用[D]. 陈文兵.中国科学院大学(工程管理与信息技术学院) 2015
本文编号:3001015
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3001015.html