




已阅读5页,还剩46页未读, 继续免费阅读
(农业机械化工程专业论文)基于uml面向方面建模研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南农业大学硕士学位论文中 文摘 要 中文摘要 软 件 规 模的 刁 断 扩 大 使 得系 统分 析 和设 计 变 得日 益 复 杂 。 软 件 开 发中 的 许多 关 注 点 往 往 横切系统的多 个模块,利 用现有的编程技术 ( 如面向 过程编程、面向 对象编程) . 这些横切关 注点很难被鉴别、理解和 模块化。典型的横切 关注点 包括设 计约束和特征、体系质量以 及系 统级 属性或行为, 如事务处理、日 志与错 误恢复等。 面向 方面编程 ( a s p e c t o r i e n t e d p r o g r a m m i n g , a o p )是 一种全新的编程思想,由x e r o x 公司 的帕罗阿尔托研究中心在1 9 9 7 年的欧洲面向 对象编程大会( e c o o p ) 上首次被提出: 2 0 0 1 年3 月, 首种支持a o p 的 语言a s p e c t ) 诞生。 a o p 被看作是标志软件设计和编写方法基 础性转 变的 三大运动之一,并被 m i t 技术评论杂 志评为2 1 世纪十种对经济和人类生活1 二 作 方式 最具 影响力的技术 之一。 a o p 从编程方法学的角度 对横切关 注点问题进行了 有效的解决, 并通 过 a o p语言提供的精确捕获横切关注点的机制,将那些分散的 应用组织成单独模块, 避免了 由于 横切现象带来的 代码交织 ( c o d e - t a n g l i n g )以 及与此相关的一系列问 题,同时减少了由 于重建软件项目 而 带来的 代码改动,大大提高了系统的 模块性和重用性。 随着a o p 技术的日 渐成熟, a o 的思想已 不再局限于编程 层次, 而是开始影响到软件 开发 的各 个阶段, 形成了 面向 方面软件开发 ( a o s d ) 技术。 a o s d 允 许开发人员在系 统分析、 建模、 编码、调试和维护的各个阶段,都可利用a o的思想进行处理。而在系统开发与设计的初始阶 段就 将问 题分解为核 心组 件和方面组件,并将横切关注 点模块化为独立的 a s p e c t , 可使 系统 结构更加清晰,为 卜 一个阶 段的代码生成、系 统维 护等工作带来便利和保障。面向 方面建模 ( a o m )是实现这一目 的的有效手段。a o m 利用建模语言 ( 如u m l )为 系统进行墓于a o 的 分析 和表示,将使所设计的组 件有更 好的重用性,并 使在更高水平区分关 注点的 a o p系 统在自 动 代码生成上成为可能,并 能保持需求、 设计和实施间的连续性。正如r a t i o n a l 公司官方网 站 指出 :建模 “ 提供了解决问 题的结构,为探索多重解决方案提供了试验场地, 提供抽象性 来 控制问 题的复杂度,为商业问 题的解决缩短了 从开发到市场的 时间,减少了 开发投入,并 使 得错误风险 可控”。 现在,a o m 已 成为a o s d 中重要的 研究内容。 然而,目 前 a o p自 身还并未提供正式的建 模技术和建模工具, 研究 人员只是分别从建 模 语言、建模 l 具、建模方法以 及建模思想等不同角度对a o m 进 行了 研究。如s u z u k i j 等人 开 发了一种基于x m l 的a s p e c t 描述语言, 用来在c a s e 开发 工具与a s p e c t 联结器间进行信息 交 流; c l a r k e s 等人 利用u m l 模板, 提出了 一种用于 在设计阶段处理横切需 求的组 件模式; o m a r a l d a w u d 等利用1 1 1 91 . 状态图和类图 来为代表横切关注点的不同子模块进行建模和内部联 结, 该 方法不需对u m l 进行扩展。 但同 时他们也提出了 另一种通过对u m l 版类包 ( p r o fi l e ) 进行扩展 以 支持a o 建模的方法: j e a n m a r i e l i o n s 等 人则对支持a o m 的c a s e : e 具进行了 研究, 提出 了 一种基于元模型的o p e n t o o l 技术,利用o t s c ri p t 元 语来扩展u m l 的属性和结构,以 支持 西南农业大学硕士学位论文中文摘要 a o 系统的建模。 目 前, 在a o m 语言 的 选 择上, 通 常 选 用 支 持 面向 对象 的u m l 做 为a o 建 模 语言 ,因 为a o 是对0 0 技术的补充,自 然地,人们可通过扩展u m l 来表 达 a o 系统。 l i e是 一 种 用 来 指 定、 可视 化、 构 建 和 记 录 软 件系 统的 建 模 语言 , 它 定 义良 好、 易于 表达 : 功能强大且普 遍适用,被 o m g组织确定 为面向对象的 标准建模语言。 然而,现实需求是多 种 多样的, 作为在标准化符号 要求和特定领域需求之间折衷的选择, u m l 被设计成一种可扩展的 形式,即用户可 通过引入特定领域的模型元素来扩展u m l ,以适应其特定的 需要,另一方面, 这种引 入的元素 将象 u m l标准元素一样使用, 给不同 用户间的 交流 带来了方便。这使得 u m l 的作用域不仅 局限于面向 对象的分析与设计, 还能适应于不同类型的系统、 领域和方法。 u ml 的这种扩展性也为利用它来表达 a o系统提供了理论依据。实践上,目 前的c a s e工具大多 支持u m l ,以r a t i o n a l r o s 。 为代表的建模工 具更提供了丰富的扩展机制, 允许用户按一定规 则对u ml 元模型进行任意扩充,以 表达特定的领域需求。这也为利用u ml 来表达 a o系 统 的提供了实践 基础。 本论文分析了a o p 的 核心思想和a o m 的重要意义, 并深入剖析了 支持a o p 思想的a s p e c t 3 语言的 语法结构,探讨了u m l 语言的可扩展 性, 提出了一种以a s p e c t 3语法为特征,通过扩 展u m l 元模型来支持a s p e c t )系统建模的方法,分别为a s p e c t ) 语言中的a s p e c t , p o i n t c u t 和 a d v i c e等结构单元设计了u m l的 表示方法和相应的表现方式。 最后利用支持 u m l的c a s e 工具- - -r a t i o n a l r o s e . 提供的扩展接口 ( r e d 对该方法进行了验证,通过定制版类 ( s t e r e o t y p e s ) 、标签值 ( t a g g e d v a l u e s ) 和约束 ( c o n s t r a i n t s ) 实现t a o 模型的可视化 和可辨别性,并 通过编写 的s c r i p t 脚本 实现了 对a o 模型的自 动代码生成功能. 本研究对于 减小0 0 和 a o设计工具间的鸿沟进行了 有益的 尝试。 但由于目 前缺乏统一的 a o 建模标准, 该扩展方 法仅是基于a s p e c 七 ,t 语法概念, 随着a o p 思 想研究的不断深入和a s p e c t ) 语言的不断发展,新语法结构的不断推出, 本方法将豁要不断加以 扩充。此外,当需要产生 其它语言形式的代码框架时,还需对具有自 动代码生成功能的脚本进行改 动。建立一种通用 的a o 建模标准已 成为目 前急需解决 的问 题。 关键词:u m l 面向方面编程面向方 面建模 元模型 西南农业大学硕士学位论文 英文摘要 ab s t r a c t t h e c o n s t a n t e x t e n s i o n o f s o f t w a r e m a k e s s y s t e m a n a l y s i s a n d d e s i g n m o r e a n d m o r e 于 c omp l i c a t e d . m a n y c o n c e r n s i n s o f t w a r e d e v e l o p m e n t o f t e n c r o s s c u t o t h e r m o d e l s i n t h e s y s t e m . i t i s o f t e n v e r y d i f f i c u l t t o i d e n t i f y , u n d e r s t a n d a n d m o d u l a r i z e t h e c r o s s c u t t i n g c o n c e r n s b y m e a n s o f t h e p r e s e n t t e c h n o l o g y , s u c h a s p r o c e d u r a l - o r i e n t e d p r o g r a m m i n g a n d o b j e c t - o r i e n t e d p r o g r a m m i n g . c r o s s c u t t i n g c o n c e r n s t y p i c a l l y i n c l u d e d e s i g n c o n s t r a i n t s a n d f e a t u r e s , a s w e l l a s a r c h i t e c t u r a l q u a l i t i e s a n d s y s t e m - l e v e l p r o p e r t i e s o r b e h a v i o r s , s u c h a s t r a n s a c t i o n s , l o g g i n g a n d e r r o r r e c o v e r y , e t c . a o p p r o v i d e s m e c h a n i s m f o r h u n t i n g c r o s s c u t i n g c o n c e r n s a c c u r a t e l y , 喃i c h m a k e s s c a t t e r e d c o d e s i n t o s i n g l e m o d e l s , t h u s a v o i d i n g c o d e - t a n g l i n g c a u s e d b y c r o s s c u t t i n g , a n d r e d u c i n g t h e c o d e m o d i f i c a t i o n a r i s i n g f r o m r e b u i l d i n g t h e s o f t w a r e p r o j e c t . a n d a l l t h e s e e v e n t u a l l y i n c r e a s e t h e m o d u l a r i t y a n d r e u s e b i l i t y o f t h e s y s t e m e n o r m o u s l y . w i t h t h e g r a d u a l p e r f e c t i o n o f a o p , t h e n o t i o n o f a o i s n o t r e s t r i c t e d t o p r o g r a m m i n g l e v e l , b u t c o m e s t o h a v e a n i n f l u e n c e o n a l l s t a g e s o f s o f t w a r e d e v e l o p m e n t , a n d f o r m s a s p e c t o r i e n t e d s o f t w a r e d e v e l o p m e n t ( a o s d ) . a o s d e n a b l e s r e s e a r c h e r s t o h a n d l e p r o b l e m s b y u s i n g t h e n o t i o n o f a o i n s y s t e m a n a l y s i s , m o d e l i n g , c o d i n g , m o d i f i c a t i o n a n d m a i n t e n a n c e . a t t h e i n i t i a l s t a g e o f s y s t e m d e v e l o p m e n t a n d d e s i g n , m a k e t h e p r o b l e m s i n t o c o r e c o m p o n e n t s a n d a s p e c t u a l o n e s , a n d m o d u l a r i z e c r o s s c u t t i n g c o n c e r n s i n t o s e p a r a t e a s p e c t s ,叭i c h m a k e s s y s t e m s t r u c t u r e m o r e c l e a r e r a n d m a k e s a u t o m a t i c c o d e g e n e r a t i o n p o s s i b l e , a n d a l s o , b r i n g s c o n v e n i e n c e t o t h e s y s t e m m a i n t e n a n c e . t o a c h i e v e t h e g o a l , a s p e c t o r i e n t e d m o d e l i n g ( a o m ) i s a n e f f e c t i v e w a y a o m m a k e s s y s t e m a n a l y s i s b a s e d o n a o u s i n g m o d e l i n g l a n g u a g e , a n d a u t o m a t i c a l l y g e n e r a t e s c o d e s b y u s i 明 c o r r e s p o n d i n g c a s e t o o l s . n o w a d a y s , a c m h a s b e c o m e t h e c e n t r a l p a r t o f a o s d h o w e v e r , a t p r e s e n t , a o i t s e l f o f f e r s v e r y l i t t l e t o s u p p o r t t h e d e v e l o p e r s i n e x p r e s s i n g t h e i r a o s y s t e m s w i t h a f o r m a l m o d e l i n g t e c h n i q u e . w h i l e a o i s a s u p p l e m e n t t o 0 0 t e c h n o l o g y . s o i t s e e m s n a t u r a l t o e x t e n d i t t o a 0 . u m l i s a g r a p h i c a l l a n g u a g e f o r s p e c i f y i n g , v i s u a l i z i n g , c o n s t r u c t i n g , a n d d o c u m e n t i n g t h e a r t i f a c t s o f s o f t w a r e s y s t e m s . i t i s w e l l - d e f i n e d , e x p r e s s i v e , p o w e r f u l a n d w i d e l y u s e f u l a n d i t h a s b e e n a p p r o v e d b y t h e o b j e c t m a n a g e m e n t g r o u p ( o m g ) a s a o b j e c t - o r i e n t e d s t a n d a r d i n n o v e r m b e r , 1 9 9 7 . h o w e v e r , t h e r e a r e d i f f e r e n t n e e d s i n r e a l i t y . a s a c o m p r o m i s e b e t w e e n s t a n d a r d i z e d s y m b o l s a n d s p e c i f i c d o m a i n , m 西南农业大学硕士学位论文英文摘要 u m l i s d e s i g n e d i n t h e f o r m s o f e x t e n s i o n,n a m e l y , t h e u s e r s c a n e x t e n d u m l t o f i t t h e n e e d s o f a s p e c i f i c d o m a i n b y i n t r o d u c i n g m o d e l e l e m e n t s i n s p e c i f i c d o m a i n . o n t h e o t h e r h a n d , t h i s i n t r o d u c t i o n w i l l b e u s e d l i k e u m l s t a n d a r d e l e m e n t s , w h i c h m a k e s t h e c o m m u n i c a t i o n s b e t w e e n d i f f e r e n t u s e r s e a s i e r . s o 命 e o f t h e s t r e n g t h s o f u m l i s t h a t i t p r o v i d e s e x t e n s i o n m e c h a n i s m s t h a t e v a b l e t h e l a n g u a g e t o b e a d a p t e d t o 、气 d i f f e r e n t t y p e s o f s y s t e m s , d o m a i n s , a n d m e t h o d s a n d p r o c e s s e s . t h i s p a p e r a n a l y z e s t h e c e n t r a l n o t i o n o f a o p , t h e s i g n i f i c a n c e o f a o m a n d t h e s y n t a x o f a s p e c t j , d i s c u s s e s b r i e f l y t h e u n i f i e d m o d e l i n g l a n g u a g e ( no e x t e n s i b i l i t y . b a s e d o n e x t e n s i o n m e c h a n i s m s o f t h e u m l , s u s h a s s t e r e o t y p e s , t a g g e d v a l u e s a n d c o n s t r a i n t s , t h i s p a p e r p r o p o s e a u m l e x t e n s i o n f o r m o d e l i n g a o s y s t e m s c h a r a c t e r i z e d b y a s p e c t j c o n s t r u c t s a n a l s u p p o r t i n g a s p e c t j s y s t e m m o d e l i n g b y e x t e n d i n g u m l m e t a - m o d e l e l e m e n t s . t o d e s c r i b e a s p e c t s a n d p o i n t c u t s a n d o t h e r n o t i o n s i n a s p e c t j s y s t e m , t h i s a p p r o a c h e x t e n d t h e c l a s s , a s s o c i a t i o n a n d o t h e r u m l m e t a - m o d e l e l e m e n t s , a n d i t i s a l s o t e s t e d h e r e b y u s i n g r a t i o n a l r o s e . c a s e t o o l p a c k a g e . u s i n g r o s e s c r i p t i c o m p i l e d t o g e n e r a t e a n a s p e c t j s k e l e t o n f o r t h e a s p e c t - d i a g r a m f o r t h e m o d e l d e s i g n e d u s i n g t h e p r o p o s e d e x t e n s i o n . t h i s r e s e a r c h i s a b e n e f i c i a l a t t e m p t i n n a r r o w i n g t h e g a p b e t w e e n t h e d e s i g n o f 0 0 a n d a 0 . s i n c e t h i s e x t e n s i o n i s b a s e d o n t e r m o f a s p e c t j , i t n e e d s t o b e e x t e n d e d w i t h t h e f u r t h e r d e v e l o p m e n t o f a s p e c t j l a n g u a g e . b e s i d e s , t h e s c r i p t s a r e r e q u i r e d t o b e m o d i f i e d w h e n t h e c o d e s k e l e t o n o f o t h e r f o r m s o f l a n g u a g e a r e n e e d e d . t h e r e f o r e , s e t t i n g u p a g e n e r a l a o m o d e l i n g s t a n d a r d i s o f g r e a t u r g e n c y a t p r e s e n t . k e y w o r d s : u m l a o p a s p e c t - o r i e n t e d m o d e l i n g m e t a - m o d e l w 西南农业大学硕 卜 学位论文文献综述 第一部分文献综述 计算机程序,实质是将应用需求映射为由 计算机编程语言描述的系统。在设 计阶段, 将 需求进行功能性分解, 变为小的逻辑单元; 在编码阶段,利用编程语言提供的语法机制, 对 这些逻辑单元进行编码;最后, 将这些独立模块进行编译组合,以形成完整的系统。其过程 如 卜 所示: 现实世界问题域 建立模型( 借助某种建模思 想) 编程实现( 借助某种编程语言) 计算机世界执行求解n ) 编程语言是编程方法学的具体化表现方式, 而编程方法学则定义了编程人员与机器之间 的 通信方式。每一种新的方法学都提供了 一些新的 模式来分 解问 题,例如依赖机器的代码、 独立于 机器的代码、过程、类等等,同时, 每一 种新的 方法学也都提供了 一种更为自 然的 方 式来将系统需求映 射为编程结 构。编程方 法学的不断 发展可以让编程人员 创建复杂 度更高的 系统。 近年来,继面向 过程编程 ( p r o c e d u r a l - o r i e n t e d p r o g r a m m i n g , p o p )和面向 对象编程 ( o b j e c t - o r i e n t e d p r o g r a m m i n g , o o p ) 之后, 又一种 新的编程思想被提出,并 被 m i t 技术评 论 杂 志 评 为2 1 世 纪 十 种 对 经 济和 人 类 生 活 工 作 方 式 最具 影 响 力 的 技 术 之 一 1 2 1 , 这 就 是 面向 方面编程 ( a s p e c t - o r i e n t e d p r o g r a m m i n g , a o p ) . 1 a o p 的产生背景 1 . 1传统编程方法学面临的问题 在计算机科学发展的早期 阶段, 人们直接利用机器语言或汇编语言来编写程序,除了 考 虑要解决的问 题本身, 编程人员还要花费大 量精力去 考虑底层的实现细节, 其编程效率和代 码的可移植性都非常低 卜 。 结构化和高级语言的出 现, 一方面使人们可以 忽略具体硬件环节, 另一方面,允许编程人员根据任务执行的过程来分解问题,从而可以更有效地描述问题本身。 在这种面向过程编程方法中,人们关注的是如何用函数和过程来实现对现实世界的模拟,并 将其映射到计算机世界中,但这种方法有着固 有的 不足, 表现在系统体系 结构难以 确立、 系 统进化和维护困难、软件重用性差等,一般仅适用于小型系统的开发。 当前,人们广泛使用的是 o o p的编程思想和编程技术。0 0是对现实世界抽象层次不断发 展和提高的结果, 它将系统看成一组协同 对象, 通过包、 类、方法等概念来组织系 统,方法 被定义在类中,而类被组织在包里,这种封装性、层次性能更好地描述现实世界,也更符合 人们的认识习惯,因此,0 0的思想一经提出就得到了各界厂泛的支持和深入的发展。o o p是 对 p o p的巨大改进,在代码的重用性、可维护性等方面都有着突出的优点,当前,许多大型 软件的开发和设计均采用 o o p的方法。但这种分级 组织方法也产生了两个 后果: 一是同一个 西南农业大学硕士学位论文 组织结构必须为其定义的所有方法共享, 第二,所有方法的定义都必须在同一地点 ( 类) 给 出 ” , 这 也 使 得o o p 不能 解 决 跨越 多个 模 块的 行为 。 在软 件 开发 的 整 个 生 命 周期 中 , 它 具 体 表 现为 以下 几 点 不 足 ( 4 ( 设计阶段:由于以类为单位组 织模块, 因此它不能全面反映系统需求: 编码阶段: o o p 将所有数据和方法都封装到相应的类中, 这有利于增强数据的 安全性 和模块化,但也有一些数据和方法是特定于具体应用的,天 此这种封装同时也减少 了 代码和模块重用的可能性: 维护阶段:由 于类中夹杂了 其它各种特定于应用的代码, 使得类的功能变得模糊, 维护人员也难以 理解. 此外,由于完成 某个特定需求 ( 如日 志、安全)的代码分散 在各个类中,当这些代码 需要改变时,很难把它们全部找出, 这就给程序的健壮性 带来了隐 患. 由于以 上这些问题的存在,就器要研究一种全新的程序设计方法,以从更高的层次上对 软件系统进行抽象, 将传统的按功能或按对象划分程序摸块的方法转化为按系统关注点 来划 分程序模块,这即是a o p 的基本思想。 1 . 2软件系统中的横切关注点 ( c r o s s c u t c o n c e r n ) 1 . 2 . 1 关注点 在a o p 中,将复杂的系统看作是由 一组相互关联的关注点 ( c o n c e r n )组成。关注点“ 是 一个 特 殊的 目 标、 概 念 或感 兴 趣 区” 川 , 通 俗 地讲 , 既 人 们 所 关 心 的 系 统 中的 各 个方 面 。 从 技 术上讲, 一个典型的软件系统由许多核心级关注点 和系统级关注点组成,如在一张信用卡处 理系统中, 可包括处理支付的核心关注点,以及处理日 志、交易一致性、鉴别用户身份、安 全、 性能 等系统级关注点。 而这些系统级关注点通常都是一些带有横切 ( c r o s s c u t ) 性质的 关注点, 即氦一功能的实现都会影响 到系统中的其他多个模块。图 11 . 1描述了系 统中 包含 安全、日志等一组横切关注点的情况,即这些关注点均需要同时作用于核心功能模块 ( i m p le m e n t a t i o n m o d u le s ) 。 如 果 便 用目 前 的 编程 方 法 学, 这 些 横 跨 多 个 模 块的 横 切 关 注 点 将 使系统很难设计、理解、实现以及发展。 图1 . t . 1 由-组关注点组成的系统 西南农业大学硕士学位论文义献综述 1 . 2 . 2 横切关注点 在系 统开发中,开发人员可将系统需求划分 为核心 模块级需求和系 统级需 求。而许多系 统级需求与 核心模块级需 求之间往往是 一种正交关系 ( 即互相独立) , 且系 统级需求一般横切 多 个 俞模 块 。 如 一 个 典 型 的 企 业 应 用 一 般 由 鉴 别 用 户 身 份 、 日 志 、 资 源 池 、 性 能存 储 管 理等多个关注点组成, 而每个关注点都要横切多 个子系统,如 “ 存储管理”就将影响到每个 有状态的业务对象. 文 4 中分 析了以 下用类来封装银行信 用卡 业务逻辑的 实现框架: p u b l i c c l a s s s o m e b u s i n e s s c l a s s e x t e n d s o t h e r b u s i n e s s c l a s s ( /枷u 数 据成员 刀其它数据成员: 如日 志、数据一致性标志等 刀基类中方 法的祖 盖 p u b l i c v o i d p e r f o r m s o m e o p e r a t i o n ( o p e r a t i o n i n f o r m a t i o n i n f o ) ! 刀身份验证 刀为 对象加锁,以 防其它线程此时对 其操作,以 保证数据的一致性 刀开始记录操作 /执行核心操作 / / 记录操作结束 / / 解锁 刀 其它类似的 操作 p u b l i c v o i d s a v e ( p e r s i t a n c e s t o r a g e p s ) / / 其它操作 在 上 面 的 代 码 中 , 首 先 需 要 考 虑 不 属 于 这 个 类( 核 心 关 注 点 ) 的 其 它 巍 成 员 ; 其 次 , p e r f o r m s o m e o p e r a t i o n ( ) 方 法的 实 现中 执行 了 许 多 非 核 心的 操 作, 红 处 理日 志 、鉴 别 用 户 身 份、多线 程间的安 全、 c a c h e 管理等, 而且在其 它类中也 可能同 样存在 类似的 情况: 第三, 不 清楚执行持久性管理的s a v e) 方法是否应属于 该类的核心部分。 系统中关注点的横切现象是普遍存在的,文 2 中曾指出: e v e n a m o d e s t s i z e d 。 a p p l i c a t i o n c a n e a s i l y p r e s e n t 1 0 0 c r o s s c u t t i n g i s s u e s” ( 即 使 最 适宜 的 应 用 程 序 也 可轻易地找出 1 0 0 个横切的条 目) 1 . 2 . 3横切关注点引 起的问 题 虽然 横切关注点跨越多个模块, 但目 前在 技术上通常只能采用一维 方法学来实现,这使 西南农业人学硕士i位论文 得从需求到实现只能沿着单一的维来映射。这个单一的维通常是核心 模块级实现,其它需求 a l 与 其 相 互 交 织 在 一 19 s 即 需 求 空 间 是n 维 空 间 , 而 实 现 空 间 却 是 一 维 空 间 , 这 样 的 不 匹 配 造成了 从需求到实现的不统一。 采用目 前的方法学来实现横切关注点已 表明存在许多问题, 主要有: ( 1 )代 码交织( c o d e t a n g l i n g ) :一个软件系统的模块可能a 时与数个需求交互; ( 幻 代码分散( c o d e s c a t t e r i n g ) :由 于横切关注点 跨越多个模 块, 所以与 这些横切关 注点相关的 实现代码也跨越所有这些模块. 代码交织和代码分散影响到软件设计与开发的 许多方面,主要表现在: 笋 可跟踪性能差:由于要同时实现多个关注点,使得每一个关 注点与其实现之间的对 应关系 变得模翔,二者之间的映射变相 很差。 生 产 力 下 降 : 届 于 要 同 时 实 现 多 个 关 注 点 , 使 开 发 人 员 将 注 扇从 杨 。 关 注 点 转 移 到外围 关注点, 造成了生产力的一 f 降。 代码重用性差:由于一个模块中包含对多个关注点的实现,使得对类似功能有需求 的其它系统不 能很方便地霍 用该模块. 代码质量差: 交织在一起的 代码含有隐含的问 题。 而且,一次想 要实现多个关注点, 可能会造成某些关羚点汾 有被引起足够的重视。 难以 维护和发展:由 于先前系统的模块性差, 如果系统需 要改动一个功能,则需 要 修改多 个相应的模块才能实现,且 极易造成系统的不一致 性,而且还需大量测试以 确 保 不 会引 起 新的b u g . . 1 . 3目 前提出的解决横切关注点的 方法- 为了 更好地解决系统中横切关注点问题,提高系统的模块化水 平, 许多专家学者都在积 极寻找解决方案, 如早在 1 9 9 1 年, 美国东北大学伽o t t i r e a s te m u n i v e r s i 动计算机利学学院 的 c r i s t a l o p e s 博 十 就 提出7 a d a p t i v e p r o g r a m m i n g ( a p 3 r 应性 编 程 ) 的 概 念 t $ ) 。目 前, 已 出 现了 包括a o p 在内的如混合类 ( m i r e - i n c l a s s e s ) , 设计模 式、与 特定 应用领域相关的解决方 法等多种 技术f4 1 采用 混合类技术,可以推迟一个关注点的实现。在主要的类中包含一个i t s ,合类实例,且 允许系统 其它部分来设置该实例。 如实现业务逻辑的 类中包含一个名为l o g g e r 的彻合类实 例, 其它部分则可通 过文件系统或消息中间 件来设置该l o g g e r 执行记录日 志的操作。这样, 虽然 推迟了日 志操作, 但在所有的记录日 志点, 组合类中都不包含激活日 志操作的代码,也不控 制日志记录信息。 与设 计模式中的 v i s i t o r模式和模板方法类似。行为设计模式可以 推迟实现。然而与混 合类的 情况相同,对操作的控制,即 激活v i s i t i n g 逻辑或调用模板方法都留在了土类中。 与 特定领域相关的解决方法 ( 如框架和应用服务器) 可以使开发人员以 模块化方式解决 西南农业大学硕士学位论文文献综述 - 一一. 一 . 一, 一- 一 一些横切关注点问 题。 例如, 企业j a v a b e a n s ( e j b ) 架构解决了 诸如安全、管 理、 性能、由 容 器管理的持久性等横切关注点。b e a n开发人员只关心业务逻辑,而部署开发人员只关心部署 事宜,如将b e a n 数据映 射为数据库, b e a n 开发人 员无需关心数据的存储事宜言这里,用) m l 映射描述器 ( m a p p i n g d e s c r i p t o r ) 来实现数据持久性横切关注点。 与特定领域相关的解决方法为解决 特定问 题提供了一种特定的解决 方案。该 方法的 一个 缺点 是开发人员 面对每一种解决方案都需要学习新的技术。 而且,由于 这些解决方案是应用 于特定领域,因而并没有直接解决横切关注点引起的问题。 , 4 a o p 的 提出 在1 9 9 7 年的欧洲面向对象编程大 会 ( e c o o p 9 7 )上, 施乐公司的p a l o a l t o( 帕罗阿尔 托 研究中心) 首 席科学家、 大不列顺哥伦比亚大学教 授 g r e g o r k i c z a l e s等人 首次提出了 a d p 的 概念 / , a o p 从 编程 方 法 学的 角 度 对 横切 关 注点 问 鹿 进 行了 有 效的 解决 。 此后 , 在每 年 的 e c o o p 上都 有与a o p 相关的专题研讨会, 各大公司、 大学和研究机构也纷纷投入人员进行研究。 a o p 被 看作 是 标 志 软 件设 计 和 编 写 方 法 基 础 性 转 变 的 三 大 运 动 之 一 7 / 2 0 0 1 年3 月1 5 日, p a l o a l t o 研究中心发 布t 首种支持a o p 的 语言 一 一 a s p e c t j 一种组 件语言;一种或多种a s p e c t 语言; 一个用 来合并两者的a s p e c t 联结器( w e a v e r ) : 利用组 件语言实现的系统组 件: 利用a s p e c t 实现的a s p e c t 组件。 2 . 3 . 2 a o p 程序的设计步骤 a o p 应用程 序包括以下三个明显的开 发步骤: ( 1 ) 将系统需求进行功能 性分解,区分出 普通关注点以 及横切关注点,确定哪些功能是 组 件语言 必须 实现的, 哪些功能可以以a s p e c t 的形式动态加入到系统组件中。 如在1 . 2 . 2 节中 银行信 用卡 实例中, 可将其分解为核心处理 模块、日志模块、身份认 证等多个 模块。 ( 2 ) 单独完 成每 一个关注点 的编码和实现, 构造系统组件和系 统a s p e c t 。 这里的系统组件, 是实现该系 统的基本模块, 对 o o p语言,这些组件可以是类, 对于过程 化程序设计语言, 这 些组件 可是各种函数和a p i 。系统a s p e c t 是指用a o p 语言实现的将横切 关注点封装成的独立 的模块单元。 ( 3 ) 用联结 器指定的 重组规则,将组件 代码 和 a s p e c t 代码进行组 合, 形成最终系统。为 达到此目的, 应用程序需要利用或创 造一种专门指定规则的 语言,用它来 组合不同应用程序 片断。 这种用来指定联结规则的 语言 可以是一种已有编程语言的 扩展,也 可以是一种完全不 重用成为可能。 3 ) 易理解梭帮易维护性赫理解性和易维护性是影响软搏质鼙的内在因察,它对软件帮 笈入受帮维护入舞产生影晌。在o o p 孛,类辘畿豹弓l 入使其薨裔毙过程纯编程嚣好鹃摸袭瞧, 因此也更易于被穰序员理解和维护。但是如上所述的代码缠结嗣题的存在,便o o p 技术在弱 瓒擦性和易维护性方面都难有甏大的提高。k i c z a l e s 经过统计发现:“如果一个他人写的程序 鸯3 7 瑟曩要改魂,对予一令鬟筑秀的较箨嚣发久费,也大壤懿骚我戮筠令”。嚣砖予a o p , 对一个a s p e c t 的修改可以通过联结器影响到系统相关的各个部分,从而太火鼹赢了系统的荔 维护性。另外,对系统特征的横块化封装无疑也能提高程序的易理解性 2 。3a o p 襄廖浚诗 2 ,3 1a o p 程序结构 基于a o p 的应用程序结构姆传统高级语言的斑用程序结构蕊本类馘。传统的高级语言累 绫实现由弦- :兰部分组成: 一种编糍语言: 特定子这种语言的编译嚣; 剥蠲这耪语言绩霉瓣袭粥疆彦。 基于a o p 的系统实现也有以上三个主要部分,但由于 o p 中有了动态a s p e c t 的概念,阂 此可进一步细化为: 一魏缀俘诿言;一种或多秘a s p e c t 语京; 一个用来合并两者豹a s p e c t 联缮器( w e a v e r ) : 利用组件语言实现的系统组件;利
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 推广产品合作协议书范本5篇
- 新解读《GB-T 31075-2014科技平台 通 用术语》
- 个人房屋租赁续签合同5篇
- 返修质保协议书4篇
- 工伤意外死亡合同范本
- 砂石转运居间合同范本
- 桌椅家具租赁合同范本
- 建房屋安全合同范本
- 单位餐饮协议合同范本
- 原材料借用合同范本
- 学术规范与论文写作讲述课件
- 水磨石地面施工技术交底(工程科)
- 手拉葫芦室内钢梁吊装方案
- DB15T 2416-2021蒙餐 风干羊背子
- 中国文化概论 第1章 中国文化的历史地理环境课件
- 危险源登记检查及记录表
- 科研诚信课件
- 2021版特种设备目录
- 中南大学2021年《结构力学(下)》期末考试试卷
- Q∕SY 01747-2020 热力采油过热蒸汽锅炉运行规程
- 高等教育心理学专业知识考试题库与答案
评论
0/150
提交评论