[发明专利]一种基于复杂网络故障传播的软件关键函数辨识方法在审
| 申请号: | 201510355506.9 | 申请日: | 2015-06-24 |
| 公开(公告)号: | CN105045574A | 公开(公告)日: | 2015-11-11 |
| 发明(设计)人: | 黄友朋;赵山;肖勇;许卓 | 申请(专利权)人: | 广东电网有限责任公司电力科学研究院 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 广州知友专利商标代理有限公司 44104 | 代理人: | 周克佑 |
| 地址: | 510080 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 复杂 网络故障 传播 软件 关键 函数 辨识 方法 | ||
技术领域
本发明涉及一种软件关键函数辨识方法,尤其是涉及一种基于复杂网络故障传播的软件关键函数辨识方法。
背景技术
缺陷存在于软件全生命周期的各个阶段,会产生错误和冗余,导致系统或设备故障,甚至造成经济损失。随着信息和电子技术的不断发展,软件系统的复杂度越来越高,一个极小的错误就可能引发灾难性的后果。因此,提高软件质量,保证软件的可靠稳定运行成为软件工程面临的亟待解决的问题之一。
自1998和1999年小世界效应和无标度特征被发现以来,复杂网络科学在近十年里迅速发展,掀起了认识现实世界规律和本质的研究热潮。软件系统是由多个功能实体相互关联、共同作用构成的一类复杂系统。相关研究表明,软件系统内部结构并不是随机的,也具有小世界效应和无标度特性。因此,认识和控制软件复杂性就成为极其重要且具挑战性的问题。根据不同的粒度单元(如类、包、库、函数等)与单元之间不同的交互关系(调用、继承、聚合等),可将软件系统抽象成复杂网络,并运用复杂网络的相关理论对软件系统进行特征和结构分析,如通过软件结构度量其复杂度(C&K度量方法和MOOD度量方法);通过减少测试用例数量提高测试效率等。函数作为软件重要的粒度实体,其可靠性直接影响着整个软件系统的稳定运行。某个函数失效,则会导致其上层调用函数的失效,由此产生级联故障,甚至导致整个软件系统的崩溃。因此,寻找软件系统的关键函数,并对关键函数进行优化和监测,能在一定程度上保证软件系统的可靠运行。
目前,基于复杂网络理论的关键节点辨识方法主要是针对系统的静态结构进行的,如节点的度数、介数等指标。这种静态指标并不能表征系统的动力学过程,且评判标准过于简单,并不适合软件系统的动态执行过程。软件系统的函数与函数之间存在着调用与被调用的相互联系,若某个函数A失效,调用其的函数B亦会受到影响,有可能失效;函数B的失效又可能导致调用其的函数C失效;如此的失效传播过程会产生级联失效,有可能导致整个软件系统的崩溃。因此,根据动力学传播过程辨识关键函数更符合实际软件系统的特点,能更有效地控制失效源头。
对于函数级的粒度实体,将软件函数看做节点,函数之间的调用关系看做有向边,最终可得到一个有向无权网络。但是,对于真实的软件系统,函数内部往往含有选择结构的程序,如if判断语句和switch分支语句等。这些选择语句内部调用的函数需要满足一定条件才能被执行,若某个被调用的函数失效,其上层函数未必会失效。因此,采用故障传播方法辨识关键函数时,需要考虑一种新的概率失效复杂网络模型。
发明内容
本发明所要解决的技术问题,就是提供一种基于复杂网络故障传播的软件关键函数辨识方法,提出一种更符合实际软件系统的概率失效网络模型,利用复杂网络的故障动力学过程对软件网络进行可靠性评价,分析不同节点失效对整个软件系统的影响,得到关键函数列表,从而为提升软件系统的可靠和稳定运行提供依据。
解决上述技术问题,本发明采用如下的技术方案:
一种基于复杂网络的软件关键函数辨识方法,其特征是包括如下步骤:
步骤一、根据源代码将软件系统(程序)进行子函数和调用关系提取,抽象成软件结构的网络图;其中,子函数代表节点,子函数间的调用关系代表边;
步骤二、根据每个子函数被调用执行的概率赋予每条边一定的权重w,此权重为函数间级联故障的失效概率;
步骤三、分析软件的拓扑结构特征,统计相关静态结构指标,包括每个节点的入度和出度值;
所述的节点的入度值是指此函数被其他函数调用的次数、出度值是指此函数调用其他函数的次数;
步骤四、对软件网络的每个节点进行级联失效仿真实验,统计每个节点失效稳定后软件网络的最大连通子图的节点数目G,即关键度;
步骤五、针对每个节点在步骤四产生的最大连通子图节点数目G进行从小到大进行排序,得到软件各个函数的关键度;其中,G越小,则说明此函数失效对整个软件的影响越大,即此函数越重要,应重点保护与控制,以保证软件系统的高可靠运行。
所述的步骤二具体如下:
若被调用子函数不在选择语句中,则边权为1;若被调用子函数在选择语句中,则根据所在分支被执行的概率分配权重w;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东电网有限责任公司电力科学研究院,未经广东电网有限责任公司电力科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510355506.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种插件调用方法及装置
- 下一篇:一种不锈钢基材玻璃封接元件镀镍方法





