横切关注点的逆向探测与封装

来源 :吉林大学 | 被引量 : 0次 | 上传用户:m6300
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
面向对象技术在模块化一般的应用逻辑上做得很好,但无法封装象日志,安全,内存管理,异常处理等这样的系统级的关注点。这些关注点经常横切系统的核心应用逻辑(core logic),形成了常见的“代码交织”(code tangling)和“代码散布”(code scattering)现象,使得已存在的遗产代码难于维护,难于理解。模块化是降低软件复杂性的手段之一。面向方面的编程技术解决了横切关注点的模块化问题,它提供了一个叫做方面(aspect)的程序结构,将横切关注点封装在一个独立的模块里。面向方面的编程技术仅仅提供了横切关注点的封装机制,不涉及关注点的识别。近年来,如何从系统中识别横切关注点成为人们研究的热点。目前,已经存在一些关注点识别技术。有基于字符的分析技术、基于类型的分析技术、基于签名的分析技术以及动态分析技术等,每种技术都是依据关注点在系统中的某种表现特征来识别的。没有一种方法能够识别得很准确,因此可以组合使用多种方法。本文认为横切关注点在系统不同的地方具有相似甚至是相同的代码,在多个横切处体现出类似的行为,并根据这一特征在系统中搜索横切关注点。首先在分析源码的时候,我们假定程序语句仅仅有函数调用一种形式,并针对整个源码系统创建了我们定义的函数调用树。基于函数调用树,查找所有重复出现的函数调用组合,组合方式不仅包括多个函数的顺序调用,也包括使用分支/循环语句所进行的组合。这种方法识别到的关注点仅仅是函数调用级别的,源码中还存在着其他形式的关注点。本文对我们的方法不能识别的几种典型的系统级关注点专门作了分析,有的还给出了特定的识别方法。同其它的关注点识别技术相比,本文的方法在某些方面有优势。Hannemann和Kiczales[12]开发的方面挖掘工具AMT需要用户提供查询关键字,然后做文本匹配,这依赖于源码的编程风格。AMT仅能搜索到跟查<WP=47>询关键字对应的那种关注点的代码,本文的工具不需要用户指定信息,会列出全部可能的关注点。AMT还提供了图形化的交互方式。这个是本文的工具所不具备的,当前,我们仅仅把搜索到的关注点相关的代码写到磁盘文件中,对于用户来说,这是很不方便的。本文的方法同S. Breu 和 J. Krinke使用的动态程序分析技术[18]有一些相同的地方,都针对系统中的函数之间的关系,不考虑系统中的其他类型的语句。不过他们考虑两个函数在运行时的关系,定义了四种类型的关系,从程序的动态执行中观察某个特定关系是否重复出现;而本文的方法则是考虑函数之间的静态组合方式,定义了三种组合方式。针对源码做静态分析,搜索这种组合方式的重复。最后,为了验证本文方法的可行性,我们设计并实现了一个关注点识别工具。针对Java遗产系统进行分析,由于方法本身的因素,要求处理的系统必须是完整的项目。
其他文献
协议是设备在互相通信时双方都必须遵守的准则,设备中的协议实现都是由协议开发人员根据标准的协议规范文本进行开发实现的,不同的人员或者厂商的实现方式可能不同,协议一致
随着移动互联网和企业信息化的迅速发展,出现了越来越多以文本形式存储的数据,如何从这些数据中获得有价值的信息成为了计算机科学与技术领域的一个挑战。文本挖掘概念的提出
随着互联网的普及和图像应用范围的不断扩大以及数字图像和视频数据的海量性,使人们一直热衷于数字编码技术的研究,经过了几十年的发展过程,以三大经典编码算法为基础的第一代编
本文着重讨论数据仓库技术,包括数据仓库的发展过程,组成部分、体系结构、关键技术和实施方法.并且结合实际工作情况,利用数据仓库技术在银行企业进行了应用,并在〈信贷风险
近年来,嵌入式系统及其相关技术得到了快速发展,嵌入式系统因具有体积小、专用性强、可行性高等特点而得到了广泛应用,嵌入式系统的智能化也成为时代的需求.该文介绍了基于知
RFID技术是一种阅读器和标签之间双向数据传输的技术,利用无线电信号对物品进行识别和交换数据。它具有非接触、读取距离长、读取速度快、适于恶劣环境等优点,因此,RFID应用
随着人们对移动性、便携性需求的增加,以快捷高效,组网灵活为优势的无线网络技术逐渐发展起来.无线网络为用户提供了在任何时间、任意地点进行通信和信息获取,并在移动中保持
安全存储系统为存储的数据提供保密性和完整性,防止对数据进行未经授权的访问和修改,同时也为授权用户提供了便捷的文件共享机制,它在电子商务、电子政务、公共远程存储等领
六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明
随着电子技术和通信技术的发展,自动抄表系统得以广泛应用,各类相关产品层出不穷,人们对新产品也提出更高的要求。 目前的自动抄表系统一般分为两层结构:上层(管理中心与集中