- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向方面在软件组件中应用
面向方面在软件组件中应用
摘要:传统的基于组件的软件开发方法大部分都集中在功能分解上,其并没有考虑到横切关注点对组件的影响。而面向方面技术就是以解决大规模系统中的横切问题为目的的,其主要是先分离出方面模块,然后再织入核心类中。文中提出了采用面向方面的编程思想,将其应用到软件组件的开发中。
关键词:面向方面;横切;关注点分离;软件组件
中图分类号:TP311.52 文献标识码:A文章编号:1007-9599(2012)04-0000-02
随着计算机软件的的飞速发展,基于组件的软件开发技术越来越成熟,运用该开发技术使得代码的重用率得到了很大的提高,同时简化了软件开发过程,缩短了开发周期。接口提供了组件交互所需的全部信息,因此组件之间的交互是要通过组件所提供的接口来实现的。面向方面编程(AOP)可以独立于继承层次结构而应用改变类或对象行为的方面。它的核心思想是将??统的非功能性横切关注点抽象成方面,模块化非功能性需求。面向方面编程优化了对实时约束、安全策略、异常处理、日志功能等横切整个系统的关注点的处理。
一、AOP技术[1]
面向方面编程是一种基于关注分离的新型软件开发,它主要是通过引入实现横切关注点的方面来获得更高的功能性和非功能性关注点的分离。面向方面使开发者能够很容易响应已有软件系统中未预期的变化,并且可以重用已验证和设计好的软件组件,这是面向方面方法的一个优点。
为了能够更好地掌握面向方面的技术,应该彻底理解以下这些AOP中的术语。(1)横切关注定:软件开发所强调的关注点,既有用户/需求级的,也有设计/实现级的。(2)方面:方面是一个设计成实现某个关注点的模块单元。基于不同的方面语言,方面能够层次化地构建,方面语言也可以提供独立的机制来定义某个方面,同时制定它与底层系统的交互。(3)连接点:连接点主要强调是一个具体的“点”概念。(4)切点:一系列连接点通过与或非操作组成切点。它是用于声明连接点中关注的AspectJ机制,用来发起一份通知。(5)通知:通知是一种在连接点执行的行为。其包含自身的一组规则,此规则规定了何时调用通知,这是与被触发的连接点相关的。(6)织入:织入是一个动态过程,它是将方面代码利用方面编织器织入到核心代码中,以便在适当时候触发建议代码的执行。
二、软件组件
软件组件是伴随着开发过程复用程度、开发过程图形化程度及开发语言本身的不断提高而产生的。它经历由汇编语言、高级语言、面向对象到面向组件的多次变革。基于组件的软件开发技术符合软件工程的设计原则,同时也能很好的达到有效性、可维护性、可复用性、可适应性等目标。组件的主要目的是为了解决共性的业务问题,对有相似性,普遍性、反复重复出现问题分析的基础上,排除个性,提取不同问题间的共性[2]。
由于组件技术具有软件更新快、规模大、强调协作等特点,所以它和适合现代软件环境。软件组件就是一个封装的、规范的、可重用的软件模块,其不仅是组织系统的基本单元,并且还是独立发布的二进制单元。基于组件的开发方法是在组件复用的基础上通过系统分析、组件定位、组件组装来实现系统。而基于高质量组件的系统开发过程有效提高了软件的复用率,确保了软件的质量,缩短了产品从设计到投入市场的时间[3]。
三、面向方面在软件组件中的应用
(一)面向方面的组件描述
基于组件的系统开发主要是将称为软件组件的系统部分组合成完整的系统。在理想状态下,组件使用一种可以支持组件高可重复性的技术来实现,它的使用者需要能够在运行时理解和正确地插入组件。组件封装了数据和功能,其一般提供一些事件同时是自述性的,这其中有许多可以以“即插即用”的方式动态插入到运行的系统中。在文献[4]中提出在需求层次使用方面(横切关注点)来提高组件描述能力,事实证明它是成功的。
(二)面向方面的组件设计
面向方面的组件主要是充分利用组件和面向方面的优势,在系统需求的驱动下,从组件库中选择组件,同时从方面包中选择方面,经过合适的配置已生成需要的系统。组件的模型可以分为功能部分、运行部分和组合部分。
面向方面的组件设计过程概括为:第一步开发者将组件描述细节化为细节的设计;第二步设计实现的解决方案。其中,开发者还可以将方面的描述细化到某个层面,在描述设计时,还可以创建附加的设计图,而这每个设计图重点将会集中在影响相关组件的专门方面。
(三)面向方面的组件实现
通过使用标准的面向方面交互的集合,能够极大的解耦许多公共组件的交互。面向方面组件的实现步骤:第一步主要是通过方面信息扩展组件模型。在某些实时系统中,大量的非功能属性具有很强的依赖性,而当前的实时系统的某些非功能性和可预测性等重要的因素影响,使组件模型无法进行描述,所以要对组件模型进
文档评论(0)