CN110851177B - 一种基于软件故障传播的软件系统关键实体挖掘方法 - Google Patents
一种基于软件故障传播的软件系统关键实体挖掘方法 Download PDFInfo
- Publication number
- CN110851177B CN110851177B CN201911069087.7A CN201911069087A CN110851177B CN 110851177 B CN110851177 B CN 110851177B CN 201911069087 A CN201911069087 A CN 201911069087A CN 110851177 B CN110851177 B CN 110851177B
- Authority
- CN
- China
- Prior art keywords
- software
- node
- nodes
- network
- attack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000005065 mining Methods 0.000 title claims abstract description 10
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000013522 software testing Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000009412 basement excavation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005312 nonlinear dynamic Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
Abstract
本发明涉及一种基于软件故障传播的软件系统关键实体挖掘方法,用于解决大型复杂软件质量难以保证,可信性难以控制,维护费用高等问题,具体包括:建立软件网络;构建软件网络的节点攻击策略;针对构建的节点攻击策略建立软件网络的故障传播模型,计算相对失效比率S来评估故障传播结束后软件网络的损坏情况;利用相对失效比率S识别出软件系统中的关键实体。本发明为提高软件系统的抗攻击性做好了前期准备,提高了整个软件系统的可信性;可以在进行软件体系结构设计时,提高软件系统的抗毁性;另外,对于理解软件系统的拓扑结构、定位软件错误、预防软件漏洞、辅助软件测试、控制和降低软件维护费用等具有重要的实践意义。
Description
技术领域
本发明涉及软件系统中关键实体的挖掘,具体涉及一种引入多点攻击及总攻击成本异质分配的基于软件故障传播的软件系统关键实体挖掘方法,用于解决大型复杂软件质量难以保证,可信性难以控制,维护费用高等问题,能为优化软件系统的体系结构设计、定位软件错误、预防软件漏洞、辅助软件测试等提供技术支持。
背景技术
软件是信息技术的核心,代表着知识、科技和管理的创新。软件产业已成为突出体现一个国家高附加值产业的水平、衡量一个国家综合实力水平的标志之一。近年来,我国软件业取得了有目共睹的成果,但是软件系统不断增加的规模和复杂性,使得软件开发困难,软件质量难以保证,软件维护费用居高不下,软件可信性难以控制等问题日益突出。
软件系统复杂性的增加直接导致了软件故障复杂性的增加。如果能识别出软件系统中的关键实体,就可以为提高软件系统的抗攻击性做好前期准备,比如采取各种测试方法来保证这些关键实体的可靠性,使其能够在各种环境下保证运行的正确性,这样就为关键实体建立了一层保护,使其对其他实体可信,从而提高整个软件系统的可信性;另一方面,在进行软件体系结构设计时,避免出现故障传播能力过强的实体,可以有效地抑制软件故障大规模传播现象的发生,缩小级联故障的影响范围,提高软件系统的抗毁性;另外,对于理解软件系统的拓扑结构、定位软件错误、预防软件漏洞、辅助软件测试、控制和降低软件维护费用等具有重要的实践意义。
耦合映像格子(Coupled Map Lattice,CML)模型是一个时间、空间都离散而状态连续的非线性动力学模型,能够有效刻画复杂软件系统在受到攻击时的故障传播行为。
发明内容
为了挖掘软件系统中的关键实体,利用软件系统的源码建立软件网络。构建最优的节点攻击策略,在软件网络上建立软件故障的传播模型,挖掘软件网络中的关键节点,依据节点与实体的一一对应关系,识别软件系统的关键实体。
本发明利用软件系统的源码,将多点攻击和总攻击成本异质分配策略引入CML级联故障模型,提出一种基于软件故障传播的软件系统关键实体挖掘方法。该方法步骤如下:
第一步,建立软件网络;
第二步,构建软件网络的节点攻击策略;
第三步,针对构建的节点攻击策略建立软件网络的故障传播模型,计算相对失效比率S来评估故障传播结束后软件网络的损坏情况;
第四步,利用相对失效比率S识别出软件系统中的关键实体。
有益效果
本发明为提高软件系统的抗攻击性做好了前期准备,提高了整个软件系统的可信性;可以在进行软件体系结构设计时,避免出现故障传播能力过强的实体,提高软件系统的抗毁性;另外,对于理解软件系统的拓扑结构、定位软件错误、预防软件漏洞、辅助软件测试、控制和降低软件维护费用等具有重要的实践意义。
附图说明
图1是识别软件系统关键节点的算法流程图。
具体实施方式
下面对发明的具体技术方案做进一步的说明。
第一步,建立软件网络;
本发明中的软件实体可以是软件系统中的函数、类、包、模块或组件等。
对于基于面向对象技术开发的软件系统,例如基于Java语言开发的软件系统,如果将软件源码中的类当作网络节点,类之间的关联关系抽象为边,则可以构建基于类的软件网络,此时类是软件系统的实体;如果将软件源码中的包当作网络节点,包之间的关联关系抽象为边,则可以构建基于包的软件网络,此时包是软件系统的实体;对于采用非面向对象技术开发的软件系统,例如Linux、MySQL等,如果将软件源代码中的函数抽象为节点,函数之间的调用关系抽象为边,则可以构建基于函数的软件网络,此时函数是软件系统的实体。
第二步,构建软件网络的节点攻击策略
本发明中的软件故障传播模型可以支持任何的节点攻击策略,并不限于下面的4种常见节点攻击策略。
(1)基于度的节点攻击策略:将软件网络中节点的度值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,度越大的节点越排在集合Z的前面。节点i的度是指节点i的直接连边的个数。
(2)基于聚类系数的节点攻击策略:将软件网络中节点的聚类系数值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,聚类系数越大的节点越排在集合Z的前面。节点的聚类系数定义为其中ei为节点i的直接邻居节点间的实际连边个数之和,其中,两个节点有一条连边直接连接的互为直接邻居,节点i可能有多个直接邻居如:j、k、m等,ei指j、k、m间的连边个数之和,ki为节点i的度。
(3)基于介数的节点攻击策略:将软件网络中节点的介数值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,介数越大的节点越排在集合Z的前面。节点的介数定义为其中N为网络中的节点总数,njl为节点j到节点l的最短路径的数量,节点j和l之间可能有多条路径连通,最短路径是指经过的边的数目最少的路径,njl为最短路径的个数,njl(i)为节点j到节点l且经过节点i的最短路径的个数,节点i和l之间的最短路径经过节点i的才增加njl(i)的值,不经过节点i的最短路径不累加njl(i)的值里。
(4)基于接近中心性的节点攻击策略:将软件网络中节点的接近中心性值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,接近中心性越大的节点越排在集合Z的前面。节点的接近中心性定义为其中N为网络中的节点总数,d(i,j)为节点i到节点j的最短路径长度,即最短路径所经过的边的数量。
第三步,针对构建的节点攻击策略建立软件网络的故障传播模型,计算相对失效比率S来评估故障传播结束后软件网络的损坏情况;
本发明对传统的CML模型进行改造,使之可以适应多点攻击。传统的CML模型只支持单点攻击,可以表示为
其中,xi(t+1)为节点i在t+1时刻的状态,-aij表示表示网络中节点i和节点j的关联关系,如果节点i和节点j间有连边,则aij=1,否则aij=0,N为网络中的节点总数,ε是耦合强度,k(i)表示节点i的度,fi(*)为logistic映射,函数fi(t)=4*xi(t)(1-4*xi(t))表示节点自身的动态行为。
如果0<xi(t)<1,t≤m,那么称节点i在第m时间步处于正常状态。相反地,如果0<xi(t)<1,t<m;xi(m)≥1,那么称节点i在第m时间步受到攻击并失效。
大型复杂软件系统中不仅存在单个实体受攻击的情况,也普遍存在多个实体受攻击的情况。本发明的主要创新是提出了针对软件系统受到多点攻击的故障传播模型,以及多点攻击下总攻击成本异质分配的策略,并应用于软件系统关键实体的挖掘。为了使传统的CML模型支持多点攻击及总攻击成本异质分配的要求,我们定义Z为攻击节点集合,Q为Z中的元素个数,Rt为施加到Q个节点上的总攻击成本(总干扰量),每个节点分到的攻击量
其中,yi为节点i的中心性(Centrality),可以是节点的度、介数、强度、聚类系数或接近中心性等;α为可调节参数,0<α≤2,用来实现总攻击成本的异质分配,通过调节α的值可以得到不同攻击策略下的最优攻击效果。
第m时间步,将总攻击成本Rt施加到Q个节点上,则节点i(i∈Z)的状态即故障传播模型具体如下:
其中,ε(0≤ε≤1)是耦合强度,fi(*)为logistic映射,aij表示表示网络中节点i和节点j的关联关系,如果节点i和节点j间有连边,则aij=1,否则aij=0,k(i)表示节点i的度;m表示第m个时间步;
如果xi(m)≥1,则节点i失效,节点i在第m+2时间步及以后的时间步都不再引起故障传播,即xi(t)≡0,t>m,而在第m+1时间步,节点i的直接邻居节点l的状态将按照公式(1)更新;
第四步,识别出软件系统中的关键实体
(1)针对每个攻击策略,调节α的值,得到最优α值使得相对失效比率S的值最大,每个攻击策略的最优α值可能不相同。
(2)对比不同攻击策略在各自最优α值下的S值,S值最大的为最优攻击策略。
(3)最优攻击策略对应的Z集合即为软件网络中的关键节点,依据节点与实体的一一对应关系,得到软件系统中的关键实体。Z集合中排位越靠前的节点对应的软件实体越重要。
Claims (5)
1.一种基于软件故障传播的软件系统关键实体挖掘方法,其特征在于包括以下步骤:
第一步,建立软件网络;
第二步,构建软件网络的节点攻击策略;
第三步,针对构建的节点攻击策略建立软件网络的故障传播模型,计算相对失效比率S来评估故障传播结束后软件网络的损坏情况;
第四步,利用相对失效比率S识别出软件系统中的关键实体;
步骤3中所述的故障传播模型用于针对软件系统中的节点集合Z攻击,其中,第m时间步,将总攻击成本Rt施加到Q个节点上,则节点i(i∈Z)的状态即故障传播模型具体如下:
其中,ε(0≤ε≤1)是耦合强度,fi(*)为logistic映射,aij表示网络中节点i和节点j的关联关系,如果节点i和节点j间有连边,则aij=1,否则aij=0,k(i)表示节点i的度;m表示第m个时间步;
其中,
其中,yi为节点i的中心性(Centrality),可以是节点的度、介数、强度、聚类系数或接近中心性,α(0<α≤2)为可调节参数;如果xi(m)≥1,则节点i失效,节点i在第m+2时间步及以后的时间步都不再引起故障传播,即xi(t)≡0,t>m,而在第m+1时间步,节点i的直接邻居节点l的状态将按照公式(1)更新;
所述的相对失效比率S的计算公式具体为:其中,N是软件网络中的节点总数,I(t)是软件网络在第t时间步失效的节点总数,T代表时间步总数,所述的第t时间步失效的节点指第t时间步状态值x(t)≥1的节点。
2.根据权利要求1所述的一种基于软件故障传播的软件系统关键实体挖掘方法,其特征在于:步骤1中所述的软件网络的实体可以是软件系统中的函数、类、包、模块或组件。
3.根据权利要求2所述的一种基于软件故障传播的软件系统关键实体挖掘方法,其特征在于:
对于基于面向对象技术开发的软件系统,如果将软件源码中的类当作网络节点,类之间的关联关系抽象为边,则可以构建基于类的软件网络,此时类是软件系统的实体;如果将软件源码中的包当作网络节点,包之间的关联关系抽象为边,则可以构建基于包的软件网络,此时包是软件系统的实体;
对于采用非面向对象技术开发的软件系统,如果将软件源代码中的函数抽象为节点,函数之间的调用关系抽象为边,则可以构建基于函数的软件网络,此时函数是软件系统的实体。
4.根据权利要求1所述的一种基于软件故障传播的软件系统关键实体挖掘方法,其特征在于:软件故障传播模型支持以下4种节点攻击策略:
(1)基于度的节点攻击策略:将软件网络中节点的度值按照从大到小的顺序排列,选取度前Q个节点组成攻击节点集合Z,度越大的节点越排在集合Z的前面,其中,节点i的度是指节点i的直接连边的个数;
(2)基于聚类系数的节点攻击策略:将软件网络中节点的聚类系数值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,聚类系数越大的节点越排在集合Z的前面;节点的聚类系数定义为其中ei为节点i的直接邻居节点间的实际连边个数之和,ki为节点i的度;
(3)基于介数的节点攻击策略:将软件网络中节点的介数值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,介数越大的节点越排在集合Z的前面;节点的介数定义为其中N为网络中的节点总数,njl为节点j到节点l的最短路径的个数,njl(i)为节点j到节点l且经过节点i的最短路径的个数;
(4)基于接近中心性的节点攻击策略:将软件网络中节点的接近中心性值按照从大到小的顺序排列,选取前Q个节点组成攻击节点集合Z,接近中心性越大的节点越排在集合Z的前面;节点的接近中心性定义为其中N为网络中的节点总数,d(i,j)为节点i到节点j的最短路径长度。
5.根据权利要求1所述的一种基于软件故障传播的软件系统关键实体挖掘方法,其特征在于:第四步,识别出软件系统中的关键实体具体包括:
(1)针对每个攻击策略,调节α∈(0,2]的值,得到最优α值使得相对失效比率S的值最大;
(2)对比不同攻击策略在各自最优α值下的S值,S值最大的为最优攻击策略;
(3)最优攻击策略对应的Z集合即为软件网络中的关键节点,依据节点与实体的一一对应关系,得到软件系统中的关键实体,Z集合中排位越靠前的节点对应的软件实体越重要。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911069087.7A CN110851177B (zh) | 2019-11-05 | 2019-11-05 | 一种基于软件故障传播的软件系统关键实体挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911069087.7A CN110851177B (zh) | 2019-11-05 | 2019-11-05 | 一种基于软件故障传播的软件系统关键实体挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851177A CN110851177A (zh) | 2020-02-28 |
CN110851177B true CN110851177B (zh) | 2023-04-28 |
Family
ID=69599777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911069087.7A Active CN110851177B (zh) | 2019-11-05 | 2019-11-05 | 一种基于软件故障传播的软件系统关键实体挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851177B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112002127B (zh) * | 2020-09-02 | 2021-09-17 | 西北工业大学 | 轨道交通中站点重要性评估方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473162A (zh) * | 2013-09-25 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于软件故障注入的可靠性评测系统设计方法 |
CN107103363A (zh) * | 2017-03-13 | 2017-08-29 | 北京航空航天大学 | 一种基于lda的软件故障专家系统的构建方法 |
CN109271319A (zh) * | 2018-09-18 | 2019-01-25 | 北京航空航天大学 | 一种基于面板数据分析的软件故障的预测方法 |
CN110110529A (zh) * | 2019-05-20 | 2019-08-09 | 北京理工大学 | 一种基于复杂网络的软件网络关键节点挖掘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810073B2 (en) * | 2017-10-23 | 2020-10-20 | Liebherr-Werk Nenzing Gmbh | Method and system for evaluation of a faulty behaviour of at least one event data generating machine and/or monitoring the regular operation of at least one event data generating machine |
-
2019
- 2019-11-05 CN CN201911069087.7A patent/CN110851177B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473162A (zh) * | 2013-09-25 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于软件故障注入的可靠性评测系统设计方法 |
CN107103363A (zh) * | 2017-03-13 | 2017-08-29 | 北京航空航天大学 | 一种基于lda的软件故障专家系统的构建方法 |
CN109271319A (zh) * | 2018-09-18 | 2019-01-25 | 北京航空航天大学 | 一种基于面板数据分析的软件故障的预测方法 |
CN110110529A (zh) * | 2019-05-20 | 2019-08-09 | 北京理工大学 | 一种基于复杂网络的软件网络关键节点挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110851177A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112633649A (zh) | 电网多属性重要节点评估与规划方法 | |
CN105429185B (zh) | 一种具有鲁棒协同一致性的经济调度方法 | |
CN105183957B (zh) | 一种用于航空电子系统的鲁棒性分析方法 | |
CN109033507A (zh) | 一种考虑信息系统监视功能失效的电力系统可靠性评估方法 | |
CN110851177B (zh) | 一种基于软件故障传播的软件系统关键实体挖掘方法 | |
CN112118176A (zh) | 一种面向业务可靠性的综合数据网通道路由负载优化方法 | |
CN112637006A (zh) | 一种电力通信网关键节点及影响域分析方法 | |
Zhang et al. | A diameter-constrained approximation algorithm of multistate two-terminal reliability | |
Wang et al. | Model checking nRF24L01-based internet of things systems | |
Vuković et al. | Detection and localization of targeted attacks on fully distributed power system state estimation | |
CN110474327B (zh) | 配电网cps信息-物理组合预想故障生成方法及系统 | |
Sun et al. | Reachability-based robustness of controllability in sparse communication networks | |
CN109697563B (zh) | 一种考虑隐性故障的电力信息物理系统风险保障预警方法 | |
CN112016085B (zh) | 一种应对信息-物理协同攻击的发输电系统规划方法 | |
CN108509751B (zh) | 一种考虑延时矩阵的电力信息物理耦合系统动态建模方法 | |
CN111900720B (zh) | 一种基于双层网页排序算法的输电网脆弱线路辨识方法 | |
Liu et al. | Node Importance Evaluation of Cyber-Physical System under Cyber-Attacks Spreading | |
CN109064026A (zh) | 一种考虑供电系统运行方式的工业过程过程参数免疫时间评估方法 | |
CN111060781A (zh) | 一种配电网故障定位的方法和系统 | |
CN110336606B (zh) | 一种基于参数估计与业务识别的电力光网络故障诊断方法 | |
CN107818414B (zh) | 一种大规模交直流混联电网n-2预想事故集的生成方法 | |
Dong et al. | Distributed robust‐multivariate‐observer‐based FDI attacks estimation for nonlinear multi‐agent systems with directed graphs | |
CN117938543A (zh) | 一种基于拓扑差异性度量的网络动态防御方法及系统 | |
Li et al. | Availability allocation of networked systems using Markov model and heuristics algorithm | |
CN114900461B (zh) | 考虑信息物理融合特性的电力通信网路由优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |