(计算机应用技术专业论文)基于mvc模式的struts框架的研究与应用.pdf_第1页
(计算机应用技术专业论文)基于mvc模式的struts框架的研究与应用.pdf_第2页
(计算机应用技术专业论文)基于mvc模式的struts框架的研究与应用.pdf_第3页
(计算机应用技术专业论文)基于mvc模式的struts框架的研究与应用.pdf_第4页
(计算机应用技术专业论文)基于mvc模式的struts框架的研究与应用.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

基于m v c 模式的s t r u t s 框架的研究与应用 中文摘要 基于m v c 模式的s t r u t s 框架的研究与应用 中文摘要 目前,随着软件规模的增大,复杂性的提高,要开发出更快、更好、更便宜的软 件,仅仅通过提升技术来生产是不够的,还要有效地利用复用,特别是较高层次上的 复用。设计模式是软件工程借鉴建筑工程的有效复用概念,是在长期的软件开发和研 究中积累的宝贵财富。框架作为一种为特定领域应用提供的可扩展的体系结构实例, 当它和经过实践检验的设计模式结合时,不仅获得了优秀的设计思想,而且借助这个 基础平台自动复用了相关领域算法,从而为软件开发提供了一条捷径。 基于上述背景,本文主要对j 2 e e 平台上典型的m v c 模式和它的具体实现 s 饥地框架进行了分析和研究,并在此基础上,利用s 协1 t s 框架开发了一个网上销 售系统。论文具体研究工作主要包括以下几个方面: ( 1 ) 当前软件开发在实现系统功能的同时,人们更加注重系统的非功能属性。 论文首先对软件体系结构的非功能特性进行了分析,讨论了设计模式的相关特性; ( 2 ) 探讨了m v c 设计模式结构,对其优势和不足进行了分析。在此基础上, 分析了m v c 模式到s h n a t s 框架的映射,给出了关键组件在框架中的作用; ( 3 ) 典型的应用框架往往包含一些较小的设计模式。文中分析了其中两个重要 的j 2 e e 核心模式应用控制器和环境对象,分析了它们在框架中的应用,给出了对 系统框架的影响; ( 4 ) 探讨了基于s t r u t s 框架的软件开发模式,提出了针对不同系统规模和要求 来选取不同技术、采用多层架构的开发思路,并在网上电子商城的开发中得到了应用。 实践证明,在软件开发中引入合适的设计模式,利用成熟的框架技术可以保证系 统结构的清晰,提高开发效率以及加强系统的非功能特性。 关键字:设计模式;m v c 模式;s u n a t s 框架;软件复用 作者:马刚 指导老师:张广泉 垒! ! 塑璺 堕! ! 生竺曼垒监! 丝苎! ! ! ! ! ! 竺堡! 竺型唑! ! ! 型! ! 坚! ! 竺竺 r e s e a r c ha n d a p p l i c a t i o no f s t r u t sf r a m e w o r k b a s e do n m v cp a t t e r n a b s t r a c t a tp r e s e n t , w i t ht h ee x p a n s i o no ft h es o f t w a r es c a ea n dt h ei m p r o v e m e n to ft h e c o m p l e x i t yo f t h es o f t w a r e ,i ti sn o te n o u g ht op r o d u c eo n l yt h r o u g hi m p r o v i n gt e c h n o l o g y i no r d e rt od e v e l o pf a s t e r , b e t t e ra n dc h e a p e rs o f t w a r e w es h o u l dm a k ee f f e c t i v eu s eo f r e u s ee s p e c i a l l yt h et e 稿s ea tah i g h e rl e v e l d e s i g np a t t e r ni sa l le f f e c t i v e 钱m s ec o n c e p t t h a tw 勰b o r r o w e db yt h ep r o j e c to f s o f t w a r ef r o m “c o n s t r u c t i o n a le n g i n e e r i n g ”a n di sa v a l u a b l ei i - g a s u r et h a tw a sa c c u m u l a t e di nt h el o n gp r o c e s so fd e v e l o p i n ga n ds t u d y i n g s o f t w a r e ,w h e nf r a m e w o r k , a sac a s eo fe x p a n d a b l ea r c h i t e c t u r ep r o v i d i n gf o ra p p l i c a t i o n i nas p e c i f i cf i e l d ,c o m b i n e sw i t had e s i g np a t t e r nw h i c hw a st e s t e dt h r o u g hp r a c t i c e ,n o t o n l ya nw o n d e r f u ld e s i g ni d e aw i l lb eg o t , b u ta l s oa na l g o r i t h mo faf i e l dc o n c e r n e dw i l l b ea u t o m a t i c a l l yr e u s c dw i mt h eh e l po ft h eb a s i cp l a t f o r m t h u sas h o r t c u tw i l lb e p r o v i d e df o rs o f t w a r ed e v e l o p m e n t b a s e do nt h eb a c k g r o u n d s , am a i ns t u d ya n dr e s e a r c h h a sb e e nd o n ei nt h et h e s i st ot h et y p i c a lm v cd e s i g np a t t e r na n di t sc o n c r e t er e a l i z a t i o n s t r u t sf r a m e w o r k , w h i c hi so nt h ej 2 e ep l a t f o r m o nt h eb a s eo fi t ,an e tm a r k e t i n g s y s t e mh a sb e e nd e v e l o p e db ya p p l y i n gt h ef r a m e w o r k t h ec o n c r e t er e s e a r c ho f t h et h e s i s m a i n l yi n c l u d e st h ef o l l o w i n ga s p e c t s : ( 1 ) i nt h ec u r r e n ts o f t w a r ed e v e l o p m e n t , w h i l er e a l i z i n gt h es y s t e mf u n c t i o n ,p e o p l e p a ym o r ea t t e n t i o nt ot h en o t - f i m c t i o np r o p e r t yo fs y s t e m a tt h eb e g i n n i n go ft h et h e s i s , a l la n a l y s i si sd o n eo nt h en o t f u n c t i o nf e a t u r e so ft h es o f t w a r ea r c h i t e c t u r ea n da d i s c u s s i o ni sd o n eo nt h ef e a t u r e so f d e s i g np a t t e r n ( 2 ) as t u d yi sd o n ea b o u tt h es t r u c t u r eo f m v cd e s i g np a t t e r n a na n a l y s i si sd o n eo u t h ea d v a n t a g e sa n dd i s a d v a n t a g e so fi t o nt h eb a s eo fi t , a l l a n a l y s i si sd o n eo nt h e r e p r e s e n t a t i o nf r o mm v cd e s i g np a t t e r nt os t r u t sf r a m e w o r ka n dt h ef u n c t i o no ft h ek e y c o m p o n e n t si nt h ef r a m e w o r ki sd i s c u s s e d ( 3 ) at y p i c a la p p l y i n gf r a m e w o r ku s u a l l yi n c l u d e ss o m es m a l l e rd e s i g np a t t e r n s i nt h e l i r e s e a r c ha n da p p l i c a t i o no fs t r u t sf r a m e w o r kb a s e do i l 眦p a t t e r n t h e s i s ,t w oi m p o r t a n tj 2 e ec o r ep a t t e r n s ,a p p l i c a t i o nc o n t r o l l e ra n dc o n t e x to b j e c t ,i s a n a l y z e d t h e i ra p p l i c a t i o ni nt h ef r a m e w o r ki sa n a l y z e da n dt h e i ri n f l u e n c e o nt h es y s t e m f r a m e w o r ki sd i s c u s s e d ( 4 ) ar e s e a r c hi sd o n eo nt h es o r w a r ed e v e l o p m e n tp a t t e r nb a s e do ns t r u t sf r a m e w o r k t od i f f e r e n ts y s t e ms c a l e sa n dr e q u i r e m e n t s ,t h ed e v e l o p i n gi d e ao fs e l e c t i n gd i f f e r e n t t e c h n o l o g ya n da d o p t i n gm u l t i l a y e rs t r u c t u r e si sb r o u g h tf o r w a r d a n d s t r u t sf r a m e w o r ki s a p p l i e dt ot h er e a ls o f t w a r ed e v e l o p m e n tt h r o u g hd e v e l o p i n g an e te l e c t r o n i cm a r k e t p r a c t i c eh a sp r o v e dt h a ti fas u i t a b l ed e s i g np a t t e r ni sa d o p t e di ns o f t w a r ed e s i g n , m a k i n gu s eo f r i p ef r a m e w o r kt e c h n o l o g yc a ne a l s u r et h ec l e a r n e s so f t h es y s t e ms t r u c t u r e a n di m p r o v et h ed e v e l o p m e n te f f i c i e n c ya n ds t r e n g t h e nt h en o t f u n c t i o nf e a t u r e so f s y s t e m k e y w o r d s :d e s i g np a t t e r n ;m v cp a t t e r n ;s t r u t sf r a m e w o r k ;s o f t w a r er e u s e 1 1 1 w r i t t e nb ym a g a n g s u p e r v i s e db yz h a n gg u a n g q u a n 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生签名:与l 习,1 日 学位论文使用授权声明 期:2 廿d6 、i i 23 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名: 与t 穹tj 日期: 日期: 2 oo 占。1i 2 3 蛰! i :! ! :型 基于) t v c 模式的s t r u t s 框架的研究与应用 第一章绪论 1 1 课题研究目的和意义 第一章绪论 信息时代的到来,随着计算机在国民经济和社会生活中广泛、深入的应用,人们 在越来越多的领域希望把更多、更困难的问题交给计算机去处理。这使得计算机软件 的规模和复杂性与曰俱增,从而使软件技术不断地受到新的挑战。6 0 年代软件危机 的出现就是因为系统和复杂性超出了人们在当时的技术条件下所能驾御的程度。为满 足高质量、高效率的开发和种种日趋复杂、大型的软件系统的需要,软件工程技术受 到更多的关注,成为软件技术中发展较快的学科。此后在软件工程领域,从学术界到 工业界,人们一直在为寻求更先进的软件方法与技术而努力。7 0 年代结构化思想的 出现,8 0 年代面向对象技术的兴起并逐渐盛行,到9 0 年代软件复用和构件化成为新 的热点。每当出现一种先进的方法和技术,都会使软件危机得到一定程度的缓解,然 而这种进步又立刻促使人们把更多、更复杂的问题交给计算机去解决,于是又需要更 先进的方法和技术。 目前,软件系统的规模越来越庞大,其复杂程度也越来越高,这极大地增加了软 件系统开发的难度,然而要开发出来更快、更好、更便宜的软件,仅仅通过提升技术, 更有效地生产软件是不够的,还要借鉴其它工程学科的经验,有效地利用复用,特别 是在较高层次上的复用。 软件复用是在软件开发中避免重复劳动的解决方案,新的软件在已有的软件成分 基础之上构造新的软件系统,该软件可以是已经存在的软件或是专门的可复用组件 等。通过软件复用,可以提高软件开发的效率和质量。近千几年来,面向对象技术出 现并逐步成为主流技术,为软件复用提供了基本的技术支持和保证。软件复用研究重 新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。 j o n e s 将软件复用的对象分为4 种【1 1 :数据复用、程序复用、设计复用、体系结 构复用。这样,软件复用可在实现层、设计层和体系结构层等三个不同的抽象层次上 实现。实现层软件复用是指对已有的程序代码进行复用,它包括源代码组件形式。设 计层软件复用是指对已经存在的软件系统的设计信息进行复用;体系结构复用是将软 第一章绪论基于m v c 模式的s t r u t s 框架的研究与应用 件的框架组织,全局结构设计作为复用对象,可以说是更高抽象层次、更有效的软件 复用。 同其它工程学科一样,软件工程也常常借鉴相关学科的先进成果。模式便是软件 技术人员借鉴建筑工程的有效概念。软件设计在相当大的程度上与建筑设计有可比 性。在建筑方面,世界各地因历史、文化、政治、经济等因素的影响,出现了不同风 格的建筑。同样在软件设计上,经过多年的理论探索和工程实践,逐渐发展了一系列 构造复杂软件系统的方法、技术、模式和风格。软件工程师也在不断地寻求能够表达 和适合构造软件系统的“建筑风格”。设计者通过这些“建筑风格”抽象地描述了复 杂的结构,使得整个系统或其中的一部分,它们的轮廓鲜明、结构清晰、易于理解。 软件体系结构的提出使得人们从更高的层次把握软件系统。通过对软件体系结构 的描述,揭示了软件系统许多重要的语义内容,包括系统演变的轨迹、总体框架,以 及与其它相似系统的依赖关系等【2 1 。软件体系结构中设计模式描述了在设计过程中经 常出现的一类特定设计问题并提供已经证明的解决方案。它使得人们可以更加简单方 便地复用成功的设计和软件体系结构。也可以说,设计模式以及模式语言的提出指明 了一条构建软件体系结构的有效途径。 自1 9 9 4 年,e r i c hg a m m a 等4 人出版重要的著作设计模式:可复用面向对象 的软件基础以来,软件设计模式的思想便深入人心f 3 】。他们提出的2 3 种经典模式 至今仍是开发者的指南。随后研究模式和使用模式成为软件界热门的话题。出现了每 年定期在美国召开的“p a t t e r nl a n g u a g e so f p r o g r a m m i n g ”大会( 或者p l o p ) ,并公 开发表大会论文。后来,f r a n kb u s c h m a n n 等人出版了面向模式的软件体系结构卷 1 :模式系统( p a t t e r n - o r i e n t e da r c h i t e c t u r e v o l u m e1 :as y s t e mo f p a t t e r n ) ,从软件 工程的更广视角、更加深入地研究软件模式n 还出现了一些重要的模式团体,特别 是“山腰组”( h i l l s i d e ,有相关模式主页:h t t p :w w w h i l l s i d e n e t p a t t e r n s ) 旨在软件 开发过程中传播模式、发展模式【钉。针对j 2 e e 分布式企业级应用平台,s u nj a v a c e n t e r 从大量的j 2 e e 工程中总结了常见问题基于j 2 e e 的解决方案,形成了j 2 e e 核心模式 6 1 。 m v c 是个经典的设计模式,广泛应用于具有灵活人机交互应用的系统中,它 最早来源于s m a l l t a l k 面向对象语言,j 2 e e 技术平台w e b 应用开发也把它作为首选模 基于m v c 模式的s t r u t s 框架的研究与应用 第一章绪论 式架构,在j s p 设计模式2 中利用j s p 和s e r v l e t 技术实现了m v c 基于组件的开发。 为了获得更大程度上的复用和可扩展性,人们探索基于m v c 实现的框架技术,出现 了s t r u t s 、j s f 等一系列实用框架。在实际软件开发过程中引入它们,能够极大地提 高开发效率,并进一步加强软件系统非功能性特性。 基于以上思路,本课题重点研究软件模式,特别是设计模式在软件复用中的重要 意义,如何利用基于m v c 模式的s t r u t s 框架进行w e b 应用开发,以及框架技术、设 计模式等提高软件开发效率、提高软件性能,以及实现可复用性和可扩展性等问题。 1 2 课题研究的内容 本课题主要进行了以下几个方面的研究工作: 1 、当前软件开发在实现系统功能的同时,人们更加注重系统的非功能属性。论 文首先对软件体系结构的非功能特性进行了分析,讨论了设计模式的相关特性,以及 对软件复用性的影响。 2 、基于m v c 模式的s t r u t s 框架研究。m v c 模式应用于具有灵活人机交互的系 统中,并被实践不断证明是一个良好的设计模式。本文对m v c 模式组成结构以及存 在的优势和不足进行了分析,然后对基于j 2 e e 平台m v c 模式的具体实现s t r u t s 框 架的整体结构、工作机制进行了深入的分析和研究,总结了基于s t r u t s 框架的多层架 构、多种技术灵活组合的开发模式。 3 、s t r u t s 框架在实际开发中应用研究。s t r u t s 框架对软件开发带来了良好的复 用性和扩展性的同时也对软件开发带来了约束。本文以一个电子商城的开发为例,研 究如何把s t r u t s 框架技术应用到实际开发中。 4 、设计模式的应用研究。典型的应用框架往往包含一些较小的设计模式,多个 设计模式在s t r u t s 框架中的应用保证了系统具有良好的结构,文中分析了应用控制器 模式和环境对象模式对系统框架的影响。而模型开发的开放性使开发人员有更大的技 术选择余地。对上述案例中模型的开发使用的业务对象模式和数据对象模式进行了探 讨。 第一章绪论 基于m v c 模式的s t r u t s 框架的研究与应用 1 3 论文的组织 第一章绪论部分对本文进行课题的研究目的及意义作了简述,并说明了课题研 究的主要内容。 第二章当前软件开发在实现系统功能的同时,人们更加注重系统的非功能属性。 本章首先对软件体系结构的非功能特性进行了分析,讨论了设计模式相关概念及对软 件非功能特性的影响。分析了m v c 设计模式的组成部分,各部分的主要功能,模式 的优势与不足等。 第三章针对j 2 e e 平台基于m v c 模式的w 曲应用框架s 仃u t s 的结构、组件组成、 运行机制以及基于此框架的软件开发模式进行了分析和讨论。探讨了环境对象模式和 应用控制器模式对框架的影响。 第四章网上电子商城是常见的b 2 c 模式的网上商务系统,本章通过对它的开发, 把基于m v c 模式的s t r u t s 框架技术应用到实际工程中,从而提高开发效率、加强扩 展特性和增强复用性等。 第五章总结了本文进行的各项工作,同时指出了许多值德进一步研究和探讨的 问题。 4 基于l l v c 模式的s t r u t s 框架的研究与应用第二章设计模式和眦模式分析 第二章设计模式和m v c 模式分析 随着软件系统的复杂度增加,体系结构成为软件开发的关键因素,在实现系统特 定功能的同时,系统的非功能特性越来越受到重视。软件体系结构中设计模式来源于 实践,又被复用于新的软件系统,不仅得益于它们是被实践证明的解决方案,理重要 的是这些解决方案经过提炼和挖掘以后,明确揭示了系统的一些非功能特性。利用这 些模式对于软件开发非常有重要意义。 2 1 软件体系结构的非功能特性分析 软件体系结构是对软件系统的整体把握,揭示了系统的功能特性和非功能特性的 统一,在软件开发的生命周期的各个阶段发挥着重要作用。 2 1 1 软件体系结构的基本概念 软件体系结构的概念起源于2 0 世纪6 0 年代e w d i j k s t r a 和p a r n a s 等对软件的 组织和结构研究。其中,f d e r e m e r 和h k r o n 认识到编写大型程序和编写小型程序的 活动是不同的,提出了用模块互连语言来表示程序的总体结构。在实践上,当时 d i j k s t r a 用分层的体系结构设计了t h e 操作系统。他还指了出人们应该更加关注软件 是如何分解与组合的,以便于软件的开发和维护。真正对软件体系结构进行系统的研 究则始于9 0 年代,国际软件工程晃学者( 如d g a d a n 、m s h a w 等) 认识到软件体系 结构在很大程度上影响所设计的软件系统质量。他们对各种体系结构进行系统的整 理,形成完整的方法论。目前软件体系结构已发展为软件工程领域的一个独立的分支, 是软件工程的一个重要且充满活力的研究方向【7 , s l 。 体系结构( a r c h i t e c t u r e ) 在英文里就有“建筑”的意思。一个软件系统和建筑物一 样也是有自己的总体结构的。早期的结构化程序是以语句组成模块,模块的聚集和嵌 套形成层层调用的层次结构,自然而然的形成了结构化的体系结构。由于结构化程序 设计时代程序规模不算大,同时采用自顶向下逐步求精的设计,并注意模块的耦合, 就可以得到相对良好的结构,就没有进一步研究体系结构。 第二章设计模式和m v c 模式分析基于m v c 模式的s t r u t s 框架的研究与应用 随着抽象数据类型和面向对象技术出现之后,对象的封装降低了模块间的耦合, 为构件层次上的软件复用提供了良好的技术基础。这种复用大量的类库、组件( 程序) 的方式,使软件规模更大,开发速度更快,开发出的项目更可靠,易修改,适应了业 界对软件的强烈需求,如同土木工程进入到现代建筑学一样,开发软件的过程也从传 统的软件工程进入到现代面向对象的软件工程、基于构件的软件工程、面向体系结构 的软件工程。人们研究整个软件系统的体系结构,寻求开发最快、成本最低、质量最 好的构造过程。 当前学术界广泛接受的软件体系结构定义是卡内基梅隆大学的d g a r l a n 和 m s h a w 在1 9 9 3 年给出的【9 】: 软件体系结构是软件设计的一个层次,在算法和数据结构之上处理总体体系结构 设计和描述方面的一些问题,包括总体组织与全局控制结构、通讯协议、同步、数据 存取、设计元素的功能分配、物理分布、设计元素的符合、设计方案的选择、评估和 实现等。一般而言,一个系统的软件体系结构由一组组件、组件之间的交互连接器 以及组件和连接器如何结合在一起的约束限制描述组成。 o a r l a n & s h a w 模型把软件体系结构抽象概括为; a r c h i t e c t u r e - 一 c o m p o n e n ti i n t e r f a c eic o n n e c t o rlr u l e ,具体定义如下: l 、组件( c o m p o n e n t ) :可计算性的元素,它们共同筑成了软件的体系结构。通 常软件体系结构可分解为子系统,子系统又可进一步的分解( 如,子系统、模块等) 。 大粒度的体系结构组件包括客户端、服务器等。 2 、接口( i n t e r f a c e ) :一种特殊的体系结构元素,它定了一组组件间的交互点, 定义良好的接口可以保证组件之间本质的关系。在某些体系结构定义中,接口是隐含 定义的,并不明确出现。 3 、连接器( c o n n e c t o r ) :体系结构组件间的逻辑连接。关系模拟了组件间的交互 以及控制这些交互的规则。连接器与接口的一个不同在于接口是组件本身提供的供外 部组件交互用的交互点,而连接器本身是个独立体,而且它的两端连接的应该是组 件的接口。 4 、约束( r u l e ) :组件与其关系之间所必须满足的条件和限制,约束把体系结构 与系统需求联系起来。 基于m v c 模式的s t r u t s 框架的研究与应用 第二章设计模式和m v c 模式分析 2 1 2 软件体系结构的非功畿特性 软件体系结构的功能属性( f u n c t i o n a lp r o p e r t y ) 用来处理系统功能性的特定方面, 并且与特定的功能需求有关,是系统实现的服务于用户的本身功能。非功能属性 ( n o n - f u n c t i o n a lp r o p e r t y ) 从另一个角度描述了未被功能属性覆盖的系统特征。它 往往与一个软件系统的可靠性、兼容性、开销、易用性、是否可维护等联系在起。 在随着系统规模的扩大,随着软件系统生存周期的加长,在软件开发的时候仅仅关注 应用功能还远远不够,非功能属性变得越来越重要。并且在一定情况下,非功能属性 会转化为功能性属性。常见的一些重要的非功能属性有: 1 、易修改性( c h a n g e a b i l i t y ) 大型软件系统通常有较长的寿命,在其漫长的生命周期常常面临需求的更改,新 的应用的增加。为了降低维护的开销和工作量,为了修改和演化方面的考虑而设计体 系结构是非常重要的。易修改性体现在系统的可维护性、可扩展性和可移植性等3 个方面。可维护性体现在对原有系统存在错误部分的修正。可扩展性体现在为系统添 加新的特性、或增强功能。可移植性体现在使软件系统适用新的软、硬件平台等。 2 、互操作性( i n t e r o p e r a b i l i t y ) 在系统中,各软件组成部分不是独立存在的,它们经常要与其它系统或自身环境 相互作用,为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构 提供精心设计的软件接口。这种互操作性也影响应用的软件体系结构。 3 、效率( e f f i e i e n e y ) 软件系统的执行往往要获得和处理相关资源,如何提高响应时间、吞吐率和存储 开销是系统必须要解决的问题。在使用良好算法来处理闷题提高效率的同时,还要对 各组件实现的职责,及相互协同工作进行设计和考虑。这些都是体系结构关注的方面。 4 、可靠性( r e l i a b i l i t y ) 可靠性是指软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软 件系统的功能特性的基本能力。可靠性可以分为以下两个方面:容错,其目的是在错 误发生时确保系统正确的行为,并进行内部修复。健壮性,是保护应用程序不受错误 使用和错误输入的影响,在遇到意外错误事件时确保应用系统处于已经定义好的状 第二章设计模式和m v c 模式分析基于 f v c 模式的s t r u t s 框架的研究与应用 态。软件体系结构对软件系统的可靠性影响巨大。 5 、可测试性( t e s t a b i l i t y ) 随着软件规模的越来越庞大,软件系统的越来越复杂,软件测试工作变得更加困 难和花费更加昂贵。软件系统需要从其体系结构上得到支持以减轻对其正确性的评 估。支持可测试性的软件结构可以更好地进行错误检测和修复,也可以临时性地集成 正在调试的代码和正在调试的组件。 6 、可复用性( r e u s a b i l i t y ) 可复用性是目前软件工程领域中的热点之。它能极大地减少软件系统的开发费 用和时间,并且能够开发出更高质量的软件。可复用性有两个主要方面:一是使用复 用现有的组件或商业系统开发中的设计说明、设计分析等进行软件开发。另一个为复 用进行软件开发,即产生那些既是目前软件一个组成部分,又有可能在未来项目中复 用的组件。使用复用进行软件开发要求软件体系结构的构造允许插入预制的结构和代 码组件,通过组装构成应用系统。 软件的功能属性和非功能属性和谐统一在一个系统中,任何方面都不容忽视。在 实际的操作中要平衡非功能属性中各种属性的关系,有所侧重地突出某一个或某些非 功能属性,以达到系统的预期开发目标。 2 1 3 软件体系结构的重要性 软件体系结构是软件系统的高级抽象,体现了根本性的系统设计思路,对系统起 着最为深远的影响。大型系统的体系结构设计在决定系统成功与否上起着非常重要的 作用,选择不合适的体系结构可能导致灾难性的后果。把握系统体系结构对于提高我 们构造有效软件系统的能力,具有极大的帮助。 1 、对于系统分析的意义 在系统分析阶段,软件体系结构通过在抽象层次上的表示来提高我们理解大型系 统的能力,因为在抽象层次上,系统的高层设计易于理解。一般地,体系结构的描述 揭示了系统设计的高层原则,以及作出选择某一体系结构的合理解释。体系结构描述 提供了对软件系统进行各种各样分析的可能,包括系统一致性检查,使用成熟的软件 体系结构模式等。 基于m v c 模式的s t r u t s 框架的研究与应用 第二章设计模式和m v c 模式分析 2 、对软件开发的意义 软件体系结构是系统实现的基本约束,即系统的后继开发工作要遵循体系结构所 描述的设计决策。每个构件或连接件必须满足体系结构规格说明中的功能、语义和接 1 :3 ,并且按体系结构配置中所规定的方式完成交互。软件体系结构对软件质量控制有 重要意义,它的选取是否合适在很大程度上确定了系统能否达到其需求的质量特性。 3 、对软件复用的意义 复用是提高软件开发效率、保证软件质量的重要手段。体系结构的研究使复用从 代码复用发展到设计复用和过程复用,实现多层次上的复用。组件库为软件体系结构 的复用提供了重要的保证基础。体系结构通过注重对已有标准组件的组合和装配,就 能大大减少开发中重复劳动和系统中的重复代码。体系结构良好的软件系统还可以在 更高层次实现子系统乃至软件系统框架的复用。从某种意义上讲软件复用程度越高, 所带来的收益就越大。 4 、对系统演化的意义 d i j k s t r a 曾说:程序结构应能预测系统的变化和修改,程序不仅应能从结构上来 反映和理解,而且应从结构上来迎合系统平滑的变化“o j 。通过软件体系结构揭示和明 确系统可能的演化,维护者可以更好地理解系统哪部分变化及其变化趋势,因此能更 准确地估计维护费用,更好地维护。而且,体系结构描述能将组件的功能,组件间交 互连接方式进行分离,从而可以在保持功能不变的情况下,允许改变连接件机制以处 理和适应关于性能、互操作性和复用等方面的演化。 2 2 模式和设计模式 2 2 1 模式的概念 工程学科中有一个重要的原则:总结经验和利用实践证明较好的方案。软件工程 中的开发也是这样。经验有助于更快更顺利地建立良好的方案,从而节省成本,提高 质量。它山之石,可以攻玉。模式来源于建筑学,却在软件行业也取得了巨大的成功。 在2 0 世纪7 0 年代,c h r i s t o p h e ra l e x a n d e r 发表了很多关于工程和建筑模式方面的书 籍。随后,软件行业才逐渐接纳了这种最初建立于工程和建筑方面的模式的思想。在 9 第二章设计模式和m v c 模式分析基于眦模式的s t r u t s 框架的研究与应用 此之前软件业中也有类似思想的萌芽,但软件业中模式概念的普及是由e r i c hg a m m a 等四人( 又被称为“g o f ”或“四人组”) 合著的设计模式:可复用的面向对象的 软件基础一书引发的。到今天,“模式”一词己成为全世界软件开发的共同话题。 当专家求解一个特殊问题时,他们一般不会发明和已有解决方案完全不同的方案 来处理这个问题。他们往往借鉴己解决的类似问题的经验,并复用该解法的精华来解 决新问题。这种行为在工程领域经常出现,它们关注问题和求解方案,对其进行抽象 并提炼出公共要素就形成了模式。建筑师亚历山大在建筑和永恒方法一书中定义 了模式【l l 】: 每个模式是一条由三部分组成的规则,它表示了一个特定环境,一个问题和一个 解决方案之间的关系。 作为建筑领域的一个元素,每个模式是一个特定环境,在该环境中重复出现的一 个特定强制条件体系以及给这些强制条件自求解提供一个特定的空间配置之间的相 互关系。 作为语言的一个元素,一个模式就是一个说明,它说明了如何使用这个空间配置, 不断求解给定的强制条件体系,只要环境是与它相关的。 软件工程的专家从实践经验中获知这些模式,并在开发具有特定属性的应用中遵 循这些模式。因此在软件工程中,模式是一个问题解决方案对,它也由三个基本部 分组成:语境、问题和解决方案。它们三者紧密结合,是一个整体。 1 、语境 语境描述问题提出的场景。在描述语境时,要把握表达的尺度。通常,非常准确 或精确地说明语境是不可能的。有效和实际的方法是列出模式关注的问题可能出现的 尽量多的已知场景作为有价值的参考。 2 、问题 给定语境中重复出现的问题。它抓住了必须解决的具体设计问题,关注解决方案 要满足的需求、涉及的约束或强制条件、所希望的特性等。一般讲,强制条件从多个 角度讨论该问题,有助于了解问题的细节,它往往是解决问题的关键,它们平衡的愈 好,对问题的解决方案就更好。 3 、解决方案 1 0 基于m v c 模式的s t r u t s 框架的研究与应用 第二章设计模式和g v c 模式分析 解决方案给出了如何解决再现问题。解决方案规定了特定系统的结构,同时规定 了系统运行的动态特性。它针对问题的各类强制条件进行平衡,并给予解决。模式就 象一个模板,可应用于多种不同场合,因而解决方案并不描述一个特定而具体的设计 实现,而提供了针对设计问题的抽象描述和具有一般意义的元素组合来解决这个问 题。所以从某种意义上讲,解决方案不必对每个强制条件都解决或解决的很彻底,而 是综合了多种因素有选择的合适的“妥协”方案。另外,解决方案也因为强化某一特 定需求会有所改变。 2 2 2 模式的分类 软件系统中,面对不同的度量范围和不同的抽象层次,对现有模式进一步划分、 归类,从高层的体系结构到具体的代码实现,可以把模式分成三个层次,分为三种类 型。每一种类型都由具有相似规模或抽象程度的模式组成 4 a 2 。 1 、体系结构模式 体系结构模式表示软件系统的基本结构化组织图式。它提供一套预定义的子系 统,规定它们的职责,并包含用于组织它们之间关系的规则和指南。 体系结构模式可作为具体软件体系结构的模板。它们规定一个应用的系统范围的 结构特性,以及对其子系统的体系结构施加的影响。所以体系结构模式的选择是开发 一个软件系统的基本设计决策。 2 、设计模式 软件体系结构的子系统,以及它们之间的关系,通常用几个更小的软件体系结构 单元即设计模式组成。设计模式提供一个用于细化软件系统的子系统或组件,或它 们之间的关系模式。 设计模式是中等规模的模式。它们在规模上比体系结构模式小,但又独立于特定 编程语言。设计模式的应用对软件系统的基础结构没有影响,但对子系统的体系结构 有较大影响。 3 、程序模式 程序模式是针对某一种具体编程语言的低层代码实现模式。大多数惯用法是同具 体语言联系在一起的,它们反映了现有的编程经验,描述了如何使用给定语言的特征 第二章设计模式和m v c 模式分析基于 l 、,c 模式的s t r u t s 框架的研究与应用 来实现组件的特殊方面或它们之间的关系。 这种分类有助于为给定的设计问题预先选定潜在的有用的模式。它们与重要的软 件开发活动相关。体系结构模式可以用在大粒度设计的开始,设计模式可以用在整个 设计阶段,惯用法可以用在实现阶段。 2 2 3 设计模式 设计模式是一种与具体应用问题领域接近的微体系结构,它在软件体系结构与具体 实现之间起到了过渡和衔接。将己证实的技术总结成设计模式也会使新系统开发者更加 容易理解其设计思路。设计模式使人们可以更加简单方便地复用成功的设计和体系结 构。使用设计模式进行新的软件系统的设计与构造,应重点关注软件设计模式的选择与 处理。g o f 经典设计模式和j 2 e e 核心设计模式对模式的发展产生了巨大的影响。 1 、g o f 经典设计模式 e r i c hg a m m a 等人在设计模式:可复用面向对象的软件基础中总结了面向对 象设计中最有价值的经验,归纳总结了2 3 个经典的设计模式。他们将这2 3 种模式按 照目的分为创建型、结构型和行为型三种类型【3 】。创建型模式与对象的创建有关,结 构型模式处理类或对象的组合,行为型模式对类或对象怎样交互和怎样分配职责进行 描述。每一个模式都给出了设计意图、结构、使用效果、实现要点和缺陷、代码示例、 在实际软件中的应用、相关模式等。这些模式分类如表2 - 1 所示。 表2 - 1 设计模式空间 目的范围设计模式 类 f a c t o r y m e t h o d 创建型 对象 a b s t r a c t f a c t o r yb u i l d e rp r o t o t y p es i n g l e t o n 类 a d a p t e r 结构型 a d a p t e rb r i a g ec o m p o s i t ed e c o r a t o rf a c a d e 对象 f l y w e i g h tp r o x y 类 i n t e r p r e t e r t e m p l a t e 行为型c h a i no f r e s p o n s i b i l i t yc o m m a n di t e r a t o rm e d i a t o r 对象 m e m e n t oo b s e r v e rs t a t es t r a t e g yv i s i t o r 2 、j 2 e e 核心设计模式 j 2 e e 是j a v a2p l a t f o r me n t e r p r i s ee d i t i o n 的缩写,是s u n 公司提出的一种分布 1 2 基于 i v c 模式的s t r u t s 框架的研究与应用 第二章设计模式和m v c 模式分析 式企业级应用技术架构。目前经过实践的检验,证明j 2 e e 是一种可以信赖的企业级 软件开发技术,具有十分广阔的前景。n 层次分布式计算应用系统,能够将表示逻辑、 业务逻辑、底层数据、应用环境分离开来,具有明显优势,加快开发过程,降低开发 成本1 3 4 1 。通过复用现有的预先测试过的业务组件和数据访问组件,可以更快地开 发应用程序。j 2 e e 典型的多层企业级应用模型结构分为4 层,如图2 1 所示。 中间层 客户端 w e b 服务器 应用服务器企业信息系统 h t m l 存储系统 b r o w s e r s

温馨提示

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

评论

0/150

提交评论