论文部分内容阅读
面向Aspect编程很好的解决了面向对象程序中的横切关注点问题,提高了程序的模块性。近年来,面向Aspect编程逐渐从研究领域的“刀锋”技术走向主流技术应用,这带来了怎样处理大量的面向对象遗留系统问题,即使得现存的采用面向对象技术构建的遗留系统怎样享受新技术变革带来的好处呢?在面向对象研究领域中,采用了面向对象重构技术来逐步提高程序的模块性,完成遗留系统向面向对象系统迁移。然而,重构是一个很复杂的过程,即使在面向对象领域里,到目前为止仍没有一种完全的自动化重构工具来支持重构。重构仍然是一个手工操作过程,它很容易导致错误,因此还需要额外的精力进行改错。
对于不成熟的面向Aspect重构,由于缺乏理论和实践的支持,在从面向对象系统到面向Aspect系统的重构过程中,开发人员无疑会碰到的很多问题,然而这些问题并没有得到一个很好的解释。在进行面向Aspect重构分析时,需要进行关注点分离,在把分离后的Aspect整合到最终系统时,一个有趣的问题就产生了:在整合多个Aspect时(Aspect Interaction),Aspect交互是否产生新的错误?在本文的研究中,选取了Aspect交互(Aspect Interaction)这个角度来研究面向Aspect重构,并讨论Aspect交互对面向Aspect重构的影响。为了对问题进行简化,选取了最简单的2个Aspect交互情况进行研究。
本文从实验软件工程的角度着手,结合GQM模型,通过开展一些可控制实验——对一些Sudoku项目进行面向Aspect重构来研究面向Aspect重构过程,并收集在实验过程中产生的数据,并对这些数据进行分析,来解答Aspect交互对面向Aspect重构产生的影响。