面向方面程序中的影响分析及应用

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:wenxiaoyao1214
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在软件开发过程中,变化影响分析是一项非常重要的技术。这项技术可以用于分析得到一个阶段中代码的改变(增加新代码,删除旧代码,修改源代码)对整个程序所产生的影响,并且将这种影响有效地返回给程序员,使程序员在后续的工作中能够做出正确的决定。目前,已经存在很多方法来实现基于面向过程和面向对象程序的变化影响分析,却很少涉及到面向方面编程的领域。本文以面向方面编程语言为目标,提出了一种新的变化影响分析技术。该技术的核心在于归纳定义一系列原子变化,并用这些原子变化完全捕捉两个程序版本间的语义不同。本文同时也提出了一种新的变化影响分析模型,该模型基于静态的面向方面程序的系统调用图,用于找出被影响的程序代码片段、回归测试用例及影响它们(回归测试用例)的源代码修改部分。基于所提出的模型,本文讨论了变化影响分析技术的三种典型应用:1.软件自动化调试。本文提出一种新的程序自动化调试方法。该方法将程序的原子变化作用于增量调试算法,用来缩小寻找那些导致错误的代码变化范围。我们首先使用变化影响分析找出一个导致测试用例运行失败的原子变化集合,然后将这个集合中的原子变化用本文所提出的启发式算法排序,最后运用增量调试算法找出一个能够导致错误的最小子集。本文对原始的增量调试算法进行了改进,使之运用于程序代码的多个层次:从粗粒度的方法层到细粒度的语句层。并且我们的算法所生成的大部分程序中间版本均合乎语法规则,因此减少了由于输入不一致导致的不必要的重复测试。2.系统调用图的增量式构建。软件系统的调用图被广泛地应用在软件测试、程序理解,以及编译器优化等任务中。在软件系统的演化过程中,系统调用图需要在保持精度不变的前提下,随着软件的修改而得到及时地更新。然而如果对每一次的程序修改来重新构建系统调用图将会带来昂贵的分析代价。为了降低软件演化过程中系统调用图的更新成本,本文提出了一种基于变化影响分析的增量式系统调用图构建技术,用于显著减少更新所需要的时间和空间代价。3.软件变化度量指标的评估。目前的软件度量研究主要集中在衡量系统的复杂性上,很少有研究者提出用于衡量软件变化影响程度的度量指标。为此,本文基于变化影响分析模型提出了面向方面软件中变化度量的概念。该度量能够定量地反映软件变化给整个系统所造成的影响程度,并为程序员提供有价值的反馈信息。基于所提出的技术,本文实现了一个面向方面程序的变化影响分析框架Celadon。在Celadon框架中,我们集成了面向方面程序的自动化调试技术、系统调用图增量式构建技术以及变化度量评估技术。本文使用了24组8对基准AspectJ测试程序对工具进行了实验评估。评估结果显示Celadon不仅能够有效地对AspectJ程序进行变化影响分析,并且能够大幅度提高原有的增量式调试技术和系统调用图构建的效率;同时程序变化度量指标的定量评估也给程序员提供了有价值的反馈信息。
其他文献
随着社会经济的快速发展和科技水平的不断提高,社会治安形势愈加严峻,GPS监控定位技术已被应用于公安辅助决策系统中,作为技术防范、巡防体系及应急处置的重要手段。本论文基于
无线传感器网络是具有监测、控制和无线通信等功能的综合网络系统,通过将大量传感器节点随机部署在需要监测的区域内,由各节点间自组织构成网络。一般来说,传感器节点一旦部
在军事应用和工业控制等领域,不同环境下的计算机系统可能会安装着支持不同标准的、不同特点和不同性能要求的现场总线设备。与此同时,虽然制定有现场总线的国际标准,但是由
故障诊断是一门新兴的交叉工程学科,为工业企业的成功应用带来了巨大社会和经济效益,使得设备故障诊断技术从理论研究到实际应用都有迅速的发展。特别是嵌入式技术的飞速发展及
由传感器、微机电系统和网络三大技术融合而形成的无线传感器网络是一种全新的信息获取和处理技术。而无线传感器网络是计算机科学和技术的一个新的研究领域,由于其广阔的应
本文介绍了井下机车调度系统的的发展现状、发展趋势。介绍了建模工具Petri网的来源以及特点,同时对Petri网的理论进行了系统的介绍。由于矿井机车运输监控系统是典型的离散事
计算网格系统实现了不同地理分布的异构资源的共享、选择和聚合,以解决在科研、工程、经济学等领域大规模的计算问题。网格资源的异构性和地理分布性使得在大规模分布环境中的
随着互联网技术的发展和应用软件的成熟,将软件作为一种服务形式提供给客户的需求逐渐增加,对新型软件交付技术的研究已经成为当下的趋势,而SaaS(Software as a Service)这个
自Web创始人Tim Bemers-Lee提出Semantic Web(语义网)的架构以来,本体(Ontology)作为计算机理解信息的智能化基础,成为了近年来的研究重点。然而,由于时间,地点,构造目的以及
随着科学的发展和计算机的普及,人们对与计算机的交流方式提出了更高的要求,这促进了语音识别技术的发展,并使之成为语音处理领域中的一个重要研究方向。目前,在实验室环境下,语音