收藏本站
收藏 | 手机打开
二维码
手机客户端打开本文

代码级横切关注点挖掘方法研究

谌通  
【摘要】:随着软件系统的广泛应用,现代软件工程采用了一种“分而治之”的策略,将系统开发看作是实现核心功能关注点和横切功能关注点分离的过程。研究发现,目前在使用面向对象思想进行软件开发的整个过程中,两种关注点在需求和总体设计阶段还能保持彼此分离的状态,而到了具体实现过程中,面向对象程序设计(Object Oriented Programming,OOP)方法就很难再保持核心关注点与横切关注点的彼此分离状态,致使了代码分散和代码缠结问题的出现,导致了之前的OOP技术不能有效地模块化横切关注,从而严重影响了系统软件中核心功能关注的模块化。这些问题的出现促使了一种能够很自然地描述横切关注点的编程模型——面向方面编程(Aspect Oriented Programming,AOP)模型的出现。面向方面的软件重构技术作为传统重构和面向方面编程两种技术的组合,向原先传统的重构技术提供了更多附加的手段,帮助重组系统软件中与横切关注点相对应的代码,进一步提高关注点模块化,其中方面挖掘不仅是方面重构的先决条件,还是面向方面重构过程中的重要步骤,其最终的挖掘效果将直接影响之后重构的整体过程。横切关注点在程序代码中主要表现形式有两种:代码缠结(tangling)和代码分散(scattering)。因此目前代码级横切关注点挖掘的主要原理都是通过探测程序代码中是否存在这两种表现形式的代码块来进行判断和识别工作。学者们依据这种判断来制定相对应的横切关注点挖掘算法,进而提出具有可行性的横切关注点挖掘方法,最后通过使用大量开源代码项目用例测试挖掘方法的准确性和实用性。但由于代码分散特征的横切关注点主要存在方法级类层次上,表现形式更加明显和容易识别,而代码缠结特征的横切关注点主要存在方法内部,表现形式不够明显,导致目前很多挖掘方法仅基于识别代码分散特征而进行挖掘工作,对潜在的具有代码缠结特征的横切关注点识别能力不强,挖掘效率不高。本文根据系统软件中横切代码的外在特征及核心功能语句与非核心功能语句之间潜在的依赖关系,提出了一种将扇入分析(Fan-In)和改进系统依赖图(Modified System Dependence Graph,M-SDG)相结合的方面挖掘方法FIMS,首先在类层次上以方法之间的调用频率作为横切关注点的外在特征,对现有系统进行扇入分析,得到符合条件的横切方法集,挖掘出存在类层次上的具有分散特征的横切关注点,然后再把这些方法所在类的每个执行过程当作独立个体,构建成方法内程序依赖图整合成的改进的系统依赖图(M-SDG),M-SDG是指通过调用关系关联起来每个执行过程中语句为结点的依赖图,再通过相应的挖掘规则,分离出依赖图中核心功能的结点集,最后挖掘出目标系统潜在的横切关注点集。FIMS方法没有局限于横切代码的外在结构形式和行为特征,而是有层次的由外向内,挖掘粒度从方法级到语句级逐步细化的实现代码级方面挖掘工作,兼顾了横切关注点的代码分散和代码缠结特征,提高了系统中横切关注点的识别能力。在最后通过JHot Draw和HSQLDB两个代码开源项目作为试验用例来对FIMS挖掘方法进行测试和分析,并且通过与其他几种经典挖掘方法进行比较,证明了FIMS方法的可行性和挖掘准确性。


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 冯艳蕾;;AOP技术的研究与探讨[J];科技广场;2007年07期
2 张京军;韩范玉;李慧;;面向方面重构的研究与实现[J];微计算机信息;2007年33期
3 侯著荣;王凯;王聪丽;;AOP在经费预算执行审核系统中的应用[J];计算机应用与软件;2011年07期
4 蒋巍;潘群;;AOP技术的研究与探索[J];福建电脑;2007年06期
5 滕刚;;.NET平台下AOP技术的实现[J];苏州市职业大学学报;2007年03期
6 牛文峰;;面向方面编程的研究[J];电脑知识与技术;2008年24期
7 丁辉;姚庆文;;面向方面编程的研究[J];山东理工大学学报(自然科学版);2005年06期
8 何丽莉;白洪涛;;用聚类分析方法挖掘Aspect[J];计算机集成制造系统;2006年01期
9 曲立平;刘大昕;杨静;;一种改进的基于活动轨迹的Aspect挖掘方法[J];计算机工程与应用;2006年28期
10 蓝红苑;;面向方面的编程方法[J];电脑知识与技术(学术交流);2007年09期
11 曲立平;刘大昕;杨静;;面向方面的自动化重构方法[J];计算机工程;2008年06期
12 卢娟;朱光;张烨飞;张云华;;AOP在HPMIS中的应用[J];浙江理工大学学报;2011年04期
13 郑建华;陈尔晓;;MVCA模式设计及应用研究[J];电脑知识与技术;2012年01期
14 何丽莉;白洪涛;张家晨;;用概念格方法挖掘Aspect[J];计算机科学;2005年11期
15 陈思耀;;Spring AOP技术在J2EE系统构建中的应用[J];内蒙古民族大学学报;2007年02期
16 陈思耀;;Spring技术在J2EE系统构建中的应用[J];韩山师范学院学报;2007年06期
17 张泳;苏健;;AOP在HMIS系统管理中的应用[J];计算机应用与软件;2008年10期
18 孟凡新;刘光远;张京军;;基于AOP和Web Services的SOA应用研究[J];计算机应用与软件;2010年02期
19 俞东进;闫大强;;基于执行模式和扇入分析的横切关注点识别[J];华中科技大学学报(自然科学版);2012年01期
20 朱奇;赵建军;;基于XML的切入点描述机制[J];计算机应用与软件;2008年11期
中国重要会议论文全文数据库 前3条
1 何思平;方美琪;;Spring AOP技术在电子商务中的应用[A];IT服务促进企业信息化——第十一届中国Java技术及应用交流大会文集[C];2008年
2 张新猛;李红勋;;面向方面设计模型的研究[A];天津市电视技术研究会2013年年会论文集[C];2013年
3 王鑫;邢薇;;面向切面编程(AOP)在J2EE公共问题中应用[A];黑龙江省计算机学会2007年学术交流年会论文集[C];2007年
中国硕士学位论文全文数据库 前10条
1 王阳;横切关注点的逆向探测与封装[D];吉林大学;2004年
2 谌通;代码级横切关注点挖掘方法研究[D];武汉工程大学;2015年
3 叶水琴;基于目标模型的横切关注点识别方法研究[D];武汉工程大学;2015年
4 涂成茂;面向方面软件的需求建模方法研究[D];武汉工程大学;2012年
5 黄雷;面向方面技术在UP中的应用[D];同济大学;2008年
6 张婷燕;基于AOP的轻量级框架的应用研究[D];大连交通大学;2008年
7 韩范玉;面向方面重构的研究[D];河北工程大学;2008年
8 申立军;基于AOP的MVC模式研究与应用[D];大连海事大学;2008年
9 魏巍;面向方面编程方法的研究与应用[D];沈阳工业大学;2005年
10 张逸;AOP技术研究及其在.Net中的实现[D];四川大学;2005年
中国重要报纸全文数据库 前1条
1 本报记者 侯闯;AOP弥补OOP缺陷[N];计算机世界;2003年
中国知网广告投放
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978