【技术实现步骤摘要】
一种软件缺陷检测关键节点的识别方法
[0001]本专利技术涉及软件安全
,具体涉及一种软件缺陷检测关键节点的识别方法
。
技术介绍
[0002]随着数字化智能化发展,软件系统变得越来越复杂,使得软件发生故障的可能性也随之增大
。
在软件开发过程中,模块存在缺陷是在所难免的,这些缺陷一旦在软件正式使用过程中暴露出来,影响软件运行,甚至造成整个系统的级联崩溃
。
与传染病在人群中的传播类似,软件系统中的缺陷会随着软件系统模块间的依赖关系,如方法调用和参数传递等传播到其它没有缺陷的模块中,导致其它的模块也运行出错
。
在软件动态执行状态下,对软件系统中具有缺陷的少量关键模块进行破坏会对软件系统产生较大的影响,其他大部分软件缺陷仅对软件系统造成有限的影响
。
因此,如果能准确地检测出软件系统中缺陷影响较大的模块,并对这些关键模块进行关注完善,对于增加软件系统的稳定性与可靠性具有重要的参考价值
。
[0003]复杂网络分析为分析软件系统提供了 ...
【技术保护点】
【技术特征摘要】
1.
一种软件缺陷检测关键节点的识别方法,其特征是:该方法由以下步骤实现:步骤一
、
初始化有向软件函数调用网络
DFIN
=
(V
,
E)
;节点集为
V
=
{v
i
|i
=1,2,
...
,
N}
,其中节点
v
i
为网络中编号为
i
的函数实体,
N
为网络的节点数量;有向边集为
E
=
{e
kj
|e
kj
=
(v
k
,
v
j
)
,
v
k
∈V
,
v
j
∈V}
,其中
e
kj
为软件动态执行过程中有序函数节点对
(v
k
,
v
j
)
所构成的有向边,
e
kj
≠e
jk
,编号为
k
的函数实体调用编号为
j
的函数实体,节点
v
k
为
e
kj
的调用函数节点,节点
v
j
为
e
kj
的被调函数节点;若有向边集
E
中不存在任何以函数实体
i
为调用函数的边,那么节点
v
i
称为叶子函数节点,
V
中所有满足此条件的叶子函数节点组成的节点集为
V
n
;步骤二
、
定义有向软件函数调用网络中有向边
(v
k
,
v
j
)
间权重
w
kj
;步骤三
、
根据步骤二获得的权重
w
kj
,设计节点扩展度
NED
;对
DFIN
=
(V
,
E)
有向软件函数调用网络中各个有向边进行赋权,初始化有向加权软件函数调用网络
DWFIN
=
(V
,
E
,
W)
;边权重系数集为
W
=
{w
kj
|e
kj
∈E}
,边权重系数集的权重
w
kj
与边集合的边
e
kj
一一对应,且两个集合元素的个数完全相同;定义可动态调整的影响系数平衡出边邻居节点和出边次邻居节点在局部范围内对指定节点缺陷传播能力的影响程度,根据所述影响系数设计节点扩展度
NED
衡量有向加权软件函数调用网络内一个节点在网络中局部传播缺陷的能力;步骤四
、
计算有向加权软件函数调用网络中的节点改进
K
‑
壳位置
NIKP
;根据
K
‑
shell
分解法计算节点改进
K
‑
壳位置,用于衡量有向加权软件函数调用网络内一个节点在网络中全局传播缺陷的能力;步骤五
、
定义有向加权函数调用网络中节点缺陷传播能力
NDSC
;根据步骤三中的节点扩展度
NED
和步骤四的节点改进
K
‑
壳位置定义节点缺陷传播能力
NDSC
衡量有向加权软件函数调用网络内一个节点在网络中将其自身缺陷传播给其它节点的能力;步骤六
、
定义软件缺陷检测过程中的关键节点
KN
;将步骤五中的节点缺陷传播能力
NDSC
值从大到小进行排序,排名前
P
的节点的集合作为软件缺陷检测过程的关键节点
。2.
根据权利要求1所述的一种软件缺陷检测关键节点的识别方法,其特征在于:步骤二中,根据函数调用链
FCC
定义有向软件函数调用网络
DFIN
中有向边
(v
k
,
v
j
)
间权重
w
kj
;具体过程为:设定入口函数节点为
v
a
,
v
a
∈V
,则从节点
v
a
到节点
v
z
,
v
z
∈V
n
的一条函数调用链为
f
az
=
(v
a
,
...
,
v
k
,
v
j
,
...
,
v
z
)
,所述函数调用链中任意两个相邻的节点
v
k
和
v
j
,则有
e
kj
∈E
,且所述函数调用链
f
az
包含
e
kj
;从入口函数节点出发分别至各叶子函数节点终止的所有函数调用链的链集为
C
=
{f
az
|f
az
=
(v
a
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。