软件分形复杂度

来源 :北京邮电大学 | 被引量 : 3次 | 上传用户:liaonianyou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近些年来,新兴的分形几何学在不断地发展,并且在一些研究领域中得到了广泛的应用,如计算机、地理、交通等等。分形几何的最基本特征是自相似性,即每个局部按照一定的比例放大后和整体相同,同时整体按一定比例缩小后又和局部是相同的。对于一段分为若干个模块的计算机程序,每个模块又可能被分为若干个更小的模块。由于每个模块放大后都是一段程序,因此,整个软件体在某种程度上具有一定的自相似性,可以将分形的理论应用到软件复杂度的研究当中。本文结合分形的本质及程序结构的特征,将分形理论应用到软件复杂度的研究当中,并结合实例说明软件分形复杂度的意义。主要工作如下:1.结合分形及程序的结构特征,给出盒子及盒图的定义,进而经过严格的数学推导提出软件分形复杂度的定义,给出算法思想和计算方法,并通过实例说明被测程序具有分形特征------标度不变性。2.根据软件分形复杂度的定义,设计并实现了一个能够度量程序分形复杂度的仿真工具,并编写了大量的测试用例以确保系统的正确性。3.对大量开源程序的分形复杂度进行计算,通过进一步的分析表明所得数值在某种情况下可以反映出程序在结构上的复杂程度,其度量结果是比较有效的,同时在某种程度上对传统软件复杂度度量法做出了一定的改进。4.对Linux内核中核心部分、内存管理部分、文件管理部分,Wireshark中的wIretap模块,以及《Windows程序设计(第五版)》中的经典源码进行了分形复杂度分析,根据计算统计结果说明各部分代码复杂性的高低。同时还发现了一类并不具有明显分形特征的代码段,它们具有相似的结构特征。5.对学生作业进行了分形复杂度分析,发现他们的编码风格不同,程序复杂性也各不相同。分形复杂度偏高,一是由于程序逻辑结构过于复杂,分支过多,造成可读性的下降;二是频繁出现函数调用会造成系统的开销。可以通过对编码风格的改进降低程序的复杂性。
其他文献
在现代社会,网络是信息的重要来源,而搜索引擎是网络资源的主要入口。能否快速准确地获取所需信息很大程度上取决于搜索引擎性能的优劣。目前的搜索引擎大多基于布尔模型、向量
为提高软件测试的效率,解决软件测试中由于测试人员技能、经验不足以及企业资源不足而导致测试效率低下的问题,本文设计了可复用测试用例库。该用例库收集了各个领域的测试用
Linux操作系统以其独有的开放性、稳定性、高效率等特点,得到了越来越广泛的应用。IT产业巨头纷纷表示支持Linux系统,使Linux正在迅速扩展其应用市场。无论是传统的Redhat、F
步态是指人走路的样子,心理学实验以及解剖学理论表明其具有一定的人人相异性,可以用来进行身份识别。同时,步态具有可远距离获取、易于采集,非接触性、难于隐藏或伪装等特点
随着网络融合的推进,用户需要一个智能的服务环境来动态聚合不同网络的能力。语义Web服务是基于本体的新一代Web服务技术,其开放和标准的服务接口是提供异构网络能力的一种新