1. 研究目的与意义
AOP(Aspect-Oriented Programming,面向方面编程)可以说是OOP(面向对象编程)的补充和完善。AOP技术利用了一种被称之为横切的技术。通过使用横切技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。
通过对AOP的基本原理进行模拟演示,能过进一步的加深了解AOP的优点:(一)在定义应用程序对某种服务的所有需求的时候。通过识别关注点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。(二)利用AOP技术对离散的方面进行的分析将有助于为开发团队指定一位精于该项工作的专家。负责这项工作的最佳人选将可以有效利用自己的相关技能和经验。(三)持久性。标准的面向对象的项目开发中,不同的开发人员通常会为某项服务编写相同的代码,而AOP编程可以不需要在整个应用程序中一遍遍重新编写相同的代码。
通过对AOP的学习,理解了AOP可以降低模块之间的耦合度,是程序系统更加容易扩展。通过这次选题,能够更加清晰的了解AOP的特点及运用。
2. 课题关键问题和重难点
AOP中实现静态织入的方式,需要引入特定的语法创建方面,从而使得编译器在编译的时候能够织入相关方面。而模拟AOP基本原理时的重点就是要进行一个静态织入。而实现这个织入,需要通过文件的读写操作来实现。实现织入的时候还需要考虑织入的位置,比如织入在主函数的开头还是中间,还是末尾。插入之前的新建操作也需要将所写的程序段保存至文件中,等到插入时再来读取该文件。
本课题的重点步骤就是要具有基本的文件读写程序编写能力,通过文件读写以及简单的字符串处理,实现最终的软件。难点在于实现界面中的插入操作时,将文件写如程序的不同部位,从而实现不同的织入位置,需要灵活的程序语言实现。
3. 国内外研究现状(文献综述)
AOP是一种超越OOP的编程模型,它允许程序员将横切关注点封装成清晰的可重用的模块,然后通过组合这些模块和功能性左键获得系统的实现,AOP通过促进另一种模块性补充了面向对象的编程,是程序员可以更加自然的处理一些传统面向技术不能解决的问题。
实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建方面,从而使得编译器可以在编译期间织入有关方面的代码。然而殊途同归,实现AOP的技术特性却是相同的,分别为:
1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去定义一个join point。2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个point cut,来捕获相关方法的调用。用来指定、组合所需连接点并搜集连接点上下文信息的语言构造。3、advice(通知):是point cut的执行代码,是执行方面的具体逻辑。在符合特定条件的情况下执行的代码。例如,一个通知可能会在执行到一个连接点之前的数据库中写入一条记录。4、aspect(方面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。方面是Aspect的模块单元,将切入点和通知集中到一起,起作用类似与JAVA中的类。方面可以标记其自身和任何关注点为抽象的,抽象的关注点与抽象类相似,云溪将细节实现推迟到派生方面里。5、introduce(织入|)现在的面向方面技术还没有独立的编译器,只能借助于某种已有的语言扩展而来。
4. 研究方案
使用C 语言,设计界面,先编写一个主程序,然后在界面中设计四种功能,新建,插入,编辑以及运行程序。新建Aspect的程序段,然后保存到一个文件中去,点插入的时候可以有多个选项:1、插入在开头。2、插入在中间。3、插入在结尾。编辑就是插入的对程序进行修改编辑操作。第四步就是运行程序。
5. 工作计划
1、 2017年1月5日至2013年1月15日:收集资料,阅读参考文献,了解课题的内容,完成开题报告。
2、 2017年1月15日至2017年2月1日:充分调研,认真思考,了解系统需求,做好需求分析,制定相关方案,初步进行程序编写。
3、 2017年2月2日至2017年3月1日:完成程序界面美观实现,编写两个Aspect程序段;编写一个业务程序段
以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。