论文部分内容阅读
随着软件系统复杂性的不断提高,对软件的控制变得越来越困难,软件开发质量和可靠性难以保证。如何有效的表征软件特征和软件内部的关联关系,解释软件行为特征和演变规律成为解决我国软件产业发展瓶颈的关键问题。本文引入复杂网络原理,从网络拓扑结构角度对软件系统的结构特性进行深入研究与分析。首先,为了提取Java软件程序的内部结构,提出一种构建软件网络模型的方法,以程序中的类为节点构造软件网络拓扑结构。设计算法用来实现在静态代码中对Java类及其关系类的采集。对采集数据进行整理,去除冗余信息,构建软件的网络模型。其次,根据软件网络的基本参数分析了软件的复杂网络特性。通过对软件网络结构的度分布,平均路径长度和聚集系数角度说明Java软件网络结构符合小世界与无标度特性,对开源软件的分析和应用提供前提依据。再次,考虑类节点在软件执行过程中的故障累积性质与脆弱性,基于类间的关联关系确定类的依赖类集,通过分析类、方法和变量之间的调用关系,对不同关系赋值,挖掘出软件网络中脆弱性较大的关键节点,通过对软件的不同版本的实验,揭示了关键节点的变化趋势。最后,构建评价模型对Java程序中的自然包结构进行评价。基于复杂网络模型,从中提取软件中类节点的数量,分析软件升级过程中类节点的变化趋势。根据Java语言特性定义软件评价标准模块度Q值,度量Java程序中包设计的合理性。本文通过对两款软件进行实验,对软件的网络结构进行分析,挖掘软件系统的潜在性质,验证所提方法的有效性和正确性。