软件复杂性的增加直接导致软件故障的复杂性增加.从系统科学的角度出发,采用复杂网络等方法和技术在整体上研究复杂软件的级联故障特性是研究软件质量的一个新视角.以函数为节点、以调用关系为边,提出了使用有向边和边权表述函数间的调用关系和紧密程度的拓扑模型.通过引入函数容错能力和软件故障强度建立复杂软件的级联故障模型,模拟软件运行时的故障传播行为.对3个实际软件网络的实验结果表明,弱的故障强度、少的初始故障节点和高的容错能力均会减缓故障的传播速度和缩小故障的波及范围.分析了部分软件节点最终未被感染的原因,文中模型有助于为软件工程人员准确检测复杂软件的复杂性和容错性提供新的思路.
The increasing of software complexity directly results in the increased complexity of software faults. From the perspective of system science, using complex networks theory to modeling cascading faults in complex software provides a new approach to evaluate software quality. Functions and call relations are extracted into nodes and edges, respectively. Directional edges and corresponding weight values are used to express call relations and tightness degree. By introducing two concepts of function fault-tolerant capability and software fault intensity, a cascading fault model is proposed to explore fault propagation behaviors. Simulations on three practical software networks show that a weak fault intensity, a few number of initial faults, and a strong fault-tolerant capability can slow down the spreading speed and thus reduce the affect range. Some reasons for a few nodes that are not disrupted by faults are analyzed. The model is expected to give engineers a new approach to correctly evaluate the complexity and the fault-tolerant capability of complex software.