一、面向方面编程(AOP)介绍(论文文献综述)
黄文豪[1](2016)在《面向方面程序设计(AOP)在Web程序中的应用研究》文中研究指明JavaScript是一种在Web程序应用中得到了广泛应用的面向对象的语言。而随着Web技术的高速发展,JavaScript程序的规模也越来越大。许多功能相同的代码分散在Java Script程序的各个不同模块中,使得程序的复杂度越来越高,导致后期的开发和维护代价提高。面向方面程序设计是针对该问题的一种可行的办法:将这些功能相同的代码标记为横切关注点,并封装为方面进行统一管理。利用Java Script的语言特性,能够实现面向方面的JavaScript编程。目前,一些相关研究已经取得了一定成果,但是这些研究成果也存在不足的地方,例如缺少方面定义、无法给方面声明执行后加载的连接点织入方面。本文给出了目前几种面向方面的Java Script编程的实现的比较。首先分析了几种研究成果实现面向方面编程的原理,并介绍了这几种研究成果的方面织入过程。然后,给出了评判指标,分别是入侵性、一致性、方面定义、编织方式和编程语言。最后,从这五个方面对几种研究成果进行对比介绍。针对目前相关研究成果的缺点和不足,本文提出了一种基于JavaScript多线程环境实时动态织入方面的方法。该方法由三个主要部分组成:方面对象,方面编织器和Java Script多线程执行环境。通过调用方面对象中的通知类型方法,完成方面的声明,在多线程环境中对连接点目标方法的加载进行监控,在其加载之后立刻执行方面编织器,最终解决了无法给方面声明执行后加载的连接点织入方面的问题。通过实验验证该方法的有效性,并给出了数据比较。
卢佳伟[2](2016)在《AspectJ在Java单元测试中的应用研究》文中研究说明单元测试是集成测试与系统测试的基础,是测试驱动开发与软件重构的基石。随着测试驱动开发方法的流行,单元测试愈发重要。本文主要研究Java程序的单元测试。通过对单元测试理论及工具的研究,发现当前的Java单元测试还存在一些问题,这些问题主要包括:当前测试框架不能自动地选择测试用例,不能自动地添加运行测试用例。当需要频繁、有选择性地运行大量测试时,手动方式十分繁琐;测试中使用的模拟框架具有不能模拟final类等局限性,并且实现模拟功能的代码与测试的代码混合在测试方法中,不仅影响测试方法的可读性,而且不利于模拟对象的复用;当前测试框架没有为测试方法的复用提供有效的支持;针对以上问题,将单元测试与面向方面编程结合,研究AspectJ(一种面向方面框架)在Java单元测试中的应用,取得成果主要包括:1)扫描整个项目自动添加测试用例到测试套件,框架自动运行套件中的测试用例。在添加过程中利用AspectJ的横切功能横切添加用例的方法,使得只添加在切点中描述的测试用例,实现测试用例自动地选择、自动地添加运行。2)利用AspectJ切点捕获被测方法对外部的依赖,在切面中改写依赖方法,隔离依赖,并设计了隔离依赖的切面模型。在切面中设置预期的方法调用,被测方法运行时用切点捕获实际的方法调用,在切面中验证两者是否一致,实现交互测试,并设计了实现交互测试的切面模型。3)设计了两种复用测试方法的模式:参数化测试与接口测试方法复用。利用AspectJ切点捕获测试方法中被测方法的调用,在切面中用多组测试数据循环调用被测方法,记录每组的运行结果。捕获测试方法中断言方法的调用,复用断言方法断言每组数据的运行结果,实现参数化测试。利用AspectJ的静态横切功能,让各实现类的测试类复用切面中实现的接口中方法的测试方法,实现接口测试方法复用。为了方便设计的方法在实际单元测试中的使用,设计并实现了一个基于JUnit的单元测试框架Test WAJ(Test with AspectJ)。最后,运用Test WAJ进行单元测试,验证了本文提出的解决方法是可行的。本文实现测试用例的自动选择,自动添加运行,提高了Java单元测试自动化水平。设计的两种复用测试方法的模式,增强了测试方法的复用性,减少了测试成本。用AspectJ实现的模拟框架,比传统模拟框架功能更强,复用性、灵活性更高。
谢朋宇,李林峰[3](2013)在《Java面向方面程序设计概述》文中研究说明在计算机系统应用越来越广泛的今天,应用软件的规模不断扩大,复杂度不断提高,过程化程序设计、面向对象程序设计等传统的软件开发方法已渐渐不能适应这种变化。于是,一种新的程序开发方法:面向方面的编程(AOP:Aspect Oriented Programming)研究引起了国内外广泛关注。阐述了AOP产生的背景,介绍了Java程序设计相关的AOP主要框架及其应用实例。
薛冰[4](2013)在《改进AOP技术在软件开发中的应用与研究》文中研究表明AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。本质上它是一种编程思想是一种方法论,对他的改进其实是针对的AOP在实际应用中编程方法的改进,它弥补了OOP的不足,是OOP基础上的一种延伸。AOP本身是一种先进的编程思想,它的出现解决了在OOP编程困扰我们的核心关注点分离的问题,使用它可以很好的将基础程序与横切关注点程序分离,对它的改进实质上是对它的编程方法中细节的改进,虽然AOP技术的出现可以解决OOP技术所产生的核心关注点分离问题等,但是它同样存在着一些不足,例如结构冲突问题,连接点丢失问题,连接点错配问题等,所以我们要针对这些不足来不断的研究改进,才能让AOP技术更加安全高效的完成软件开发。本文在参考借鉴国内外相关研究的基础上,重点研究怎样解决基于AOP的软件开发时,产生的系统结构冲突,连接点碰撞,错误匹配或丢失等一系列问题,通过对这些缺陷问题的研究,提出了一种新的连接点管理机制应用在AOP编程的开发阶段,并将已经提出的反射AOP框架与连接点管理机制结合融入到AOP编程方法中,还将研究的成果实际应用在一个公司培训系统中。本文主要要完成的工作如下:首先,本文将对AOP技术近年来的发展进行分析研究,介绍AOP技术的发展背景和最新的国内外的研究状况,简单介绍AOP技术中的重要概念,AOP面向方面编程的编程方法的基本步骤,别提出AOP技术中存在的不足。其次,介绍AOP的最新研究成果,针对AOP产生的结构冲突问题提出的反射机制,及面向方面编程的研究。接着,分析AOP技术在系统开发中的不足,提出一种新的连接点管理机制,介绍连接点管理机制的原理,并以Spring AOP的连接点定义机制为例进行了可行性的阐述。然后结合反射机制的研究,把反射机制与连接点管理机制融入到面向方面编程方法(AOSD)中,并介绍具体改进的步骤。最后将本文中提出的连接点管理机制与反射机制的研究应用到一个某公司的培训管理系统中,通过在实践中的应用检验这种改进的面向方面编程方法。
王书怀,邢建春,李决龙,杨启亮,周磊[5](2012)在《AOP技术在管理信息系统中的应用研究》文中进行了进一步梳理当前管理信息系统(MIS)日趋复杂和庞大,对于实现不同需求的软件,代码缠绕和代码散乱等问题较为突出,为系统的开发和维护带来了很大困难。以关注点分离为核心思想的面向方面编程技术(AOP)能较好地解决上述问题,正在逐步应用到MIS领域。介绍AOP技术的基础知识,讨论AOP在MIS中应用面临的挑战,分析和比较面向MIS的AOP开发工具的优缺点和应用范围,总结并给出AOP技术在MIS中的主要应用领域及相关研究工作,最后探讨了其发展与研究方向。
张献[6](2012)在《基于AOP的软件运行时验证关键技术研究》文中研究指明随着信息社会的发展,计算机软件已渗透到日常生活的各个方面,提高计算机软件的可靠性和安全性,以保证其按照人们期望运行的要求变得十分迫切。现有的软件质量保障技术主要包括软件测试、程序分析、模型检测等,但这些技术无法保证最终部署在实际系统上的程序运行时是无错误的。运行时验证(RuntimeVerification)是一种新兴的轻量级验证技术,它把形式化验证技术和系统的实际运行结合起来,监控系统的实际运行,以保证系统的运行与系统关键性质相一致。在运行时验证中,监控器持续监控程序的运行,以判断程序的当前运行轨迹是否满足或违背监控性质。基于面向方面编程技术(Aspect-Oriented Programming,AOP)的软件运行时验证把针对软件的运行时验证当做一个横切关注点来对待,提高了被监控软件系统的模块化程度。由于AOP技术能够把软件运行时验证关注点模块化,同时AOP语言中接入点模型很直观的对应于软件运行时验证中监控事件,基于AOP的软件运行时验证技术在研究界和工业界得到了广泛应用,当前主流的运行时验证框架,如Tracematches,JavaMOP都是基于AOP语言的。随着被监控软件规模增大、并处于不断演化之中,同时运行时验证技术的应用范围在扩展,用户对运行时验证技术检测出问题的时效性也在增强,由于基于AOP的监控器以一种obliviousness方式注入到被监控程序中去,还往往可以对被监控程序进行任意调整,这些都给用户清晰、正确地使用基于AOP的运行时验证技术带来挑战。本文以帮助用户正确、高效使用基于AOP的软件运行时验证技术为目标,提出了一系列语言、方法和技术,帮助用户正确地指定其要监控的性质以及检查针对某一具体程序生成的监控器是否准确反应了用户的监控期望。本文的主要研究贡献包括:1.针对当前基于AOP运行时验证框架提供的事件序列语言不加区分的使用AspectJ中切面语法和不能根据事件间数据流关系选择事件序列的问题,提出了一种运用于软件运行时验证的事件序列选择语言。该事件序列选择语言通过一个受限的切面语法选择单个事件,并有着清晰的层次结构:低层操作符完全通过事件发生的局部环境选择单个事件;高层的操作符利用事件间的控制流和数据流关系选择事件序列。同时,该事件序列语言支持数据流声明,与目前主流的运行时验证框架提供的事件序列选择语言相比,该语言能够表达更细粒度的事件序列。2.针对现行运行时验证中监控事件逐个到达的假设和用户期望更早发现被监控程序的运行是否违背监控性质间的矛盾,提出了面向于运行时验证领域的预测语义。当前的软件运行时验证技术大多都基于监控事件逐个依次到达的假设,这使得监控器只能在故障发生时才能对程序进行调整。如果结合对被监控程序进行静态分析,尽可能多地找出被监控程序运行过程中会产生的监控事件串(序列),这样可以使监控器更早地发现被监控程序的当前运行能否满足或违背监控性质,从而可以对故障进行预测,使用户能够更灵活地进行调整。我们对这种方法进行了形式化的定义,并提供了工具支持。我们使用该工具在几个大型开源项目上进行实验,结果表明带预测语义的运行时验证具有一定的实用性。3.针对基于AOP的运行时验证框架中由于事件选择语言的复杂性引起的性质层面监控器和实现层面监控器间的不一致性以及同一被监控程序上部署的多个监控器相互干扰的问题,提出了基于AOP的监控器内部和监控器之间存在的冲突及相应的检测算法。在基于AOP的软件运行时验证中,由于选择监控事件切面的复杂性,用户在定义监控器时可能会出现在性质层面明确的监控器在实现层面不明确,使得最终生成的监控器没有正确反映用户的监控需求。同时在被监控程序中存在多个监控器注入的情况下,各个监控器间可能互相影响,使得监控器无法依据监控性质正确检测被监控程序的最终运行。针对这些问题,本文第五章对此定义了AOP监控器内部和监控器之间的冲突并提出了相应的自动检测算法,这些定义和检测方法能够帮助用户及时发现监控器中存在的问题,更清楚地掌握其定义的监控器和监控器在被监控程序上的使用。4.针对往被监控程序中注入监控器有可能破坏被监控程序原有重要性质的问题,根据监控器对被监控程序原有性质的影响提出了关于监控器的一个分类框架及自动检测方法。由于当前基于AOP的运行时验证框架允许用户在被监控程序的运行满足或违背监控性质的情况下对被监控程序进行任意调整,这有可能会破坏被监控程序的原来保持的某些重要性质。对此,本文第六章根据监控器对被监控程序原有性质的影响提出了一个基于AOP运行时监控器的分类框架。同时,还根据各种不同类型监控器所具备的一些典型代码特征给出了一个监控器类别检测算法。该分类框架和类别检测算法有助于用户选择正确的监控器和掌控对监控器的使用。
周桂芳[7](2011)在《面向方面编程中方面编织问题的研究》文中研究表明计算机行业的飞速发展也使得编程思想经历了一次次变革。随着软件系统复杂度以及规模的不断增加,软件系统各个模块之间的关系变得越来越复杂,使用传统软件开发思想会带来代码纠缠以及代码分散等诸多问题,这样导致软件可定制性,可重用性,可裁剪性都面临挑战。面向方面编程思想正是在这种形式下应运而生的。目前,面向方面编程(Aspect-Oriented Programming,AOP)技术开始逐渐应用在各类软件系统的开发中。从AOP观点看,软件系统是一系列关注点的实现。关注点按其特征可以分为两类,一类是核心关注点,即软件所要实现的主要功能和目标;另一类是横切关注点,即与核心关注点有横切作用的关注点。AOP允许程序员分别实现核心及横切关注点,然后通过编织,实现两类关注点代码集成。通过面向方面编程能减少系统的重复代码,降低模块间的耦合度,提高系统的可裁剪性和可维护性。编织效率在面向方面编程中是一个影响性能的重要因素,本文主要是在充分研究面向方面技术的本质、各种实现技术及其优势的基础上,针对面向方面编程中与编织有关问题进行了研究。基于已有的按需编织和编织历史机制,提出了一种基于日志的增量式编织机制的实现方法。该方法通过方面存储结构的设计,给出方面状态的定量描述,定义方面状态改变量的计算语义,实现了增量式编织,从而达到了提高编织效率的目的。同时通过将更高性能的日志存储结构引入方面恢复,提出了一种更高效恢复方面编织状态的机制。最后做了三组对比实验。试验一对面向方面编程编织时间与面向对象编程编译时间进行了对比,从而验证了面向方面编程编织时间仅仅比面向对象编程编译时间略大,因此两者性能方面差异不大。实验二对比了基于日志恢复方面编织状态所需时间和无日志恢复情况下完全重新编织时间,从而验证了基于日志恢复方面编织能够极大提高系统异常情况下编织效率。实验三对比了有无增量式编织机制情况下编织时间,验证了基于日志的增量式编织机制能极大提高编织效率。
魏菲[8](2011)在《MDA中的面向方面建模及映射研究》文中指出模型驱动架构(Model Driven Architecture,MDA)是由OMG定义的新一代以模型为中心的开发方法学。基于MDA的软件生命周期就是以模型为载体并由模型转换来驱动的过程。MDA的核心技术是模型构造、模型映射与模型精化技术。面向方面编程(Aspect Oriented Programming,AOP)是一种新的编程技术,是OOP技术的延伸。AOP的核心技术可将与业务系统无关但与业务系统所共同调用的关注点分离出来并进行封装,为程序提供更好的封装性和互操作性,有效地解决了面向对象开发方法中难以解决的“代码混乱”和“代码分散”问题。面向方面建模(Aspect Oriented Modeling,AOM)是一项重要的研究内容,其目的是从较高的抽象层次上对软件系统的横切行为进行建模,能开发出一种较为普遍适用的设计方法来表达面向方面软件系统设计的特点和概念。在早期的PIM建模阶段引入方面,使得设计人员可以在开发过程的早期阶段把重心放在系统需求分析上,便于检查和解决问题冲突、清晰划分可重用的业务规则,将面向方面的优势应用到整个软件开发过程。本文将MDA中引入面向方面的思想,以此来有效地处理横切关注点,以获得更加清晰的结构,共享面向方面的易理解性、易重用性、易扩展性等优点。本文详细介绍了模型驱动架构(MDA)、面向方面编程(AOP)、统一建模语言(UML)、ATLAS转换语言(ATL)的知识,旨在MDA中利用AOP技术对关注点进行分离,完善UML profile并建立面向方面PIM和面向方面PSM,由ATL定义模型映射规则。通过一个具体的火车网上售票系统,对整体的系统进行需求分析,验证本方法的可行性。
张谷铭[9](2011)在《面向方面软件开发与编译器技术分析研究》文中研究表明本文主要讨论面向方面软件开发(AOSD)和面向方面编程(AOP)相关的软件技术以及测试方法。简单介绍面向方面软件开发的内容,并且运用编译器的理论知识来分析面向方面编程相关工具的操作。面向方面软件开发带给开发人员一定的好处及方便,不过也给测试人员新增带来了一些棘手的测试问题,本文解释面向方面软件开发在测试代码工作上容易遭遇到哪些困难点与常见问题,并且解释如何运用形式化方法来分析描述这些问题,加以进行模型检测。同时在本文中,对于面向方面软件开发的基础知识做了介绍,包含了面向方面程序的静态编织与动态编织机制,也谈到了编程语言的虚拟机运行环境机制在面向方面程序的关键技术,接着导入了反射机制与元数据,探讨这些技术对于面向方面软件开发优点与缺点。同时,并且以此扩充为软件框架,配合元数据模型中间件,找出代码出错的问题点,思考如何让面向方面软件开发出来的代码更加强固、稳定与可靠。本文也讨论了关于面向方面软件开发的最佳实践应用场合,以及讨论何时该建立建言代码来取代传统的程序或是面向对象的编程方式。最后,本文也从软件工程开发流程的观点,探讨由于面向方面软件开发各个环节所带来的改变,从开发人员,开发团队组织,开发方式,以及软件测试方法上,相较于由一般传统的开发方法,都可能有了较多对应的变化,而不仅仅是开发工具上的影响。进一步指出了在这方面未来的努力方向。
毛冲[10](2010)在《AOP及其在房产管理系统开发中的应用研究》文中认为AOP (Aspect-Oriented Programming,面向方面编程)是软件开发领域一种新的程序设计方法。由于传统的OOP (Object-Oriented Programming,面向对象编程)在代码的独立性、系统的维护性和可扩展性上存在比较大的问题,AOP通过分离系统的横切关注点,使得OOP编程中存在的代码散布和代码纠缠的问题得到了解决,使得程序具有更好的可维护性和扩展性。AOP不是OOP的替代,而是它的补充,OOP结合AOP进行项目开发是一种理想的软件开发策略。本文首先研究分析了面向方面编程技术,包括OOP的优点和缺点,AOP出现的背景、基本概念和主要应用领域;其次,研究分析介绍Java平台下AOP技术,包括目前使用得比较广泛的AOP开发工具Spring AOP。它是采用了反转控制(Inversion of Control,IoC)策略的基于J2EE的轻量级应用框架。它的核心是IoC容器。Spring AOP的实现基于动态代理(Dynamic Proxy),动态代理源于代理模式,即通过接口实现对业务对象的访问;再次,介绍了房产管理系统基本需求和详细设计,着重介绍了基于AOP进行房产管理系统的设计与实现,包括权限管理中的面向方面实现、日志记录的AOP实现和异常处理的AOP实现,同时给出了系统部分模块的实现界面。本文通过使用Spring AOP作为开发工具,将AOP的编程思想应用在房产管理系统中,使用OOP和AOP结合的方式实现了该系统,解决了以前在OOP系统中存在的问题;最后对本文工作进行了总结与展望。
二、面向方面编程(AOP)介绍(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、面向方面编程(AOP)介绍(论文提纲范文)
(1)面向方面程序设计(AOP)在Web程序中的应用研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.3 现有研究存在的不足 |
1.4 研究内容 |
1.5 本文结构 |
第2章 相关概念与技术 |
2.1 面向方面的程序设计 |
2.2 Web应用系统中的AOP应用 |
2.3 JavaScript动态性和闭包技术 |
2.4 本章小结 |
第3章 现有典型方法的分析与比较 |
3.1 现有研究实现的实现原理 |
3.1.1 Function原型扩展 |
3.1.2 闭包技术 |
3.1.3 外部程序织入方面 |
3.2 几种成果的织入方面过程 |
3.3 比较指标 |
3.4 分析与比较 |
3.5 本章小结 |
第4章 基于多线程实时监控的JavaScript方面动态织入方法 |
4.1 方法概述 |
4.1.1 方面织入原则 |
4.1.2 方法理论基础 |
4.1.3 方法过程描述 |
4.2 AOP实现 |
4.2.1 连接点的实现 |
4.2.2 切点的实现 |
4.2.3 方面的实现 |
4.2.4 编织的实现 |
4.3 方法组成元素 |
4.3.1 方面对象的定义 |
4.3.2 方面编织器 |
4.3.3 JavaScript多线程 |
4.4 本章小结 |
第5章 动态织入方法的实现 |
5.1 AOP对象对象定义 |
5.2 方面编织器定义 |
5.3 多线程执行环境 |
5.4 方面的声明 |
5.5 本章小结 |
第6章 应用实例及方法比较 |
6.1 实例应用 |
6.2 方法性能表现 |
6.3 与其他方法的比较 |
6.3.1 与非同类方法比较 |
6.3.2 与同类方法比较 |
6.4 本章小结 |
第7章 总结与展望 |
7.1 工作总结 |
7.2 展望 |
参考文献 |
攻读硕士学位期间已撰写和发表的论文 |
致谢 |
(2)AspectJ在Java单元测试中的应用研究(论文提纲范文)
中文摘要 |
英文摘要 |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状分析 |
1.3 论文的主要工作 |
1.4 论文的组织安排 |
2 面向方面编程(AOP) |
2.1 面向方面编程概述 |
2.1.1 AOP的基本概念 |
2.1.2 AOP技术的优势 |
2.2 面向方面编程的实现 |
2.3 AspectJ |
2.3.1 连接点 |
2.3.2 切点 |
2.3.3 通知 |
2.3.4 类型间声明 |
2.3.5 方面 |
2.4 面向方面的模型表示 |
2.5 本章小结 |
3 JAVA单元测试 |
3.1 Java单元测试框架 |
3.2 JUnit单元测试框架 |
3.3 单元测试中模拟对象的使用 |
3.3.1 模拟对象的意义 |
3.3.2 基于状态的测试与基于交互的测试 |
3.3.3 EasyMock简介 |
3.4 本章小结 |
4 AspectJ在单元测试中的应用研究 |
4.1 运用AspectJ组织运行单元测试 |
4.1.1 当前单元测试用例执行方式存在的问题分析 |
4.1.2 基于AspectJ的解决思路 |
4.2 运用AspectJ解决单元测试依赖问题 |
4.2.1 现有隔离框架存在的问题分析 |
4.2.2 使用AspectJ技术解决Mock问题 |
4.3 基于AspectJ的单元测试复用性研究 |
4.3.1 参数化测试 |
4.3.2 接口测试方法的复用 |
4.4 本章小结 |
5 TestWAJ |
5.1 TestWAJ简介 |
5.2 TestWAJ的组成 |
5.3 运用TestWAJ进行基于状态和基于交互的测试 |
5.4 运用TestWAJ进行参数化测试与接口测试方法复用 |
5.5 运用TestWAJ灵活高效选择运行测试 |
5.6 本章小结 |
6 总结与展望 |
6.1 总结 |
6.2 研究展望 |
致谢 |
参考文献 |
附录 |
A. 作者在攻读硕士学位期间发表的论文目录 |
(3)Java面向方面程序设计概述(论文提纲范文)
1 AOP技术介绍 |
1.1 AspectJ介绍 |
1.2 AspectWerkz介绍 |
1.3 JBoss AOP介绍 |
1.4 Spring AOP介绍 |
2 技术概览 |
2.1 基本概念 |
2.2 横切技术 |
2.3 关注点 |
2.3.1 动态横切 |
2.3.2 静态横切 |
3 AspectJ 实践 |
3.1 开发环境: |
3.2 配置: |
3.3 编码 |
3.4 运行结果 |
4 AOP技术优点 |
(4)改进AOP技术在软件开发中的应用与研究(论文提纲范文)
摘要 |
Abstract |
绪论 |
第一章 AOP技术简介 |
1.1 引言 |
1.2 AOP技术发展 |
1.2.1 现有的软件编程技术的不足 |
1.2.2 AOP的出现背景 |
1.2.3 AOP与OOP的不同 |
1.3 AOP的重要概念 |
1.3.1 关注点 |
1.3.2 横切 |
1.3.3 方面 |
1.3.4 连接点 |
1.3.5 切入点 |
1.3.6 通知 |
1.3.7 类型间声明 |
1.3.8 编织 |
1.4 AOP程序设计的步骤 |
1.5 支持AOP的工具 |
1.5.1 AspectJ |
1.5.2 连接点模型 |
1.5.3 编织方式的区别 |
1.6 基于AOP技术的系统中出现的问题分析 |
1.6.1 结构冲突问题 |
1.6.2 连接点丢失错配问题 |
本章小结 |
第二章 基于反射机制的AOP技术以及AOSD编程方法的研究 |
2.1 引言 |
2.2 反射机制 |
2.2.1 反射机制 |
2.2.2 基础级和元级 |
2.2.3 元对象极其协议 |
2.2.4 元链和元对象协作方式 |
2.3 反射与AOP的结合解决结构冲突问题 |
2.4 面向方面编程方法(AOSD)研究 |
2.4.1 面向方面编程方法的过程分析 |
2.4.2 需求分析阶段 |
2.4.3 系统分析和设计阶段 |
2.4.4 系统实现阶段 |
2.4.5 系统测试阶段 |
本章小结 |
第三章 连接点管理机制与反射机制结合改进AOP技术 |
3.1 引言 |
3.2 AOP技术的缺点分析 |
3.3 连接点管理机制 |
3.4 对Spring AOP的连接点定义机制研究 |
3.4.1 XML配置方式 |
3.4.2 注解式 |
3.4.3 连接点管理机制在Spring中的应用 |
3.5 连接点管理机制的算法实现 |
3.5.1 具体的实现方法 |
3.5.2 此改进技术的优缺点 |
3.6 反射机制元程序的生成算法 |
3.6.1 标注的定义 |
3.6.2 元程序自动生成算法 |
3.7 将反射机制与连接点管理机制融入面向方面编程方法 |
3.7.1 改进后的面向方面编程方法的过程分析 |
3.7.2 反射机制框架在系统中的使用流程 |
本章小结 |
第四章 改进AOP技术在实际案例中的应用 |
4.1 引言 |
4.2 某公司培训系统概述 |
4.3 需求分析阶段 |
4.3.1 项目背景 |
4.3.2 需求边界说明 |
4.3.3 业务过程一览表 |
4.3.4 接口功能说明 |
4.3.5 培训业务整体流程 |
4.4 系统分析和设计阶段 |
4.4.1 系统分析 |
4.4.2 系统设计 |
4.5 系统实现阶段 |
4.5.1 连接点检测器具体的实现方法 |
4.5.2 连接点状态的数据库设计 |
4.5.3 反射类生成插件 |
本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的学术论文 |
致谢 |
(5)AOP技术在管理信息系统中的应用研究(论文提纲范文)
0 引 言 |
1 MIS软件遇到的问题 |
1.1 现有MIS软件的开发方法 |
(1) 代码缠绕 |
(2) 代码散乱 |
1.2 使用AOP技术的优点 |
2 AOP技术简介 |
2.1 AOP原理 |
2.2 AOP相关概念 |
3 AOP在MIS中面临的挑战 |
3.1 实现工具问题 |
3.2 方面融合的安全问题 |
4 面向MIS的AOP开发工具 |
4.1 服务器端 |
(1) 基于Java的AOP语言框架 |
① Spring |
② AspectJ |
(2) 基于.NET的AOP语言框架 |
① Eos |
② Spring.NET |
(3) 基于PHP的AOP语言框架 |
① 静态编织 |
② 动态编织 |
4.2 客户端 |
5 AOP在MIS中的应用 |
5.1 在系统非功能性需求方面的应用 |
(1) 系统数据资源优化中的应用 |
(2) 系统运行状态监测中的应用 |
(3) 系统安全中的应用 |
5.2 在系统功能性需求方面的应用 |
(1) Web服务组合中的应用 |
① 基于实时方面的Web服务组合 |
② 基于状态方面的Web服务组合 |
(2) 访问控制中的应用 |
6 结 语 |
(6)基于AOP的软件运行时验证关键技术研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 软件运行时验证的相关定义 |
1.1.1 软件运行时验证定义 |
1.1.2 判断性质的监控器定义 |
1.1.3 可修改被监控程序的监控器定义 |
1.1.4 软件运行时验证的应用 |
1.2 软件运行时验证的研究现状 |
1.2.1 运行时验证的性质描述语言 |
1.2.2 LTL公式的有穷语义 |
1.2.3 监控器构造 |
1.2.4 运行时验证性能优化技术 |
1.3 本文的研究内容和贡献 |
1.4 论文结构 |
第二章 技术和理论基础 |
2.1 面向方面编程 |
2.1.1 模块化横切关注点 |
2.1.2 AOP的接入点模型 |
2.1.3 AspectJ语言介绍 |
2.2 基于AOP的软件运行时验证 |
2.3 可监控和不可监控性质 |
2.4 本章小结 |
第三章 软件运行时验证的事件选择语言 |
3.1 动机:防范Web程序中的SQL注入攻击 |
3.1.1 SQL注入攻击 |
3.1.2 如何防范SQL注入攻击 |
3.1.3 用运行时验证防范SQL注入攻击 |
3.2 选择单个事件的切面语法 |
3.2.1 AspectJ切面的语法 |
3.2.2 选择单个事件的切面语法 |
3.3 软件运行时验证的事件选择语言 |
3.4 软件运行时验证的事件选择语言的表达能力 |
3.5 工具实现和案例研究 |
3.5.1 工具实现 |
3.5.2 案例研究 |
3.6 相关工作 |
3.7 本章小结 |
第四章 带预测语义的软件运行时验证 |
4.1 背景知识介绍 |
4.1.1 Büchi自动机 |
4.1.2 三值语义的软件运行时验证 |
4.2 带预测语义的软件运行时验证 |
4.3 基于预测语义的监控器构造和检测 |
4.3.1 基于预测语义的监控器构造 |
4.3.2 带预测语义的监控器检测过程 |
4.3.3 监控器示例 |
4.4 支持预测语义的工具实现 |
4.4.1 工具支持的预测语义 |
4.4.2 把LTL公式转化为监控器 |
4.4.3 插装被监控程序 |
4.5 案例研究与实验 |
4.5.1 案例研究 |
4.5.2 实验和结果分析 |
4.6 相关工作 |
4.7 本章小结 |
第五章 基于AOP的运行时验证中的冲突检测 |
5.1 基于AOP的面向运行时监控的事件选择表达式 |
5.2 单个监控器内的冲突检测 |
5.2.1 单个监控器内冲突的定义 |
5.2.2 单个监控器内冲突的检测算法 |
5.3 多个监控器间的冲突检测 |
5.3.1 多个监控器间冲突的定义 |
5.3.2 多个监控器间冲突的检测算法 |
5.4 实现与案例研究 |
5.5 相关工作 |
5.6 本章小结 |
第六章 基于AOP的运行时监控器的分类和检测方法 |
6.1 运行时验证框架中监控器的定义 |
6.1.1 JavaMOP中监控器示例 |
6.2 基于AOP运行时监控器的分类 |
6.2.1 被监控程序的语义 |
6.2.2 基于AOP运行时监控器的分类 |
6.2.3 监控器类别与被监控程序保持性质间的关系 |
6.3 基于AOP监控器类别的自动检测方法 |
6.4 工具实现和实验结果分析 |
6.4.1 工具实现 |
6.4.2 实验及结果分析 |
6.5 相关工作 |
6.6 本章小结 |
第七章 结束语 |
7.1 本文的主要工作 |
7.2 进一步的工作展望 |
致谢 |
参考文献 |
作者在学期间取得的学术成果 |
(7)面向方面编程中方面编织问题的研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 编程方法的发展 |
1.1.1 面向过程的编程方法 |
1.1.2 面向对象的编程方法 |
1.1.3 面向方面的编程方法 |
1.2 本论文的工作 |
1.2.1 论文研究的贡献 |
1.2.2 论文的总体结构 |
第二章 AOP 技术 |
2.1 引言 |
2.2 AOP 技术的发展历程 |
2.3 AOP 技术的实现和 AspectJ 语言 |
2.3.1 软件的适度设计 |
2.3.2 AOP 的实现 |
2.3.3 AspectJ 语言 |
2.4 其他AOP 技术 |
2.4.1 自适应编程(Adaptive Programming) |
2.4.2 组合过滤器(Composition Filters) |
2.4.3 多维空间(Hyperspaces) |
2.4.4 反射方法(Reflective Approaches) |
2.4.5 混合策略(Hybrid Approach) |
2.5 AOP 的方面编织 |
2.5.1 方面织入时间方案 |
2.5.2 方面编织实现方案 |
2.5.3 AOP 的动态编织和静态编织 |
2.5.4 AspectJ 方面编织流程 |
2.6 AOP 实例 |
2.7 小结 |
第三章 一种基于日志的增量式编织机制的实现 |
3.1 引言 |
3.2 日志 |
3.2.1 日志管理程序 |
3.2.2 日志记录存储方式 |
3.3 方面的编织 |
3.4 基于日志的增量式编织机制的实现 |
3.4.1 日志存储结构 |
3.4.2 增量式编织 |
3.4.2.1 方面描述 |
3.4.2.2 方面存储模型 |
3.4.2.3 △weave 计算 |
3.5 小结 |
第四章 正常编织流程以及异常恢复 |
4.1 引言 |
4.2 方面的编织流程 |
4.3 日志与恢复 |
4.3.1 日志记录 |
4.3.2 undo 日志 |
4.3.3 redo 日志 |
4.3.4 undo/redo 日志 |
4.3.5 检查点机制 |
4.4 系统发生异常后方面恢复机制 |
4.5 小结 |
第五章 实验与分析 |
5.1 引言 |
5.2 实验原理 |
5.3 AOP 编织与OOP 编译时间对比 |
5.3.1 实验环境 |
5.3.2 实验内容 |
5.3.3 实验结果以及分析 |
5.4 基于日志恢复方面编织vs 完全重新编织 |
5.4.1 实验方法 |
5.4.2 实验结果及分析 |
5.5 增量式编织vs 完全编织 |
5.5.1 实验方法 |
5.5.2 实验结果及分析 |
5.6 小结 |
第六章 总结与展望 |
6.1 本文的工作总结 |
6.2 本文贡献与创新点 |
6.3 未来工作展望 |
参考文献 |
致谢 |
硕士期间发表的学术论文与参加的科研项目 |
已发表论文 |
参加的科研项目 |
(8)MDA中的面向方面建模及映射研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景 |
1.1.1 MDA 研究背景 |
1.1.2 AOP 研究背景 |
1.2 研究意义 |
1.3 研究现状 |
1.3.1 MDA 和AOP 的国内外研究现状 |
1.3.2 统一建模语言UML 及其扩展机制 |
1.3.3 ATLAS 转换语言(ATL) |
1.3.4 在MDA 下面向aspect 的建模及映射 |
1.4 研究思路 |
1.5 研究内容及本文组织结构 |
1.5.1 研究内容 |
1.5.2 组织结构 |
1.6 本章小结 |
第2章 模型驱动架构MDA |
2.1 MDA 的相关概念 |
2.1.1 模型与元模型 |
2.1.2 平台无关模型PIM 和平台相关模型PSM |
2.1.3 模型映射 |
2.2 MDA 开发过程 |
2.3 MDA 的核心技术 |
2.3.1 UML——统一建模语言 |
2.3.2 MOF——元对象设施 |
2.3.3 公共数据仓库元模型CWM(Common Warehouse Meta-model) |
2.3.4 XML 元数据交换XMI(XML Metadata Interchange) |
2.4 模型映射语言ATL |
2.4.1 ATL 模块 |
2.4.2 ATL 查询 |
2.4.3 ATL 库 |
2.5 本章小结 |
第3章 面向方面编程AOP |
3.1 软件编程方法的发展 |
3.2 面向方面编程的产生 |
3.3 AOP 的核心概念 |
3.3.1 关注点(Concern) |
3.3.2 连接点(Join Point) |
3.3.3 切入点(Pointcut) |
3.3.4 通知(Advice) |
3.3.5 方面(Aspect) |
3.3.6 组合(Composition) |
3.3.7 编织(Weaving) |
3.4 AOP 程序的开发过程 |
3.5 AOP 的支持工具 |
3.6 主流AOP 技术 |
3.6.1 AspectJ |
3.6.2 自适应程序设计 |
3.6.3 多维关注点分解 |
3.6.4 组合过滤器原理 |
3.7 本章小结 |
第4章 基于AOP 的MDA 建模及映射研究 |
4.1 建模语言的选择 |
4.1.1 MOF 扩展 |
4.1.2 UML 扩展 |
4.1.3 两种扩展方式的比较 |
4.2 UML 建模工具——Rational Rose |
4.3 面向方面PIM |
4.3.1 建立方面PIM 的元模型及模型 |
4.3.2 传统的MDA 建模研究 |
4.3.3 基于方面的MDA 建模研究 |
4.4 面向方面PSM |
4.4.1 建立AspectJ 元模型 |
4.4.2 面向方面PSM 建模 |
4.5 面向方面PIM 到面向方面PSM 的映射 |
4.5.1 映射方式选择 |
4.5.2 映射方式实现 |
4.5.3 面向方面PIM 与面向方面PSM 的映射类型 |
4.6 本章小结 |
第5章 火车网上售票系统的方面建模及映射 |
5.1 火车网上售票系统 |
5.2 火车网上售票系统的方面建模 |
5.3 基于J2EE 平台面向方面的模型驱动框架 |
5.4 利用ATL 进行模型映射 |
5.5 映射后的面向方面PSM |
5.6 面向方面的MDA 建模及映射的评价 |
5.7 本章小结 |
结论 |
致谢 |
参考文献 |
作者简介 |
攻读硕士期间发表的论文和参加科研情况 |
(9)面向方面软件开发与编译器技术分析研究(论文提纲范文)
中文摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现况 |
1.3 本文研究内容 |
1.4 本文组织结构 |
第二章 面向方面软件开发概述 |
2.1 面向方面软件开发基本思想 |
2.2 面向方面软件开发基本概念 |
2.3 动态编织与静态编织 |
2.4 对于软件工程开发方法带来的正反影响 |
2.5 本章小结 |
第三章 编译器技术以及面向方面语言实现 |
3.1 基本概念 |
3.2 元数据 |
3.3 虚拟机 |
3.4 本章小结 |
第四章 反射机制 |
4.1 反射机制的基本概念 |
4.2 动态语言与编译器 |
4.3 运行时期的反射机制与动态编织器 |
4.3.1 用于反射机制的编译器元数据模型 |
4.3.2 元数据中间件架构 |
4.3.3 面向方面软件框架 |
4.4 动态程序的测试 |
4.5 关于面向方面程序安全性测试 |
4.6 本章小结 |
第五章 案例研究 |
5.1 运用 AOP 的最佳场合 |
5.2 本章小结 |
第六章 总结与展望 |
6.1 全文总结 |
6.2 进一步工作 |
参考文献 |
攻读学位期间参加的科研项目和发表的论文 |
致谢 |
(10)AOP及其在房产管理系统开发中的应用研究(论文提纲范文)
摘要 |
Abstract |
目录 |
第一章 绪论 |
1.1 课题研究背景 |
1.1.1 从OOP到AOP |
1.1.2 AOP在房产管理系统中的应用背景 |
1.1.3 Spring AOP的应用背景 |
1.2 AOP的国内外研究现状 |
1.3 课题的研究内容和目标 |
1.3.1 本课题的研究内容 |
1.3.2 本课题的研究目标 |
1.4 论文的组织结构 |
第二章 面向方面编程技术 |
2.1 AOP技术的历史与发展 |
2.2 AOP技术的简要介绍 |
2.3 AOP技术中的主要概念 |
2.3.1 横切关注点(Cross-cutting concern) |
2.3.2 方面(Aspect) |
2.3.3 通知(Advice) |
2.3.4 连接点(Joint point)和切入点(Pointcut) |
2.3.5 织入(Weave) |
2.3.6 混入继承(mixin inhertance) |
2.4 AOP技术的优势 |
2.5 AOP的实现策略和组织策略 |
2.5.1 AOP的实现策略 |
2.5.2 AOP的组织策略 |
2.6 AOP的应用领域 |
2.6.1 AOP在日志中的应用 |
2.6.2 AOP在权限控制中的应用 |
2.6.3 AOP在分布式系统中的应用 |
2.6.4 AOP在异常处理中的应用 |
2.6.5 未来AOP研究应用的展望 |
第三章 Java平台AOP技术研究 |
3.1 AOP技术在Java平台中的应用 |
3.2 Java平台下AOP工具的比较 |
3.2.1 AOP实现机制的区别 |
3.2.2 在Aspect方面上的区别 |
3.2.3 在语言机制上的区别 |
3.3 Spring AOP技术的研究 |
3.3.1 Spring的简单介绍 |
3.3.2 IoC和AOP |
3.3.3 Spring AOP中的重要概念 |
3.3.4 Spring AOP实例 |
第四章 AOP在房产管理系统中的应用 |
4.1 MVC架构基础 |
4.1.1 MVC模式概述 |
4.1.2 MVC模式的思想 |
4.1.3 MVC的优点和缺点 |
4.2 房产管理系统需求分析 |
4.3 房产管理系统的功能设计 |
4.3.1 用户注册与登录功能 |
4.3.2 房屋租赁模块 |
4.3.3 知识管理模块 |
4.3.4 权限管理方面 |
4.3.5 日志记录方面 |
4.3.6 异常处理方面 |
4.4 系统数据库设计 |
4.5 系统架构设计 |
4.6 系统部分模块的面向方面实现 |
4.6.1 权限管理中方面的实现 |
4.6.2 日志记录方面 |
4.6.3 异常处理方面 |
4.7 系统实现 |
4.7.1 系统总览 |
4.7.2 系统登录页面 |
4.7.3 房产信息页面 |
4.7.4 房产信息介绍页面 |
第五章 结论与展望 |
5.1 结论 |
5.2 展望 |
参考文献 |
致谢 |
攻读学位期间的研究成果 |
四、面向方面编程(AOP)介绍(论文参考文献)
- [1]面向方面程序设计(AOP)在Web程序中的应用研究[D]. 黄文豪. 武汉工程大学, 2016(06)
- [2]AspectJ在Java单元测试中的应用研究[D]. 卢佳伟. 重庆大学, 2016(03)
- [3]Java面向方面程序设计概述[J]. 谢朋宇,李林峰. 软件导刊, 2013(07)
- [4]改进AOP技术在软件开发中的应用与研究[D]. 薛冰. 大连交通大学, 2013(06)
- [5]AOP技术在管理信息系统中的应用研究[J]. 王书怀,邢建春,李决龙,杨启亮,周磊. 计算机应用与软件, 2012(06)
- [6]基于AOP的软件运行时验证关键技术研究[D]. 张献. 国防科学技术大学, 2012(03)
- [7]面向方面编程中方面编织问题的研究[D]. 周桂芳. 中国科学技术大学, 2011(09)
- [8]MDA中的面向方面建模及映射研究[D]. 魏菲. 河北工程大学, 2011(11)
- [9]面向方面软件开发与编译器技术分析研究[D]. 张谷铭. 苏州大学, 2011(06)
- [10]AOP及其在房产管理系统开发中的应用研究[D]. 毛冲. 南昌大学, 2010(02)
标签:aop论文; aspectj论文; spring aop原理论文; 测试模型论文; 面向过程论文;