(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf_第1页
(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf_第2页
(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf_第3页
(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf_第4页
(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机应用技术专业论文)基于mvc模式分离横切关注点的软件架构应用研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得重麽 整电太堂或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 一 学位论文作者签名: 擀醐。勺锄钿 学位论文版权使用授权书 本学位论文作者完全了解重庆邮电太堂有关保留、使用学位论 文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权重庆邮电太堂可以将学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期: ,鼻 f “ , 导师签名 日 签字日期: 、 ,7 荡 月 、净j| 重庆邮电大学硕士论文摘要 摘要 o o s d 技术能够较好的解决核心关注点的问题,但是对于横切关注点 的处理以及如何响应软件需求的多变性,仍然具有局限性。而a o s d 技术 正是针对这一问题而被提出的。a o s d 技术是面向对象方法的演绎和发展, 将分离横切关注点的思想贯穿在整个软件开发的生命周期当中,使得从软 件开发早期的分析设计阶段就考虑对横切关注点的分离,从而解决代码实 现时的代码交织和分散的问题,模块化的实现横切特性,实现各个构件或 模块的弱耦合性,从而提高软件的复用性,降低软件维护和扩展的难度。 其中,对于软件架构设计的这个阶段,通过对目前的软件架构设计方法进 行研究和分析,发现传统的架构设计方法还不能分离和描述横切关注点, 而是采用忽略的态度将之放到代码实现的时候再来处理,从而增加了从架 构设计到代码实现平滑过渡的难度,增加了功能组件可重用的难度,最终 导致系统扩展和维护的难度。因此为了能够解决横切关注点所存在的问 题,提高软件开发的效率和质量,就需要设计出一种能够分离横切关注点 的软件架构设计方法。 首先,文中阐述了横切关注点存在的问题和软件架构设计的重要作用 和地位,认真研究了目前常用的一种架构设计模式即m v c 模式,从而改 进形成了一种支持分离横切关注点的a o m v c 设计模式。然后对基于m v c 模式的w e b 框架模式中最早开源的s t r u t s 框架进行改进,使其与s p r i n g 框架相结合,从而形成一种能够支持业务层管理的s t s p f 框架。最后应用 a o m v c 模式将s t s p f 框架进行改进,最后形成了一种高效的能够分离横 切关注点的面向方面的软件架构即“基于m v c 模式分离横切关注点的软 件架构 。该架构能够从数据和功能上实现核心关注点和横切关注点的分 离,从而卖现核心功能模块和横切功能模块的系统级重用,实现系统的高 度模块化,同时还支持a o a d l 的架构描述语言对横切关注点进行描述。 最后通过一个实例的对比证明了基于m v c 模式分离横切关注点的软件架 构设计方法是可行和有效的。 关键词:横切关注点,a o p ,a o s d ,m v c ,软件架构 重塞堂皇盔堂堕主迨銮 垒! 塾兰塑 - _ _ _ _ _ _ - _ _ _ i - - - - _ _ _ _ _ _ - - _ _ - _ _ _ - _ _ _ _ _ _ _ - - _ _ _ _ l _ _ _ _ _ - - _ _ 一一一 a b s t r a c t a l t h o u g ht r a d i t i o n a l l yo b j e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n t ( o o s d ) t e c h n o l o g yd e a lw i t ht h ep r o b l e mo fc o r ec o n c e r n sw e l l ,i ts t i l l h a si n t r i n s i c l i m i t a t i o n si nt h ep r o b l e mo fc r o s s c u t t i n gc o n c e r n sa n dh o wt or e s p o n d d i v e r s i t y o fd e m a n d 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 ) t e c h n o l o g yi s b o r nf o rs o l v et h i sp r o b l e mi nd e a l i n gw i t hc r o s s c u t t i n g c o n c e r n s a o s dt e c h n o l o g yi si n t e r p r e t a t i o na n dd e v e l o p m e n to fo o s d ;i t p u tt h ei d e ao fs e p a r a t i o no fc r o s s c u t t i n gc o n c e r n si n t ot h ew h o l es o f t w a r e d e v e l o p m e n tl i f ec y c l e ,m a k e sc r o s s c u t t i n gc o n c e r n st ob es e p a r a t e df r o mi n t h ee a r l yd e s i g ns t a g eo fs o f t w a r ed e v e l o p m e n tp r o c e s s t h u si td e a lw i t ht h e p r o b l e mo fc o d et a n g l i n ga n dc o d es c a t t i n ga n dm o d u l a ri m p l e m e n t a t i o no f c r o s s c u t t i n g c h a r a c t e r i s t i c s , r e a l i z et h ew e a kc o u p l i n gb e t w e e nv a r i o u s c o m p o n e n t so rm o d u l e s ,s oa st oe n h a n c et h es o f t w a r er e u s i n ga n d r e d u c et h e d i 衔c u l t yo fs o f t w a r em a i n t e n a n c ea n de x p a n s i o n a m o n gt h e m ,t h es o f t w a r e a r c h i t e c t u r ed e s i g n e df 0 rt h i ss t a g e ,t h r o u g hr e s e a r c h i n ga n da n a l y s i n gt h e c u r r e n tm e t h o d s ,w ef 0 u n dt h et r a d i t i o n a lm e t h o d so fa r c h i t e c t u r ed e s i g na n d d e s c r i p t i o nc a nn o ts e p a r a tf r o mc r o s s c u t t i n gc o n c e r n s ,b u tt oi g n o r et h e m u n t i lt h es t a g eo fc o d i n g ,t h u si n c r e a s i n gt h ed i f f i c u l t yo fs m o o t ht r a n s i t i o n f r o ma r c h i t e c t u r ed e s i g nt oc o d i n ga n dt h er e u s a b l ed i f n c u l t yo ff u n c t i o n a l c o m p o n e n t s t h e r e f | 0 r e ,i no r d e rt os o l v et h ep r o b l e mo fc r o s s c u t t i n gc o n c e r n s a n di m p r o v et h ee f n c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t ,w en e e dt o d e s i g nak i n do fs o f l t w a r ea r c h i t e c t u r et os e p a r a t et h ec r o s s c u t t i n gc o n c e r n s a tt h eb e g i n n i n go ft h ep a p e r w ed e s c r i b e dt h ep r o b l e m0 fe x i s t e n c eo f c r o s s c u t t i n gc o n c e r n sa n dt h ei m p o n a n tr o l eo fs o f t w a r ea r c h i t e c t u r ei nt h e e n t i r es o f t w a r ed e v e l o p m e n tl i f ec y c l e ,r e s e a r c ht h ei d e ao ft h ec u r r e n tm v c p a t t e r n ,m o d i f yi ta n ds h a p eak i n do fn e wa o m v cp a t t e r n a n dt h e nm o d i f y t h es t r u t sf r a m e w o r kw h i c hi st h ew e bm u l t i l a y e r a p p l i c a t i o ns y s t e m f r a m e w o r kb a s e do nm v cp a t t e m ,c o m b i n ei tw i t ht h es p r i n gf r a m e w o r ka n d g e tak i n do fs t s p ff r a m e w o r kw h i c hs u p p o r tt h em a n a g e m e n to fs e r v i c e l a y e r 。t h e na p p l yt h ea o m v cp a t t e r nt om o d i f ys t s p ff r a m e w o r k ,p r o p o s e a na s p e c t o r i e n t e ds o f t w a r ea r c h i t e c t u r ew h i c hc a ne f n c i e n t l ys e p a r a t ea n d i m p l e m e n tc r o s s c u t t i n g c o n c e r n s , t h a ti sm v cb a s e d s e p a r a t i o n o f 一 c r o s s c u t t i n gc o n c e r n so fs o f t w a r ea r c h i t e c t u r e ( m s c c s a ) i tc a nr e a l i z e s e p a r a t i o nb e t w e e nc r o s s c u t t i n gc o n c e m sa n dc o r ec o n c e r n sf r o mf u n c t i o na n d d a t a ,s oa st or e a l i z et h es y s t e mr e u s eo ft h ec o r ef u n c t i o nm o d u l e sa n dt h e c r o s s c u t t i n gf u n c t i o nm o d u l e ,h i g h l ys y s t e mm o d u l a r i z a t i o n ,a n da l s os u p p o r t t h ea o a d l ( a s p e c t o r i e n t e da r c h i t e c t u r ed e s c r i p t i o nl a n g v a g e ) t od e s c r i b e t h ec r o s s c u t t i n gc o n c e r n s f i n a l l y ,t h r o u g hac o n l p a r is o no fe x a m p l es h o w i n g t h ei d e aa n dd e s i g nm e t h o do ft h i sp a p e ra n dp r o v i n gt h ed e s i g nm e t h o do f m s c c s ai sf e a s i b l ea n de f 艳c t i v e k e y w o r d s : c r o s s c u t t i n g c o n c e r n s ,a o p a o s d , m v c , s o f t w a r e a r c h i t e c t u r e m 2 2a o s d 的发展现状8 2 3a o s d 的优势1 0 2 4a o s d 相关的重要概念1 l 2 5a o s d 的实现技术上1 2 2 5 1a o s d 的实现机制1 2 2 5 2a o s d 的主流实现技术1 4 2 5 3a o s d 主流实现技术的性能1 5 2 6 本章小结一1 5 第三章软件架构的研究1 6 3 1 软件架构的定义1 6 3 2 软件架构的研究意义1 7 3 3 软件架构在软件生命周期中的研究现状1 7 3 4 软件架构中的横切现象1 8 3 5 本章小结1 9 第四章基于m v c 模式分离横切关注点的软件架构2 0 4 1m v c 模式2 0 4 1 1m v c 模式的简介2 0 4 1 2m v c 模式的优缺点2 2 4 2a o m v c 模式2 4 4 2 1a o m v c 模式的设计_ 2 4 i v 重庆邮电大学硕士论文 目录 4 2 2a o m v c 模式的优点2 5 4 3m s c c s a 架构2 5 4 4 第五章 5 1 5 2 5 3 5 。4 4 3 1s t r u t s 框架分析2 5 4 3 2s p r i n g 框架分析2 8 4 3 3s t s p f 框架2 9 4 3 4m s c c s a 架构的设计3 5 4 3 5m s c c s a 架构支持a o a d l 的语言描述3 6 4 3 6m s c c s a 架构的优点分析4 0 本章小结4 0 m s c c s a 架构的实现与分析4 l 系统分析:4 l 对比耦合度和重用性一4 2 5 2 1 传统架构实现系统的耦合度和重用性分析4 2 5 2 2m s c c s a 架构实现系统的耦合度和重用性分析4 6 对比扩展性4 8 对比执行效率一4 9 5 4 1 实验环境5 0 5 4 2 实验结果分析5 1 5 5 本章小结5 2 第六章总结及未来工作5 3 6 1 总结5 3 6 2 未来工作5 4 致谢:5 5 攻读硕士学位期间从事的科研工作及取得的研究成果5 6 参考文献5 7 v 1 1 研究背景 第一章绪论 在传统的软件开发过程中,面向对象的方法借助于面向对象分析、设 计和实现的技术,很好地解决了软件系统中问题域转换为软件系统的问 题。该方法更多的是注重将系统分解为主要的功能单元,识别关注点的其 它问题,使软件开发人员不但能编写主要功能的代码模块,还能确保所有 关注点的其他问题在代码的适当位置进行处理。有时这些关注点被包装在 行为模块本身中,如子程序、方法或过程。但大多数情况下,共享上下文 的程度或上下文切换的代价必然会导致主要功能的指令与其他关注点混 杂造成横切问题。这样传统的开发过程要求软件开发人员牢记所需要做的 所有事情,例如如何处理每个事务,如何解决与可能的交互有关的问题, 以及如何在正确的时间执行正确的行为等。如果将多重关注点调用代码的 责任分散给多个软件开发人员,系统将无法实现高内聚低耦合的质量要 求,这会导致系统设计非常复杂。对于需要处理的关注点可能造成潜在的 维护性灾难,如一个关注点的需求发生变化了,那么系统维护者就必须找 到并修改分散在各个模块中的代码,造成系统维护的难度。所以,面向对 象的方法不能很好地解决跨越多个模块的横切行为。 a o s d ( a s p e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n t ) 技术正是为了克服 o o s d ( o b j e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n t ) 的局限性而产生的。它使 开发者能够更好地将那些本不应该纠缠在一起的任务( 横切关注点) 分离 开,从而为系统提供更好的封装性和操作性。其核心思想就是在整个软件 开发的生命周期中,把一个复杂的软件系统看作是由多个关注点组合实现 的。其中关注点分为两部分:核心关注点和横切关注点。核心关注点指的 是系统将要满足的业务逻辑需求,表现为各个业务子系统,如财务系统、 人事系统、学生管理系统等;而横切关注点则是各个业务子系统都可能涉 及的一些公共需求,例如日志记录、权限管理、异常处理等等。传统的类 和服务等模块化技术都无法很好的使这些横切关注点相互分离。所以无论 使用哪种面向对象的语言来开发系统,它们都无法很好的、有效地处理这 些存在的横切关注点,需要寻找一种新的方法来解决这些横切关注点所存 在的问题,从而促进软件开发技术的持续发展。 经常要同时考虑业务逻辑、性能、同步、日志和安全问题,兼顾各方面的 需求导致相应关注点的实现元素同时出现,引起代码混乱【3 】。 ( 2 ) 代码分散 对于一般的软件系统大都包含几十个、几百个甚至更多的功能模块, 许多模块都需要实现和处理相同的横切关注点,这就造成了横切关注点的 分离实现问题。如图1 1 描述了一个软件系统中的部分横切关注点的分离 【4 j 。从图1 1 中可以看到系统的日志记录、安全认证和持久化这三个横切 关注点散布在多个功能模块中,然后分别对其进行分离形成了三个分别独 立的模块。 r 黟嬲镧 固 持久化 i i 塑篓苎一 图1 1 一个软件系统中分离横切关注点的描述 ( 3 ) 问题空间和解空间的不匹配 系统的核心关注点和横切关注点原本处在问题空间的不同维度上,当 2 重庆邮电大学硕士论文第一章绪论 前的技术却硬性的采用一维的方法学来处理这种多维的问题。使得实现相 对应的问题强行限制在一维的空间里,而这个一维的空间就是核心业务模 块,其它需要的实现被同时嵌入在这个具有核心地位的空间中。换句话说, 这种情况形成的格局就是问题空间是n 维的,而解空间却是一维的,造成 问题空间和解空间的不匹配,从而导致从需求到实现之间的沟壑,不能形 成很好的映射关系【5 l 。如图1 2 所示给出了这个问题的直观描述p j 。 问题空间 主导维度 一 解空间 图1 2 问题空间与解空间的匹配描述 通过对上述存在的问题进行分析,可以知道它们会从多个方面影响系 统的设计和开发,其主要表现在如下几个方面: ( 1 ) 可读性差:在同一个模块中,同时实现几个关注点,降低了不同 关注点之间的独立性,使得关注点的需求与实现之间的对应关系不明显。 ( 2 ) 代码重用率低:由于一个模块实现了多个关注点,因此其它需要 类似功能的系统不能马上使用该模块,从而降低了代码的重用率。 ( 3 ) 开发效率降低:在同一个模块中,同时实现几个关注点会使开发 人员的注意力分散,导致开发效率降低。 ( 4 ) 代码质量差:代码的混乱掩盖了代码中隐藏的问题,且由于需要 同时处理多个关注点,应该特别注意的关注点却得不到应有的关注。 ( 5 ) 维护和扩展困难:狭窄的视角和有限的资源使开发人员仅仅局限 于完成当前的关注点设计,而对于系统的可扩展性考虑不够全面,从而导 致对于新的需求必须重新实现。由于一些关注点的实现并没有模块化,因 此一旦这些没有模块化的关注点实现发生变动,便会牵涉到多个模块,给 系统的维护带来很大的困难。同时,为了新需求修改子系统可能会带来数 据的不一致,而且还需要相当规模的测试来保证这些修改不会带来新的漏 洞,从而造成维护和修改的困难。 重庆邮电大学硕士论文 第一章绪论 1 2 2 横切关注点分离方法的研究现状 为了解决系统中横切关注点的问题,提高软件系统的模块化程度,国 内外许多专家学者以及业界人士都在积极的寻找解决方案早在1 9 9 1 年, 美国东北大学计算机科学学院的c r i s t al o p e s 博士就提出了适应性编程 ( a d a p t i v ep r o g r a m m i n g ) 的概念【6 1 。目前,业界研究讨论的比较多的是由 施乐公司帕罗阿尔托研究中心的首席科学家,大不列颠哥伦比亚大学的教 授g r e g o rk i c z a l e s 等人在1 9 9 7 年的面向对象编程欧洲大会上提出的a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 技术【7 1 。也正是由于a o p 的提出才逐渐 形成了现在研究的热点即在整个软件开发生命周期中的各个阶段对横切 关注点进行分离处理的技术一一面向方面的软件开发技术( a o s d ) 。除了 目前比较热门的a o s d 技术外,还有行为型设计模式、混合类技术、成分 过滤器以及逻辑元数据编程等多种模块化横切关注点的技术被提出【8 j 。 适应性编程技术应用了图形语言技术在“方面 成分和类之间建立了 灵活的链接,解决了面向对象技术对贯穿特性的处理问题1 9 1 0 】。该方法认 为对象只应了解与自己紧密相关的其它对象,因此在新的程序结构的工作 方面,将对象行为概念的表达从对象结构概念中分离出来,通过抽象类的 结构来避免贯穿特性所产生的代码散布和代码交织问题。 行为型设计模式的方法就是允许推迟具体实现。如象t e m p l a t em e t h o d 模式和v i s i t o r 就属于行为型设计模式【1 1 1 。但是需要注意的是如果要调用 v i s i t o r 和t e m p l a t em e t h o d 的逻辑,其操作的控制仍然要留给基本类。 混合类技术和行为型设计模式类似也是推迟关注点的实现来达到目 的。主要思想是在基本类中包含一个混入类的实例,且允许系统的其它部 分设置这个实例,但其操作的控制仍然要留给基本类。 成分过滤器建立在对象之间的本地消息传递机制上。它的基本思想是 通过操纵对象接收或发出的消息来对横切特性进行编码,并将非横切特性 留给对象实现。该方法非常类似于现在s p r i n g 框架中使用的一种调用拦截 器的设计模式。成分过滤器把对象封装在过滤器内,由过滤器处理对象接 收到的消息。过滤器拥有对象接收的消息的横切通路。但是由于对象过滤 器的附加装置被作为类定义的一部分,所以在处理包含在多个类中的横切 方面时,成分过滤器不如目前使用较多的a s p e c t j 合适【1 2 】。 逻辑元数据编程方法是由d ev o l d e r 提出的,简称l m p ,该方法可以 像一种a o p 的工具包一样提供服务。其核心思想是切入点指定器的等价 物对特定的横切关注点使用逻辑查询【l3 1 4 】。逻辑元数据编程方法能够利用 4 重庆邮电大学硕士论文第一章绪论 定义参数的切入点指定器的一致性,它也支持更高层次的切入点指定器。 在这个方面曾经有相关的研究者考虑过拓展a s p e c t j 的这种能力,但是为 了使该语言能够更简单更容易地被j a v a 开发者学会并掌握,最后还是放弃 了这个想法。 a o s d 技术【1 6 l 是为了促进a o p 的发展及其横切思想的演进而提出来 的在整个软件开发生命周期的各个阶段实现对横切关注点分离和处理的 方法。它为开发人员提供了二个分别独立分析和设计系统的各个核心关注 点和横切关注点的机制,并能够在开发的后期,实现横切关注点与相关核 心关注点的集成,该方法通过引入“方面( a s p e c t ) ”来描述横切关注点, 然后将方面作为一个独立的模块封装起来,对于核心关注点仍然使用面向 对象的方法实现,而对于横切关注点就使用面向方面的方法实现,且模块 彼此独立,然后在系统组装时才将各方面与相关的主代码织入在一起【l 列。 但是,a o s d 方法是构件在o o s d 方法基础之上的,是对o o s d 方法的一 种继承和发展,二者互为补充,对于o o s d 来说主要用于为同一对象层次 的公共行为建模,它的缺点就是不能更好的将公共行为应用到多个无关对 象模型之间,而a o s d 恰恰能够解决这一问题。 1 3 主要研究内容 通过前面的分析论述,可以看出传统的技术对于横切关注点的分离和 实现都存在着诸多的问题,逐渐成为制约软件开发技术的发展。因此在软 件开发中,分离横切关注点是十分重要的,需要找到一种新的软件开发方 法对软件系统中的横切关注点进行分离和处理,解决系统中因存在的横切 关注点而带来的问题,并使横切关注点模块化,从而促进功能模块和非功 能模块彼此的复用,使得系统更容易理解、维护和扩展。而软件架构设计 方法作为软件开发生命周期中的重要一环,对其考虑在该阶段如何分离和 实现横切关注点这一问题,也随着a o s d 的发展逐渐成为领域内的专家和 学者关注的焦点。a o s d 技术作为一种新兴的分离实现横切关注点的软件 开发技术,所存在的优势已经得到了广泛的关注,但是就目前而言这项新 技术在实际项目中的应用却很落后,未能充分发挥出所具有的优势和特 点。并且由于a o s d 技术并没能提供一个可以很好的分离横切关注点的软 件架构设计方法,使得开发人员在使用a o p 技术时存在难度,不但增加 了开发成本还拖延了开发进度。 因此设计出一种高性能的能够描述实现横切关注点的面向方面的软 重庆邮电大学硕士论文 第一章绪论 件架构设计方法就变的很重要。所以通过分析现有架构设计方法在分离处 理横切关注点上存在的问题,本文认真研究了m v c 的设计模式,通过分 析发现其不足并对其做了相应的改进,然后改进形成了a o m v c 这种支持 “方面的设计模式。对基于m v c 模式的w e b 框架模式中最早开源的 s t r u t s 框架进行改进,使其与s p r i n g 框架相结合,从而形成一个能够支持 业务层的s t s p f 框架。最后应用a o m v c 模式将s t s p f 框架进行改进, 形成了一种高效的能够分离横切关注点且支持a o a d l ( a s p e c t o r i e n t e d a r c h i t e c t u r ed e s c f i p t i o nl a n g u a g e ) 架构描述语言的面向方面的软件架构即 “基于m v c 模式分离横切关注点的软件架构 。最后,通过一个实例进一 步阐述了本文的思想和设计方法,通过实例的对比证明了基于m v c 模式 分离横切关注点的软件架构设计方法是可行和有效的。 1 4 本文组织结构 论文的组织结构如下: , 第一章介绍了本文的研究背景,横切关注点存在的问题和分离实现横 切关注点的研究现状,并介绍了本文的主要研究内容; 第二章介绍了面向方面软件开发技术的发展历史、发展现状、基本概 念、所拥有的优势以及主要的实现技术; 第三章介绍了软件架构的定义、研究意义、软件架构在软件生命周期 中的研究现状以及软件架构中的横切现象; 第四章改进形成了一种基于m v c 模式分离横切关注点的软件架构。 主要分为三个部分介绍:第一部分主要讨论了m v c 模式在处理横切关注 点方面所存在的问题,改进形成了一种a o m v c 模式;第二部分主要讨论 了s t r u t s 框架和s p r i n g 框架,从而改进形成了支持业务逻辑管理的s t s p f 框架;第三部分将s t s p f 框架改进形成了一种能够支持分离和描述横切关 注点的软件架构设计方法并分析了该架构的优点; 第五章是通过一个实例应用本文改进的方法,进行了分离横切关注点 的架构设计并与传统方法进行对比说明其可行性和有效性; 第六章对本文的工作进行了总结,并探讨了在本文工作的基础上还需 要继续开展和完善的工作。 6 重庆邮电大学硕士论文第二章面向方面的软件开发技术研究 第二章面向方面的软件开发技术研究 2 1 面向方面的软件开发技术概述 关于a o p 概念的提出,虽然业界一直有争议,但普遍接受的说法是 该概念由g r e g o rjk i c z z a l e s 等人在1 9 9 7 年举行的欧洲面向对象编程大会 上首次提出,然后于2 0 0 1 年3 月由施乐公司帕洛阿尔托研究中心发布了 第一种支持a o p 的语言a s p e c t j 而形成。随后由于a o p 技术的进一步发 展而形成了贯穿于整个软件开发生命周期中的面向方面的软件开发技术 【1 6 】 o 面向方面的软件开发技术从软件工程的角度规范了整个软件系统开 发的过程,允许系统性的识别,模块化表达和重组横切关注点。a o s d 不 仅仅指在编程阶段需要面向方面的语言支持,而且在软件开发过程的各个 环节都将渗透面向方面的概念思想和方法,例如面向方面的需求工程,面 向方面的架构设计,面向方面的建模,面向方面的程序实现,面向方面的 软件测试和维护。如图2 1 所示描述了面向方面软件开发的基本过程1 1 7 j 。 目目目 图2 1 面向方面的软件开发过程 面向方面的需求工程:是采用a o s d 进行软件开发时所进行的一种需 求工程方法,是a o s d 进行开发的第一个步骤,目前的研究主要集中在建 立需求分析的框架,使分析过程标准化。a o r e ( a s p e c t o r i e n t e d r e q u i r e m e n te n g i n e e r i n g ) 另一种重要的作用就是可以直接指导开发,促进 了基于用例的面向方面软件开发的发展。 面向方面的架构设计:在基本思想和设计理念方面和传统的软件架构 设计并无完全本质的区别,但是它在原有的架构设计的思想上加入了一种 7 葛售甸 重庆邮电大学硕士论文第二章面向方面的软件开发技术研究 支持面向方面的思想设计,从而解决了存在的横切问题,从抽象的层次上 考虑了提高模块的耦合度和软件的重用性,最终达到了软件复杂度的降 低。但是目前这一领域仍没有一个成熟的和广泛认可的架构设计方法,将 会成为a o s d 研究中的重要一环。 面向方面建模:是a o s d 的重要环节,基本目的是发现一种普遍适用 的设计方法表达面向方面软件系统设计的特点和概念,对系统的横切行为 从较高的抽象层次上进行建模。研究范围涉及软件架构实现细节,模型的 测试和验证,模型到编程语言的映射等问题,目前这一领域仍没有一个成 熟的和广泛认可的标准。a o m ( a s p e c t o r i e n t e dm o d e l i n g ) 也将是下一步 a o s d 研究热点中的重点问题。 , 面向方面的测试和维护:软件测试是保证软件质量和系统健壮性的必 要步骤,使得软件在交付之前尽可能多的发现软件规格说明、软件设计和 编码的错误。而在交付之后由于需求和环境的变化及自身的缺陷,对软件 进行维护也就变的必要,调查显示软件维护费用占整个软件开发总费用的 8 0 【l 引,所以面向方面的测试和维护也很重要。由于在软件开发的各个阶 段都有面向方面的特点,所以a o s d 的松散耦合和横切关注点的模块化分 离特点,正好能够使软件维护的技术难度和成本下降。 。a o s d 这个领域仍很年轻,许多概念和术语没有得到严格的定义和标 准化,其中大量的专有名词和技术概念都是从a s p e c t j 发展而来,选择和 精确定义一套“普遍的面向方面概念一而不是纠缠在实现细节上对a o s d 的发展至关重要,目前a o s d 欧洲联盟已经试图选择和定义一个a o s d 概 念的最小子集,用于研究人员或开发人员交流和设计使用。 2 2a o s d 的发展现状 目前a o s d 还没有渗入到软件工程的各个领域,面向方面软件开发技 术仍处于技术启动阶段,虽然已经有一些实用语言的支持,但仍然没有得 到大规模的实践和应用,很多领域有待于迸一步的研究。目前重要的研究 内容应该是从理论上理解面向方面的软件开发技术,并逐步完善面向方面 软件工程方法学的整个体系。“技术成熟度曲线 描述的是一种普遍趋势, 通过查看一门技术在曲线中的位置,可以合理地评估该技术的成熟度。一 项新技术通常经过五个成熟阶段:技术启动阶段,期望扩大阶段( 波峰) , 期望破灭阶段( 谷底) ,标准化阶段,生产力阶段。如图2 2 所示【1 9 】,可 以看出a o s d 处于前端的启动阶段,同时该曲线也标识了几种参考技术, 重庆邮电大学硕士论文第二章面向方面的软件开发技术研究 包括处于标准化时期的u m l 和生产力稳定时期的j a v a 语言。 高 低 启动 扩大破灭标准化 稳定 图2 2 技术成熟度曲线( h y p ec y c l e ) 目前,在国内外a o s d 的研究工作已经取得了长足的进展,其中比较 有代表性的研究组织是从2 0 0 2 年开始举行的a o s d 国际年度会议和a o s d 欧洲联盟。他们所研究的内容均涉及到面向方面的软件开发语言,面向方 面的分析和设计,面向方面的实现方法和应用领域等各种高级课题。而国 内在这方面比较突出的是中科院软件研究所和上海交通大学等一些高校, 但是其研究内容还主要集中在对软件开发语言的完善方面,对于软件开发 较早阶段的分析和设计方面涉及的较少。通过各方面的信息收集,可以总 结出下一步a o s d 的研究重点将主要集中在以下几个方面: ( 1 ) 面向方面的软件需求分析:在需求阶段就开始做到对横切关注点 的分离,建立需求分析的框架,使分析过程标准化,促进面向方面软件开 发的发展。 ( 2 ) 面向方面软件架构和建模研究:模块化是降低软件开发难度的有 效方法,面向方面软件架构和建模的目标就是针对面向方面系统的特点对 静态结构和动态行为进行详细的可视化描述,从而降低软件开发的难度, 很好的完成需求和实现之间的映射关系,同时通过降低模块间的耦合度提 高系统的复用度和可维护性。 ( 3 ) 面向方面的编程语言研究:虽然目前已经有大量的支持面向方面 思想的语言出现,但是能够得到在工业界大范围的应用还有很长的一段路 要走,语言使用的简易性、实用性和性能以及开发工具和对环境的支持都 还需要进一步的改善和优化,其中更重要的是其语义的正确性还需要进一 步严格的验证。 ( 4 ) a o s d 在分布式系统中的应用:分布式系统是对持久化、分布性、 9 重庆邮电大学硕士论文第二章面向方面的软件开发技术研究 同步性有着特殊要求的系统,这些需求都具有横切行为的特征,如何更好 的使用面向方面的思想来模块化的控制这些行为将具有广泛的研究空间 和深远的研究意义。 ( 5 ) a o s d 在嵌入式系统中的应用:嵌入式系统是一个有着像同步、 实时控制,并行计算等多方面要求的系统,但同时在存储容量,c p u 速度 等各方面存在着较严格的资源限制,a o s d 的引入必将更好地实现高性能 系统在各方面的要求。 2 3a o s d 的优势 a o s d 使得单独的模块更具有清晰的职责,允许模块仅仅围绕某一个 核心关注点,不再关心和依赖其他横切关注点的实施,达到了将横切关注 点与核心关注点的分离。例如对于a t m 机上的取款模块就不再关心客户 信息的验证和日志的记录,即使在实现的模块中也不存在这样的处理代 码,从而使得系统更加的松散耦合,达到了对系统的可追踪性。其主要优 点如下所示: ( 1 ) 更高的模块化 a o s d 提供了一种以最小的耦合来单独处理各种关注点的机制,使得 横切行为得到结构化,局部化的处理。横切关注点的有效分离消除了传统 程序设计中代码的“分散 和“交织一问题,增强了软件开发的模块化程 度,提高了系统的可维护性。 ( 2 ) 容易演化和扩展 a o s d 提供了“方面( a s p e c t ) 的机制,将其作为独立的模块封装横 切关注点。并且使得核心模块和“方面之间具有不知觉性,这种不知觉 性使得核心模块不知道有横切自己的“方面存在,所以如果添加新的功 能只是增加了新的“方面 而不会改变核心模块,相反,增加新的模块也 使得具有横切条件的“方面 立即对其发挥效用,达到一种紧密演化的效 果,具备对新的需求快速反应的能力。 ( 3 ) 设计策略的延迟绑定 对于现在的系统设计,开发人员往往因考虑将来的变化导致过度设 计,或者因考虑不足导致设计缺陷的问题。随着a o s d 的出现,开发人员 就可以集中精力设计目前的需求,延迟决定未来需求的设计策略,因为新 的横切需求只需创造一个新的“方面。随着技术的发展,a o s d 与极限编 程的关系将更加紧密,因为添加新的功能并不会导致大范围的修改,因此 l o 雾要鬻爱颡臻嚣瑟零霎焉幕露雾棼巍糕懑豸冀焉蠹譬薏麓嚣勇惹爨霹麓+ 臻j 搿露瑟j 霖焉曩瓣i j 罨豢嚣群嚣:嚣鼍茄耘i 嚣碴筇 重庆邮电大学硕士论文第二章面向方面的软件开发技术研究 现在可以恰到好处的完成目前需求所要求的功能,而不需要考虑将来的变 化,与极限编程的本质“y o ua r en o tg o n n an e e di t ( y a g n i ) 相符合。 ( 4 ) 提高了重用性 可重用性的关键标志就是实现系统的松散耦合性,a o s d 允许每一个 “方面作为一个独立分割的模块,与传统实现相比这些模块更松散耦合, 特别是核心模块不知道其它模块的存在,仅仅是编织规则确定了模块间的 关联关系,通过简单的改变编织规则完成对系统的维护和修改,从而提高 核心模块和“方面”模块的可重用性。 2 4a o s d 相关的重要概念 对于a o s d 的研究,有几个重要的概念需要了解和掌握,它们分别是: ( 1 ) 关注点、核心关注点、横切关注点 关注点是一个为了满足整个系统的目标而必须被处理的特殊的需求 或考虑拉们。关注点可以分为两类:核心关注点和横切关注点,其中核心关 注点实现模块的主要功能,而横切关注点捕获横跨多个模块的系统级和外 围的需求。例如一个典型的企业应用系统可能需要处理的横切关注点有: 权限管理、日志记录、存储管理、数据持久化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论