一种基于有向加权网络的软件安全性的量化评估方法技术

技术编号:18972639 阅读:41 留言:0更新日期:2018-09-19 03:44
本发明专利技术公开了一种基于有向加权网络的软件安全性的量化评估方法。使用本发明专利技术能够对软件结构的复杂性和有序性两方面进行度量,实现对复杂软件的设计安全性的综合评估,能贴近复杂网络的真实情况,更为合理。本发明专利技术基于软件的有向加权网络模型,利用信息熵的概念,采用网络节点的连接度与抽象度实现对软件结构的有序性度量;此外,基于软件的有向加权网络模型,对软件结构的复杂性度量进行了改进,改进了节点波及度的计算方法,并提出以系统平均波及度为指标,对软件结构的复杂性进行度量。

A quantitative evaluation method for software security based on directed weighted network

The invention discloses a quantitative evaluation method of software security based on directed weighted network. The invention can measure the complexity and orderliness of software structure, realize the comprehensive evaluation of the design safety of complex software, and be close to the real situation of complex network, so it is more reasonable. The method is based on the directed weighted network model of software, and uses the concept of information entropy to measure the orderliness of software structure by using the connectivity and abstraction of network nodes; furthermore, the complexity measurement of software structure is improved based on the directed weighted network model of software, and the calculation of node sweep degree is improved. Method and put forward the measurement of the complexity of software structure based on the average sweep degree of the system.

【技术实现步骤摘要】
一种基于有向加权网络的软件安全性的量化评估方法
本专利技术涉及软件度量
,具体涉及一种基于有向加权网络的软件安全性的量化评估方法。
技术介绍
针对目前对于软件的高安全性的要求,需要对软件的安全性进行度量与评估。软件的安全性包括软件的设计安全性、开发安全性、运行安全性等几个方面。软件度量是在把度量的普遍规律具体实际应用到软件工程领域的实践过程中形成的。软件度量几乎涉及到软件生命周期内的每一个环节,占有着十分重要的地位。在软件的开发过程中,软件度量能够量化现有工作中的不足,指导开发人员以更合理的方式来进行软件开发。在软件开发完成后,软件度量能够量化软件的性质特征,指导开发人员进行软件的优化,指导测试人员进行软件的测试等。软件度量对于软件质量的控制和保证,对于软件可靠性,安全性等特性的保证具有十分重要的意义。在软件工程领域中,从提出软件度量至今的40年间,主要是度量软件结构的复杂性。在结构化程序设计时期,研究者们便提出许多软件结构复杂性度量方法,用来描述软件系统的功能性、可靠性、可维护性、效率等软件的质量属性,如McCabe的环形复杂性度量方法、Halstead文本复杂性度量方法等。在90年代以后,面向对象技术迅速发展,针对于面向对象软件系统的度量方法也逐渐被提出,比较经典的度量方法有Chidamber和Kemerer提出的基于继承树的C&K度量方法、Brito和Abreu提出的MOOD度量方法等。相比于结构化程序的度量方法,面向对象的度量方法更能显示出其优越性。随着软件规模越来越大,软件功能越来越复杂和繁琐,传统的软件结构特性度量方法已经越来越不能适用了,比如,Halstead度量方法主要针对文本复杂性;McCabe度量方法主要针对结构化程序的结构复杂性:C&K度量套件和MOOD度量方法主要针对面向对象程序设计的抽象数据类型单元的复杂性。它们更多的考虑了软件内部结构属性的度量,忽略了软件结构的外部特征。随着复杂网络被应用到软件工程领域的研究,很多研究者基于复杂网络进行软件度量。目前的基于复杂网络的度量方法大多数是将软件抽象为有向无权网络或无向无权网络,在无权网络的基础上提取节点的度、节点间距离、聚集系数、相关系数等参数值作为度量指标,实现对软件系统复杂性等的度量。但是,无权网络会忽略掉软件系统的一些重要的结构属性,比如连接关系,连接关系对于软件结构的复杂性影响是比较大的,所以忽略连接关系的度量缺乏准确性。有少数研究者提到将软件抽象成为加权网络,但是并没有将权值应用到软件结构复杂性的度量中。
技术实现思路
有鉴于此,本专利技术提供了一种基于有向加权网络的软件安全性的量化评估方法,除了对软件结构的复杂性进行度量外,还对软件结构的有序性进行了度量,从而实现对复杂软件的设计安全性的综合评估,能贴近复杂网络的真实情况,更为合理。本专利技术的基于有向加权网络的软件安全性的量化评估方法,对软件结构的复杂性进行度量,同时,还对软件结构的有序性进行度量;其中,软件结构有序性的度量方法如下:首先将软件转化为有向加权网络,然后计算网络中各节点的连接度与抽象度;其中,第i个节点的连接度pi为:与节点i直接相连的所有边的权重之和;第i个节点的抽象度ai为:ai=|DITi|+1,|DITi|为节点i代表的类或对象的继承树深度的值;则软件结构有序性评价系数Rs为Rs=0.5R1+0.5R2,其中,n为网络中节点总个数。进一步的,采用如下方法实现软件结构的复杂性度量:将软件转化为有向加权网络,以有向加权网络的系统平均波及度|T|avg作为软件结构复杂性评价系数;|T|avg的计算方法为:计算有向加权网络中所有节点的波及度的和T;统计有向加权网络中出度为1的节点的个数N,并计算所有出度为1的节点的波及度的和T1,则系统平均波及度为(T-T1)/(|V|-N),其中,|V|为有向加权网络中的节点总个数;其中第i个节点Vi的节点波及度|T(Vi)|的计算方法为:首先,针对节点Vi的可达集中的每个节点,首先计算节点Vi到该可达节点所经过的有向边的个数m及经过的各有向边的权重之和d,再计算d/m,每个可达节点的d/m的值之和即为节点Vi的节点波及度|T(Vi)|。进一步的,采用如下方法将软件转化为有向加权网络:首先获取软件的UML类图,然后将UML类图转化为有向网络图,然后根据类图中类与类之间的关系,对有向网络图的节点之间的边进行加权,从而获得有向加权网络;其中,类之间的关系的耦合性越强,则加权权重越大。有益效果:本专利技术在对软件安全性进行评估时,除了度量软件结构的复杂性外,还基于软件的有向加权网络模型对软件结构有序性进行了度量,结构有序性影响着软件的整体特性如鲁棒性等,对于软件结构有序性的量化度量能够更为准确的实现对软件设计安全性的评估。本专利技术对软件结构的复杂性度量方法进行改进,基于软件的有向加权网络模型,改进了节点波及度的计算方法,并提出以系统平均波及度为指标,对软件结构的复杂性进行度量,能够反映系统范围内的类之间依赖关系(即软件静态结构)的复杂度,能够更为准确的刻画软件结构复杂度,从而使得评估结果更为准确。本专利技术将根据节点(类)之间连接关系的不同对有向网络的边进行加权,得到软件的有向加权网络模型,可以更加全面的描述软件系统的结构属性,能够避免忽略类之间关系等重要属性,在有向加权网络的基础上进行复杂性和有序性度量,能够更为全面、准确的对软件安全性进行评估。具体实施方式下面结合附图并举实施例,对本专利技术进行详细描述。本专利技术提供了一种基于有向加权网络的软件安全性的量化评估方法,除了度量软件结构的复杂性外,还对软件结构的有序性进行度量,通过复杂性和有序性两方面的度量,综合量化评估软件的设计安全性。当度量得到软件结构的复杂度和有序度均在安全域内,表示该软件设计合理,产生漏洞的可能性较小,具有较高的安全性。(1)软件结构有序性度量软件结构有序性:有序使系统趋于稳定和确定,结构的有序便于功能的可控可管,利于模块间交互协同实现预定功能。软件网络结构的有序性指系统的组织在空间结构上分布的某种不均匀性(或异质性)和由此产生的一些整体的规律性特征,如鲁棒性,高通信效率(较短的平均最短路径长度)等。因此,对于软件结构有序性的度量有利于对软件系统整体特性的研究,有利于软件质量的管理控制,软件的可靠性和安全性的保证。为度量软件结构的有序性,本专利技术首先将软件转化为有向加权网络,然后以软件的有向加权网络模型为基础,计算网络各节点的连接度和抽象度,然后利用信息熵的概念对软件结构的有序性进行度量。有向加权网络复杂网络是对复杂系统的拓扑抽象,有向加权网络是指边具有方向和权值的一种复杂网络模型。首先获取到软件系统的源代码,利用工具通过逆向工程得到UML类图,或者在软件设计开发的正向过程中得到软件系统的UML类图。然后利用已有工具将类图转化为有向网络图,最后根据类图中类与类之间关系的不同,对有向网络的节点之间的边进行加权,具体加权规则如表1所示。其中,类之间的关系的耦合性越强,加权权重越大。表1加权规则关系名称权重备注依赖关系A关联关系B聚合关系C-组合关系C+强聚合继承关系Dextends实现关系Eimplements其中,A<B<C-<C+<D<E。节点的连接本文档来自技高网
...

