软件分形复杂度

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