人类在大型软件开发过程中面临的问题目前已经不可控制!软件开发面临着前所未有的危机!为了工业化的控制软件生产,软件工程师与科学家们进行着不懈的努力,如今的研究焦点聚焦于研究并实现软件可信性。本项目基于课题组长期以来对复杂网络理论深入的理解与对其应用的若干成功经验,针对软件结构的网络化特征,通过提取软件网络化结构,匹配软件设计模式,研究软件的自组织机制,根据若干算法抽取软件网络的核心并构建其生长演化模型,通过软件网络的容错性和多粒度分形研究探讨局部结构对软件全局结构的影响,建立起基于软件网络的可信性度量体系。并以上述研究成果为基础实现具有自主知识产权的软件可信性度量分析工具。该度量体系和分析工具,将使我们从大规模软件网络的复杂性中发现其蕴含的规律,改进现有的软件设计思路,解放软件产业的生产力,并最终填补软件可信性度量分析工具的空白,具有重要的理论研究意义和应用价值。
software networks;complex networks;software reliability;software measurement;software evolution
大规模软件系统中因大量的组成元素及其之间错综复杂的关系而涌现的复杂性问题已逐渐超出了开发人员的理解能力,软件内部结构成为了影响软件质量和软件可信性的关键因素。国内外对软件结构的复杂性问题都进行了广泛研究,将软件结构抽象为复杂网络并研究其复杂性是近年来的一条可行的新思路。我们重点基于复杂网络理论对软件结构的组织机制,统计特征和演化进行了研究,取得了以下研究成果首先,我们建立了软件结构抽取为软件网络的分析平台,并建立样本数据库,数据在实验室网站公开。其次,抽象了设计模式的结构特征形式化表达;对软件设计中设计模式应用的宏观规律进行了研究和分析;研究分析了同类型的软件在其演化过程中软件规模和设计模式应用的演变规律。再次,我们从追踪网络节点辐射和传播入手,研究了软件网络中节点对其他节点的影响,为研究软件网络中容错控制及降低维护成本提供基础。然后,我们进一步探讨软件网络各层之间的等级与控制关系,并抽取其核心层节点,观察软件网络演化过程中的结构变化。重点是,我们在分析掌握软件网络特征的基础上,构建了软件结构可信性度量体系,对软件结构设计进行评估,定位结构隐患,为软件开发和维护提供指导。并且,我们从软件多粒度,社团特征等综合考虑,建立了软件演化模型,可有效应用于软件可信性演化预测。最后,我们将已掌握软件网络的抽象化方法,量化度量方法和可视化方法。基于课题组以上所有研究,完成了软件网络的分析平台,平台提供分析软件源代码并抽取为软件网络的功能,计算软件网络可信性及软件质量的量化度量,形成清晰明了的软件网络拓扑可视化和参数显示,为研究人员和软件行业提供结构度量支持。