【技术保护点】
1.一种基于有向加权网络的软件安全性的量化评估方法,对软件结构的复杂性进行度量,其特征在于,还对软件结构的有序性进行度量;其中,软件结构有序性的度量方法如下:首先将软件转化为有向加权网络,然后计算网络中各节点的连接度与抽象度;其中,第i个节点的连接度pi为:与节点i直接相连的所有边的权重之和;第i个节点的抽象度ai为:ai=|DITi|+1,|DITi|为节点i代表的类或对象的继承树深度的值;则软件结构有序性评价系数Rs为Rs=0.5R1+0.5R2,其中,

【技术特征摘要】
1.一种基于有向加权网络的软件安全性的量化评估方法,对软件结构的复杂性进行度量,其特征在于,还对软件结构的有序性进行度量;其中,软件结构有序性的度量方法如下:首先将软件转化为有向加权网络,然后计算网络中各节点的连接度与抽象度;其中,第i个节点的连接度pi为:与节点i直接相连的所有边的权重之和;第i个节点的抽象度ai为:ai=|DITi|+1,|DITi|为节点i代表的类或对象的继承树深度的值;则软件结构有序性评价系数Rs为Rs=0.5R1+0.5R2,其中,n为网络中节点总个数。2.如权利要求1所述的基于有向加权网络的软件安全性的量化评估方法,其特征在于,采用如下方法实现软件结构的复杂性度量:将软件转化为有向加权网络,以有向加权网络的系统平均波及度|T|avg作为软件结构复杂性评价系数;|T|avg的计算方法为:计算有向加权网络中所有节点的波及度的...

【专利技术属性】
技术研发人员:单纯刘丽媛尤龙张思聪危胜军
申请(专利权)人:北京理工大学北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1