系统工程方法原理与应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统工程方法论原理与应用

老师:

班级:

学号:

姓名:

一种新型软件设计方法AOP的研究

一.摘要(整个研究报告对研究背景、问题的提出、结论等的简要描述)用传统的方法( 如面向对象方法, 面向过程方法等) 设计和编写软件时, 有些设计方案只能通过散乱地分布在各个相关模块中加以实现。从而导致软件的开发过程变得复杂, 同时也使得代码变得难理解、难维护。面向方面编程技术是为较好地解决这一问题而提出的一种新技术。对面向方面编程技术的产生背景、发展过程、编程思想, 编程语言, 关键技术及其优点等方面作了综述的详细, 最后分析了面向方面编程技术的研究应用热点及它的发展前景。

本文主要问题为:一种新型软件设计方法AOP的问题。

本文所提到的软件设计方法是一种新型的软件开发方法,在我们平时开发软件过程中,一个软件开发的方法好坏将在很大程度上决定这个软件的成功与失败。由此可见一种新型的好的软件开发对于我们开发软件是非常重要的。二.提出问题(对题目中的问题范围特定中的主要子问题进行描述)

1. 问题-目标阐明列表:

2. 问题-目标树:

初始问题---初始目标

第一层子问题---子目标:

子问题P(2)---子目标TP(2):

子问题P(3)---子目标TP(3):

子问题P(4)---子目标TP(4):

三.解决问题的过程描述(将解决问题的过程——即对开发设计的、实现从子

问题导出的解决子问题等价目标的方案,以及实现从初始问题导出的解决初始问题等价目标的方案的过程进行详细描述)

1. 各子问题的指标目标:

P(1): 定义好新型软件设计方法AOP的概念

P(2): 阐明清楚新型软件设计方法AOP的基本技术

P(3): 解决新型软件设计方法AOP在一个给定的编程模型中穿越既定的职责部分的操作

P(4):实现新型软件设计方法AOP特定的目的

P(5):阐明新型软件设计方法AOP实现横切关注点的实体

2. 解决子问题等价目标的方案:

A.AOP 是最近兴起的一种编程思想,它能很好地解决一些OOP 及面向过编程所不能解决的问题,是OOP 思想的有益补充。AOP 利用一种称为

“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的行

为封装到一个可重用模块,称为“Aspect”,即方面,这样就有利于减少

系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可

维护性。

B.实现AOP 的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是

采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可

以在编译期间织入有关“方面”的代码。

C.“横切”是AOP 的专有名词,是在一个给定的编程模型中穿越既定的职责部分(比如日志记录和性能优化)的操作。它是一种蕴含强大力量的

相对简单的设计和编程技术,尤其是用于建立松散耦合的、可扩展的企

业系统时。使用“横切”技术,AOP 把软件系统分为两个部分:核心

关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不

大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核

心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。

AOP 的作用在于分离系统中的各种关注点,将核心关注点和横切关注

点分离开来。

D.一个关注点(concern)就是一个特定的目的,一块我们感兴趣的区域,一段我们需要的逻辑行为。在AOP 中,我们将那些具有公共逻辑的,

与其他模块的核心逻辑纠缠在一起的行为称为“横切关注点”,因为它跨

越了给定编程模型中的典型职责界限。

E.方面是实现横切关注点的实体,就像OOP 中能完成独立功能的组件。

方面定义切入点和通知(advice),并由方面编译器来编译,以便将横切

织入到现有的对象中,然后织入器则使用这些信息来构建最终系统。3. 解决问题等价目标方案:

AOP为开发者提供了一种描述横切关注点的机制,并能够自动将横切关注点织入到面向对象的软件系统中,从而实现了横切关注点的模块化。通过划分AspectJ代码,横切关注点变得容易处理.开发者可以在编译时更改,插入或除去系统的Aspect,甚至重用系统的Aspect。用AOP实现的软件模块化程度更高,软件可重用性更好;它弥补了OOP的不足、尤为突出的是,用AOP实现的软件可扩展,易更新。

四.结束语(对已解决的问题进行结论详细描述,以及对题目中尚未解决,以及尚待进行研究的问题进行描述)

1. 已解决问题结论:

A.由于AOP的出现就是为解决横切关注点问题,因此,使用AOP首先带来的好处就是可以模块化横切关注点的实现,由此也使得代码有良好的

可重用性。

B.使用AOP可以解决代码混乱和代码分散问题,这使得采用AOP实现的系统代码冗余小,也易于理解和维护。

C.由于方面模块根本不知道横切关注点,所以很容易通过建立新的方面加入新的功能。另外当你往系统中加入新的模块时,已有的方面自动横切

进来,使系统易于扩展。

2. 未解决问题与尚待研究的问题:

A.AOP是一种新的编程技术,没有完整的文档,没有得到良好的测试和大量的实际项目的应用,作为一种新技术,还需要在实际工作中得到更多的

检验。

B.目前,AOP在开发工具上还很缺乏,目前主要是基于JA V A上的AspectJ,而基于C#和.NET以及其他语言上的开发工具都尚在研究中。关于什么

是AOP分析、设计过程,设计和分解方面的基本原则,如何调试,什么

是良好的方面模块等都有待进一步研究。

C.AOP的理论支持方面也有待进一步研究。如用什么理论能最好地描述方面与组件之间的交互等。

D.破坏了封装性。

等等…

相关文档
最新文档