[发明专利]一种基于边不稳定性的软件函数变更预测系统及方法有效
申请号: | 201611122380.1 | 申请日: | 2016-12-08 |
公开(公告)号: | CN106775695B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | 王雷;王新晨;李涵 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/73 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 不稳定性 软件 函数 变更 预测 系统 方法 | ||
本发明为一种基于边不稳定性的软件函数变更预测系统及方法,属于软件工程领域。本发明基于软件网络函数调用关系图进行计算,首先需要获取整个函数调用关系图,然后对于每个条边计算该条边的不稳定度,通过对相邻版本的函数进行比较获得修改、删除、新增的函数,并得到变更函数子图,去掉变更函数子图中不稳定度小于一定值的边,剩下边连接的函数节点就是预测结果。
技术领域
本发明属于软件工程领域,特别涉及一种面向复杂网络基于边不稳定性的软件函数变更预测系统及方法,通过相邻版本变更函数的不稳定度进而预测下一个版本函数的变更情况。
背景技术
近年来,复杂网络的研究取得了巨大的进步,提出了许多方法和理论。这些理论和研究被用于生物学、物理学等学科,目前在计算机科学领域的应用也越来越广。现代的软件系统无论是从规模还是从结构设计上都发生了巨大的改变,传统的软件工程方法面临着很大挑战。因此,复杂网络的研究方法被引入到软件设计的过程中。由于现代软件函数的变更越来越频繁,软件升级在软件的整个生命周期中不可避免,因此,研究函数的变更传播有其重要的现实意义。除此之外,研究的另一目标是影响软件鲁棒性的相关因素。
复杂网络经常伴随着信息、病毒、疾病等的传播,而一个网络的拓扑结构对于变更传播的程度有着显著的影响。在计算机科学领域,大型软件系统中的类图、依赖图、关系图、软件组件图、函数调用图都属于复杂网络。
当开发者为了加入一个新功能或者修复一个BUG的时,对软件系统一个部分作出修改后,其他的部分为了适应修改,常常也需要进行更新。量化一个软件网络的传播性有助于节省软件维护产生的开销。
在函数调用关系图中,变更传播通常都是单方向的,函数A调用函数B,当B发生修改时,A因为接口需要作出调整因此很可能需要相应作出修改,这叫B传播到A,但当A发生修改时,B一般就不需要作出修改了。
关于影响边的变更传播的参数,首先有节点的稳定度,节点的稳定度定义如下:
在定义中,和分别代表节点ni的出度和入度。如果Si的值相对较大,那么说明节点的出度相对于入度较小,因此其他节点的改变较难传播到该节点。也就是说该节点较为稳定。从定义可以看出,Si的取值范围是[0,1]。
边的不稳定度基于节点的稳定度定义。其具体定义如下所示:
Iij=Si-Sj
在上面的定义中,Si和Sj分别代表节点i和节点j的节点稳定度。从定义中可以看出,当Iij0时,节点i的稳定度大于节点j的稳定度,也就是说稳定度大的边调用稳定度小的边。Iij0时则相反。边的不稳定度的取值范围为[-1,1]。
罗伯特·马丁在其论文中提出了稳定性依赖原则(SDP)。论文中指出在软件的设计过程中,一个包应该依赖于比其自身更加稳定的包。节点的稳定度和边的不稳定度可以作为一种衡量节点及边的稳定度的一种度量,通过分析一个节点的稳定度或者边的不稳定度就可以清晰地分析出一个软件在某个区域的设计成功与否。关于变更传播,一条边的边的不稳定度越高,则这条边越不稳定,越可能发生修改,同时,在发生修改的时候,越容易传播到更多的函数。
现有的关于函数变更的研究大致基于软件仓库,并没有考虑变更函数的顺序。由于软件仓库的特点,大部分的基于历史数据库的研究都停留在物理层面(系统,目录,文件,行),忽视了本身变更实体(函数、变量)的本身意义。现有的软件仓库分门提供的数据元有差异,不同的研究方法利用不同软件仓库,没有统一的适用标准。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611122380.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件配置代码制品的层次分类方法
- 下一篇:数据处理方法及装置