首页> 外文OA文献 >Slicing of Aspect-Oriented Software and Its Application to Software Refactoring
【2h】

Slicing of Aspect-Oriented Software and Its Application to Software Refactoring

机译:面向方面的软件切片及其在软件重构中的应用

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

This thesis first presents some program slicing techniques for Aspect-Oriented Programs (AOPs) and then presents a technique for refactoring of software using the proposed slicing technique. Main aim of all the proposed slicing algorithms in this thesis is to compute accurate and precise dynamic slices of AOPs. In order to compute the slices of aspect-oriented programs, first we extend the System Dependence Graph (SDG) for Object-Oriented Programs (OOPs) to handle AOPs. We have named the extended SDG Extended Aspect-Oriented System Dependence Graph (EAOSDG). The EAOSDG successfully represents different aspect- oriented features such as class representation, method invocation, inheritance, aspect declaration, point-cuts, advices etc. The EAOSDG of an aspect-oriented program consists of System Dependence Graph (SDG) for the non-aspect code, a group of Aspect-Oriented Dependence Graphs (ADGs) for aspect code and some additional dependence edges that are used to connect the SDG of the non-aspect code (base code) to ADG of the aspect code. Then, we propose an extended two-phase algorithm to compute the static slices of AOPs, using the proposed EAOSDG. Subsequently, we present a context-sensitive slicing algorithm to compute the dynamic slices of AOPs, using the proposed EAOSDG. The context-sensitivity makes the computed slice more precise and accurate. We have developed a slicer to implement our proposed algorithms. We have compared the performance of extended two-phase algorithm and context-sensitive algorithm, in terms of the average slice extraction time. We have considered five open source projects for comparison of slicing algorithms. We have observed that the context-sensitive algorithm computes the slices faster than the extended-two phase algorithm. Next, we extends our intermediate representation (EAOSDG) to be able to represent concurrent aspect-oriented programs. We have named this intermediate representation Multithreaded Aspect-Oriented Dependence Graph (MAODG). Our MAODG correcly represents the concurrency dependencies in concurrent AOPs. Then, we extend our context-sensitive dynamic slicing technique to handle concurrent AOPs having multiple threads. We have named our algorithm Context-Sensitive Concurrent Aspect (CSCA) slicing algorithm. Due to the presence of inter-thread synchronization and communication dependencies, some control and data flows in the threads become interdependent. This interdependency causes difficulty in finding accurate slices of concurrent AOPs. Our algorithm takes the MAODG of the concurrent AOP and a slicing criterion as input and vii computes the dynamic slice for the given concurrent AOP. We have developed a slicer Concurrent AspectJ slicer to implement our proposed CSCA algorithm. We have compared CSCA algorithm with two other existing algorithms using five case studies. The experiment shows that, our proposed CSCA algorithm computes precise slices in less time as compared to the other two existing algorithms. Further, we propose an approach for dynamic slicing of distributed AOPs. We first represent distributed aspect-oriented program using dependence based intermediate representation which we have named Distributed Aspect Dependence Graph (DADG). Based on the DADG, we present a slicing algorithm Parallel Context-sensitive Dynamic Slicing (PCDS) algorithm for distributed AOPs. We introduce parallelism in our algorithm to make slice computation faster. We have developed a tool called D-AspectJ slicer to implement the PCDS algorithm. The proposed slicing algorithm is compared with two other existing algorithms using seven case studies. The experimentation shows that our proposed PCDS algorithm generates smaller slices in less time as compared to the other two existing algorithms. Finally, we present a technique for software refactoring using program slicing. We use slice-based cohesion metrics to identify the target methods of a software that require refactoring. After identifying the target methods, we use program slicing to divide the target method into two parts. Then, we use the concept of aspects to alter the code structure in a manner that does not change the external behavior of the original module. We have implemented our proposed refactoring technique and evaluated its effectiveness through eleven case studies. We have also evaluated the effect of our proposed refactoring technique based on an open source code coverage tool EclEmma
机译:本文首先介绍了面向方面的程序(AOP)的一些程序切片技术,然后提出了一种使用所提出的切片技术进行软件重构的技术。本文提出的所有切片算法的主要目的是计算精确而精确的AOP动态切片。为了计算面向方面的程序的片段,首先我们扩展面向对象程序(OOP)的系统依赖图(SDG)以处理AOP。我们将扩展SDG命名为扩展的面向方面的系统依赖图(EAOSDG)。 EAOSDG成功地表示了不同的面向方面的功能,例如类表示,方法调用,继承,方面声明,切入点,建议等。面向方面的程序的EAOSDG包括针对非方面的系统依赖图(SDG)。代码,一组用于方面代码的面向方面的依赖图(ADG)和一些其他依赖边,这些依赖关系用于将非方面代码(基本代码)的SDG连接到方面代码的ADG。然后,我们提出了一种扩展的两阶段算法,使用提出的EAOSDG计算AOP的静态切片。随后,我们提出了一种上下文敏感的切片算法,使用提出的EAOSDG计算AOP的动态切片。上下文敏感度使计算的切片更加精确。我们已经开发了切片器来实现我们提出的算法。在平均切片提取时间方面,我们比较了扩展两阶段算法和上下文相关算法的性能。我们已经考虑了五个开源项目,用于切片算法的比较。我们已经观察到,上下文敏感算法比扩展两阶段算法更快地计算切片。接下来,我们扩展中间表示(EAOSDG),使其能够表示并发的面向方面的程序。我们已将此中间表示命名为多线程面向方面的依赖图(MAODG)。我们的MAODG正确地表示并发AOP中的并发依赖关系。然后,我们扩展了上下文相关的动态切片技术,以处理具有多个线程的并发AOP。我们将算法命名为上下文敏感并行方面(CSCA)切片算法。由于存在线程间同步和通信依存关系,因此线程中的某些控制流和数据流变得相互依存。这种相互依赖性导致难以找到并发AOP的准确切片。我们的算法将并发AOP的MAODG和切片标准作为输入,并且vii为给定的并发AOP计算动态切片。我们已经开发了切片器Concurrent AspectJ切片器,以实现我们提出的CSCA算法。我们使用五个案例研究将CSCA算法与其他两个现有算法进行了比较。实验表明,与其他两种现有算法相比,我们提出的CSCA算法可以在更短的时间内计算出精确的切片。此外,我们提出了一种动态切片分布式AOP的方法。我们首先使用基于依赖的中间表示来表示面向分布式方面的程序,我们将其称为分布式方面依赖图(DADG)。基于DADG,我们提出了一种用于分布式AOP的并行上下文敏感动态切片(PCDS)算法。我们在算法中引入了并行性,以加快切片计算。我们已经开发了一种称为D-AspectJ Slicer的工具来实现PCDS算法。使用七个案例研究,将提出的切片算法与其他两个现有算法进行了比较。实验表明,与其他两种现有算法相比,我们提出的PCDS算法可在更短的时间内生成更小的切片。最后,我们提出一种使用程序切片的软件重构技术。我们使用基于切片的内聚度指标来识别需要重构的软件目标方法。确定目标方法后,我们使用程序切片将目标方法分为两部分。然后,我们使用方面的概念以不改变原始模块外部行为的方式更改代码结构。我们已经实施了我们提出的重构技术,并通过11个案例研究评估了其有效性。我们还基于开源代码覆盖工具EclEmma评估了我们提出的重构技术的效果

著录项

  • 作者

    Singh Jagannath;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号