论文部分内容阅读
针对软件系统的稳定性和安全性问题,本文基于软件网络中节点之间的调用关系,引入复杂网络理论,从节点和社团等网络拓扑结构的角度,对软件系统的结构特性进行研究分析。首先,为了更清晰地展示软件执行过程中的相关信息,根据函数间的调用关系,提出一种构建软件网络模型新方法。通过设定不同的实验用例参数,多次执行软件系统,追踪执行过程中函数调用的相关信息。对多次执行结果进行去重合并,删除冗余信息,构建软件执行网络模型。其次,考虑网络结构中节点故障的传播特性,将函数节点的故障概率定义为节点的脆弱性NV(Node Value)。分析软件执行过程中函数节点之间的调用关系,给出算法MIN(Mining the Importance of Node)计算函数节点的NV值,并通过算法MKN(Mining the top-K nodes)获取关键节点。分析软件各版本中关键节点的分布情况,揭示软件升级过程中关键节点的稳定性。再次,基于软件执行过程中函数间的调用关系,定义函数节点的依赖函数集合DNSet(Dependency Node Set),给出评估函数节点重要性的度量标准依赖度FA(Fault Accumulation)。为了计算函数节点的FA值,给出算法MIEN(Mining the Importance of Each Node)。通过对节点排序,挖掘软件中的关键节点。分析关键节点在不同软件版本中的分布规律,揭示关键节点的稳定性。最后,引入社团理论,依据软件网络中的关键节点,提出算法GOC(Generation the Original Communities)初始化软件网络中的社团结构。基于节点间不同的依赖程度,给出算法OPSN(The Optimal of Partition the Software Network),将其他节点划分到不同的社团结构中,获取最优的划分。考虑软件“高内聚,低耦合”特性,提出新标准COM(Cohesion Of Community)评估软件网络中社团结构。通过对两款软件进行实验,分析软件的网络结构,挖掘软件系统的潜在性质,验证所提方法的有效性和正确性。