复杂网络视域下的大规模软件静态结构度量及进化分析

复杂网络视域下的大规模软件静态结构度量及进化分析

论文摘要

软件是当今人们解决现实复杂问题的有效工具,随着问题域的深入和扩展,软件的规模和复杂度与日俱增,使得开发者越来越难以理解所开发的软件系统,开发的风险逐渐加大,而软件产品质量又没有像工业产品那样严格的评价标准,因而难以得到有效控制和根本保障。传统软件工程理论在大规模软件的开发、评价、维护等方面表现出极大的局限性,正在接近其复杂性的极限。因此如何理解和量化软件日益增长的复杂性,构建适应维护的良好架构,合理评价软件系统是软件度量学要解决的关键问题,也是软件工程面临的一个极大的挑战。软件系统是由大量的底层元素及它们之间错综复杂的交互关系构成的一种复杂系统,其结构蕴含着软件所有的拓扑信息并呈现网络化的表征,软件的结构决定着其功能和质量。传统的软件工程设计方法通常过分的关注软件底层的局部结构特征,而忽略了更为重要的反映整体特性的全局结构,使得开发人员难以把握大规模软件系统的设计使用和研究,导致他们对整个软件科学和工程的基本结构和本质特征缺乏清晰的宏观认识,而这又妨碍了他们理解、复用已有系统进行新的高效、高质量开发。近年来,研究人员发现,软件的内部结构表现出了明显的复杂网络特征,因此利用复杂系统和软件工程的学科交叉研究,从复杂网络和复杂系统的视域来重新审视软件系统,将其抽象为人工复杂网络进行研究,从整体探索软件结构的复杂性本质、进化规律和行为特征并给出量化评价,形成一种新的软件网络观来指导大规模软件系统设计,突破了软件的传统思维方式,有助于从源头控制和提高软件质量,确保软件性能,降低维护成本。本文首先分析了传统度量方法在大规模软件应用上的不足,从复杂网络这一新的视域来观察评价软件系统。以分析和度量软件结构的整体特性为着眼点,以质量控制和结构优化为目标,通过开发软件解析工具,实现软件拓扑结构解析与可视化,构建软件静态结构的网络模型,对软件系统整体进行直观粗略评价;同时构建软件样本档案库,为后续研究提供支撑;经过大样本多维度的软件结构特征量及相关性的统计分析,阐述了它们在软件结构的复杂性、稳定性及可靠性等方面的影响作用,并结合新定义的依赖度、影响度和热力学熵的概念从不同的角度构造了两种系统复杂性的定量描述,初步确定软件节点和结构不同维度的参考度量参数。随后,本文从软件的基础结构入手,定义了软件网络核的概念,通过对软件结构核的提取和扩展,利用核数和k核分解分析大规模软件的潜在结构特性,结合软件设计思想,对核数在软件系统层级性、中心性、连接趋势、进化趋势等方面的重要地位和影响进行了量化分析研究,初步形成软件设计合理的判据,为简化理解大规模软件系统,有针对性的重点测试和度量提供指导性建议。其次,在比较传统度量方法优缺点的基础上,提出了一个基于复杂网络的二维的软件度量方法体系(BCN测度体系)并加以评价。总结度分布,平均最短路径、聚集系数,介数,结构熵,核数等特征量在软件网络分析中的功能和用途,根据大样本优秀开源软件统计分析结果,确定结构设计良好软件的统计学判据作为质量评估的参考;从微观构成和宏观拓扑两个维度定义8个测度来全方位的度量软件系统的重要单元和结构特性,进一步量化了软件质量的评价,并通过实际的水电仿真系统验证该体系的合理性、可行性和有效性。再次,基于度量方法体系从时间维对软件系统的进化规律进行研究,重点对软件网络平均节点度、平均介数、核数、簇度相关性、匹配系数等重要特征量进行随大样本版本变化的跟踪统计分析,研究其变化特性,揭示软件进化的模式、形态以及基本规律,为了解软件生态特征,预测软件进化趋势,指导软件项目开发提供可靠依据。最后,在软件生态系统中,通过标准结构熵考察软件网络进化整体体现的有序性,进一步说明软件进化的方向是有序性增强,复杂性增加,而拓扑结构趋于稳定性;揭示软件系统是一种耗散结构,进化使软件具有显著的代谢、组织化、有序和突变的生态特征,进化的最终趋势是获得适应性稳定;通过定义进化速率和灰色理论给出进化快慢的量化判别方法;提出利用逻辑斯谛方程对软件复杂度进化预测的新方法,为软件开发和质量控制提供参考。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 软件质量的桎梏
  • 1.1.1 软件的复杂性
  • 1.1.2 软件度量和进化的新挑战
  • 1.2 软件的网络观
  • 1.2.1 复杂网络与软件结构
  • 1.2.2 研究的目的和意义
  • 1.3 本文的主要研究内容
  • 1.4 本文的组织结构
  • 第2章 复杂网络视域下的软件网络
  • 2.1 软件网络模型
  • 2.1.1 网络和复杂网络
  • 2.1.2 软件静态结构的单元和组织
  • 2.1.3 软件静态结构网络拓扑及映射
  • 2.2 复杂网络主要特征
  • 2.2.1 节点度与度分布
  • 2.2.2 平均路径长度
  • 2.2.3 聚集系数
  • 2.2.4 介数和核数
  • 2.3 软件网络拓扑性质
  • 2.3.1 规则网络和随机网络
  • 2.3.2 小世界网络
  • 2.3.3 无尺度网络
  • 2.3.4 软件静态结构与网络拓扑模型
  • 2.4 软件网络结构分析
  • 2.4.1 需求描述和解析工具
  • 2.4.2 解析工具功能
  • 2.4.3 解析工具设计和实现
  • 2.4.4 实验样本的选取
  • 2.4.5 软件网络的复杂网络特征及可视化
  • 2.5 本章小结
  • 第3章 软件网络静态结构特征分析
  • 3.1 度及度分布
  • 3.1.1 度分布分析
  • 3.1.2 出入度分布分析
  • 3.1.3 出入度分布相关性分析
  • 3.2 层次性分析
  • 3.2.1 簇度相关性分析
  • 3.2.2 介度相关性分析
  • 3.3 效率和连接倾向分析
  • 3.3.1 网络效率
  • 3.3.2 连接倾向
  • 3.4 基于构造特征的系统结构复杂性
  • 3.4.1 影响度及分布
  • 3.4.2 依赖度及分布
  • 3.4.3 系统构造复杂度
  • 3.5 基于软件结构熵的系统结构复杂性
  • 3.5.1 熵理论
  • 3.5.3 软件网络的标准结构熵
  • 3.5.4 用软件结构熵认识软件复杂度
  • 3.6 本章小结
  • 第4章 软件网络的核结构及核数分析
  • 4.1 软件的核结构
  • 4.1.1 k核和核数
  • 4.1.2 软件结构的核
  • 4.1.3 软件核结构的分解
  • 4.1.4 核分解算法
  • 4.2 核数分析对软件工程的新贡献
  • 4.2.1 软件核的统计特性
  • 4.2.2 层级性
  • 4.2.3 中心性
  • 4.2.4 连接倾向
  • 4.2.5 进化趋势
  • 4.3 本章小结
  • 第5章 软件静态结构的BCN测度体系及评价
  • 5.1 度量方法的比较
  • 5.1.1 CK度量套件
  • 5.1.2 MOOD度量方法
  • 5.1.3 软件网络测度模型
  • 5.1.4 各种度量方法对比
  • 5.2 软件结构的测度和二维测度体系
  • 5.2.1 节点类测度
  • 5.2.2 结构测度
  • 5.2.3 二维测度体系结构
  • 5.3 BCN测度体系的评价
  • 5.3.1 类设计的评判准则
  • 5.3.2 软件结构的评价准则
  • 5.4 Wemux水电仿真系统的实证分析
  • 5.4.1 Wemux水电运行仿真系统
  • 5.4.2 Wemux的网络特征分析
  • 5.4.3 BCN测度研究Wemux的节点类
  • 5.4.4 BCN测度研究Wemux的系统结构
  • 5.5 本章小结
  • 第6章 软件系统的进化研究
  • 6.1 软件进化的本质
  • 6.1.1 软件的时间维进化研究
  • 6.1.2 软件网络结构特征量的进化
  • 6.2 软件网络节点度的进化分析
  • 6.2.1 平均节点度的进化
  • 6.2.2 度分布的进化
  • 6.2.3 高度节点的进化
  • 6.3 软件网络介数的进化分析
  • 6.3.1 平均介数的进化
  • 6.3.2 介数分布的进化
  • 6.3.3 高介数节点的进化
  • 6.4 软件网络结构的进化规律
  • 6.4.1 模块特征的进化
  • 6.4.2 层级特征的进化
  • 6.4.3 连接倾向的进化
  • 6.5 本章小结
  • 第7章 软件生态系统中的进化
  • 7.1 软件系统的序
  • 7.1.1 耗散结构
  • 7.1.2 软件结构的耗散结构特征
  • 7.1.3 软件结构有序度的进化
  • 7.2 软件系统的生态特征
  • 7.2.1 软件的代谢
  • 7.2.2 软件的自组织
  • 7.2.3 软件的突变
  • 7.3 软件的进化趋势
  • 7.3.1 进化速率
  • 7.3.2 进化趋势
  • 7.3.3 进化预测
  • 7.4 本章小结
  • 第8章 总结与展望
  • 8.1 工作总结
  • 8.2 软件系统的生态特征主要贡献
  • 8.3 今后的工作
  • 参考文献
  • 致谢
  • 学习期间发表的论文情况
  • 学习期间参与项目情况
  • 相关论文文献

    标签:;  ;  ;  ;  

    复杂网络视域下的大规模软件静态结构度量及进化分析
    下载Doc文档

    猜你喜欢