面向对象程序切片技术及其在软件度量中的应用

来源 :山东大学 | 被引量 : 0次 | 上传用户:qweaz1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件产业的发展,遗产软件日益增多,软件再工程已经成为一个重要的研究领域。系统理解是软件再工程的基础,可以弄清一个程序“做什么”以及“如何做”,目前存在着许多正在使用和发展中的理解方法。 程序切片针对源程序中某个关注点把程序减少到只包含与该关注点相关的那些语句,准确地回答了哪些程序语句影响了关注点这样一个问题。程序切片可以应用于系统理解、软件度量等诸多方面。 本文首先立足于各种理解方法的本质、异同和适用场合来对这些方法进行归类研究,没有对系统理解的已有理论进行赘述,而是在阐明方法思想的基础上,强调了方法间的比较、不足之处、改进的建议和继续研究的方向,这对方法间的借鉴和多种方法的综合运用很有意义。 接下来,本文重点研究了面向对象程序切片技术。在分析现有面向对象程序切片技术存在的问题基础之上,提出了把波动效应分析和系统依赖图结合起来对面向对象程序进行切片的方法。通过波动效应分析反映面向对象程序中单元间的波动关系,基于系统依赖图切片侧重于分析控制依赖和数据依赖。分析了面向对象程序中的波动效应,把类、实例、成员方法和成员变量作为研究对象,扩展了切片粗粒度的含义,并且把波动结果映射到切片中。通过构造类图和改造传统系统依赖图构造了适合系统理解和软件度量的描述面向对象程序的系统依赖图。这样对一个面向对象程序切片,首先通过波动效应分析确定关注点波动到的范围,并把波动结果映射到切片中,然后在这个小范围内,构造系统依赖图并切片,最后取两种切片的并集为最后的切片。文中分别给出了波动效应分析、构造系统依赖图以及切片的算法实现,并进行了复杂度分析。 最后在实现面向对象程序切片方法的基础上,把程序切片和软件度量结合起来,提出了应用本文程序切片方法进行模块耦合性和类内聚性度量的方法。
其他文献
协同进化算法是在近十几年来在协同进化论基础上发展起来的一类新的进化算法。协同进化算法与传统进化算法的区别在于:协同进化算法在进化算法的基础上,考虑了种群与种群之间
英语作文是大规模英语考试中的一种必备题型,无论是在我国的高考、研究生考试还是在国外的 TOEFL、GRE、IELTS中,英语作文都是检测英语学习者语言综合运用能力的一项重要指标
随着网络技术的飞速发展,新型网络应用的不断涌现以及网络带宽不断提高,网络数据呈现出快速增长的趋势,对网络数据处理技术提出了越来越高的要求。基于软件的网络数据处理技
第三代P2P系统大多数都提供了一种DHT算法,它将网络中的资源随机地分布在参与网络的各个节点上。在某种情况下,某些节点分配到的资源是平均水平的O(10gN)倍。而且,在标识符空间
“基于XML远程教育资源描述与管理系统的研究与实现”论文是结合科技部十五重大科技攻关项目:“网络教育关键技术及示范工程”的“非实时教学系统”课题进行的。论文旨在研究
网络可靠性评估是无线传感器网络(Wireless Sensor Networks, WSN)设计和优化的核心步骤,但现有的WSN可靠度求解模型没有考虑WSN在通信时延、不完全覆盖(ImPerfect Coverage,
随着计算机技术与信息技术的快速发展,非线性动力学方法在生物医学信号分析领域的应用越来越广泛。然而,准确的分析、鉴别脑电信号并非易事,通常需要专家们记录连续几天的脑
介质损耗因数是反映电力电容器、电容型套管、电容型电流互感器、电容式电压互感器等电力网络中高电压电气设备绝缘性能的一项重要指标,通过测量介质损耗角可以监测出绝缘介质
随着Internet/Intranet的快速发展,部门之间需要协同合作,如何共享这些异构数据源的数据成为很至关重要的问题。同时异构数据库的存在给实现不同信息系统间数据的访问操作带
现代故障诊断系统是一个动态的、分布的、柔性的和不确定的复杂系统。多Agent能够利用并行分布式处理技术和模块化设计思想,把复杂系统划分成相对独立的Agent子系统,通过Agen