(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf_第1页
(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf_第2页
(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf_第3页
(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf_第4页
(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机软件与理论专业论文)运用uml与struts构建基于j2ee的多层web应用.pdf.pdf 免费下载

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

文档简介

人学坝1 学位论义 y 7 7 8 8 1 3 运用u m l 与s t r u t s 构建基于j 2 e e 的多层w e b 应用 计算机软件与理论专业 研究生何锦望指导教师谢汶 摘要 随着i n t e r n e t 技术的不断发展,w e b 应用需求目益增多,涉及的领域越来 越广,w e b 应用系统的复杂性也变得越来越高。为适用形势的发展,人们提出 了应用系统的多层体系结构,并逐渐成为计算机应用系统的主流模型。目前, 基于组件的多层体系结构技术架构主要有两种:它们分别是s u n 公司的j 2 e e 架构和微软公司的n e t 架构。j 2 e e 以其规范的开放性、平台无关性、较好的 可移植性和可扩展性,以及业界的有力支持而获得了快速的发展。 j 2 e e 平台的s e r v l e t 和j s p 技术是一种非常有效的w e b 表示层组件设计技 术。但是开发者在构建w e b 应用时,使用s e r v l e t 和j s p 页面所带来的高效率 和便利性常常使他们忽视了可维护性和可扩展性。很多人丌发w e b 应用时没有 进行良好的设计,这常常导致了维护性差、重用性不好等问题。 本文首先重点讨论了设计模式和框架技术。其中m v c 设计模式分离了数据 和控制,增强了框架的模块性;采用了分布式组件技术,提高了软件重用性; 采用了多层的思想,把表示层、商业逻辑层和数据库层分立开来,便得系统的 移植性和重用性得到了加强。而软件框架的重用,应当兼顾设计和代码的重用, 这样4 能提高开发效率,节约成本。而s t r u t s 框架是一种引入了m v c 设计模 式,并得到广泛应用的框架。 接下来,本文讨论了基于m v c 设计模式的j 2 e e 架构,包括:j 2 e e 平台工 作原理、组件技术和标准服务、j 2 e e 多层应用体系结构,以及构建基于j 2 e e 的多层w e b 应用系统的方法。 然后,本文讨论了基于j 2 e e 的多层w e b 应用系统开发与建模的问题,重点 p u 川大学坝卜学位论支 探讨了运用统一建模语言u m i 。对软件系统建模的一般过程,并探讨了运用u m l 对基于j 2 e e 的多层w e b 应用系统建模的方法。 论文提出了基于框架开发应用系统的观点,并对应用系统进行建模研究, 分板了当前基于j 2 e e 的w e b 系统的技术特点,在w e b 应用系统领域内提出应用 s t r u t s 框架来开发系统。 文章的最后,对本文主要完成的工作进行了总结,并提出了研究的不足之 处以及对今后研究的展望。 关键词:w e b 应用j 2 e e s t r u t su m l 多层 p u 川1 人学砌 十学位论文 b u i l d i n gw e ba p p l i c a t i o nw i t hu m l a n ds t r u t s m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y p o s t g r a d u a t e :h ej i n w a n g a d v is o r :x i ew e n a b s t r a c t w it ht h ed e v e l o p m e n to fi n t e r n e tt e c h n o l o g y m o r ea n dm o r ew e b a p p l i c a t i o n sa r er e q u i r e d ,t h ef i e l d st h a ti ti n v o l v e di na r eb e c o m i n g b r o a d e r ,a n d t h eh i g h e rc o m p l e x i t yo f w e ba p p l i c a t i o ns y s t e m a r e i n c u r r e d t oa d a p tt ot h ed e v e l o p m e n to fs i t u a t i o n ,t h ew e ba p p l i c a t i o ns y s t e mo f m u l t 卜t i e ra p p l i c a t i o na r c h i t e c t u r ec a m ei n t ob e i n g ,w h i c hh a sb e e no n e o ft h ef a s t e s t c o m p u t e ra p p l i c a t i o ns y s t e m s s i n c et h ei n t e r n e t t e c h n o l o g yw a se m p l o y e da n dh a sg r a d u a ll yb e e nt h em a i nm o d e lo fc o m p u t e r a p p l i c a t i o ns y s t e m s n o wt h e r ea r et w om a i nt e c h n o l o g ya r c h i t e c t u r eo f m u l t i - t i e r a p p li c a t i o n a r c h i t e c t u r eb a s e do n c o m p o n e n t : s u n m i c r o s y s t e m sj 2 e ea n dm i c r o s o f t s n e t j 2 e eh a sh a dar a p i dd e v e l o p m e n t b e c a u s eo fi t so p e ns p e c if i c a t i o n ,i n d e p e n d e n c eo fp l a t f o r m ,b e t t e r t r a n s l a t i , o n ,a n de x t e n s i o n ,a n ds t r o n gs u p p o r tf r o mm a n yc o m p a n i e si n s o f t w a r ei n d u s t r y t h es e r v l e ta n dj s pt e c h n o l o g ya r ev e r ye f f e c t i v ew e bv i e wc o m p o n e n t i nj 2 e ep l a t f o r m b u tm o s to fd e v e l o p e r so f t e ni g n o r et h ew e bs y s t e m s m a i n t e n a n c ea n de x t e n s i o nw h e nt h e yb u i l dt h ew e ba p p l i c a t i o n t h isp a p e r sr e s e a r c hf o c u s e so nt h ed e s i g np a t t e r n ,f r a m e w o r ka n d u m lm o d e i i n gt e c h n o l o g yi nj 2 e ew e ba p p l i c a t i o n m v cd e s i g np a t t e r ni s o n eo ft h ei m p o r t a n td e s i g np a t t e r n s m o d e li st h er e l a t i v ed a t aw h i c h i st h ei n t e r n a lp r o p e r t yo fo b j e c t ;v i e wi se x t e r n a lp r e s e n t a t i o nf o r m o fm o d e l ,o n em o d e lc a nc o r r e s p o n dt oo n eo rm o r ev i e w ,v i e wa l s o 叫川1 人学烦i 学位论史 p o s s e s s e st h ef u n c t j o r0 fa l t e r n a t i n gw i t he n v i r o n m e n t :c o n t r o l l e fi s t h er e l a t i n gli g a m e n to f lm o d e la n dv i e w ,c o n t r o l l e rp i c k su pt h ee x t e r n a l i n f o r m a t i o nt r a n s m i t t i n gf r o mv i e wa n dt r a n s f e r st oc o r r e s p o n d i n ge v e n t a n dt h eu p d a t et h em o d e l t h e nt h isp a p e rd i s c u s s e st h ej 2 e ea r c h it e c t u r eb a s e dt h em v cd e s ig n p a t t e r n ,i n c l u d i n st h ec o m p o n e n t so fj 2 e e ,t h ep r i n c i p l eo fj 2 e ep l a t f o r m , j 2 e ec o m p o n e n tt e c h n o l o g y a n ds t a n d a r ds e r v i c e ,j 2 e em u l t i t i e r a p p l i c a t i o na r c h i t e c t u r ea sw e l1 a s d e v e l o p m e n t m e t h o do fw e b a p p l i c a t i o ns y s t e mb a s e do nj 2 e e t h e np a p e rd e s c r i b e st h ec o n c e p to fd e s i g np a t t e r n ,e m p h a s i z e st h e f r a m e w o r ko fm v ca n di n la n dp r o v i d e san e wd e v e l o p m e n tm e t h o db a s e do n m v ca n dj 2 e e ,a n dd e v e l o p saw e ba p p li c a t i o nu s i n st h em e t h o d a tl a s t ,w em a k eac o n c l u s i o no ft h ew o r kt h a th a sd o n ei nt h i sp a p e r , b r i n gf o r w a r ds o m ei n s u f f i c i e n c yi nt h er e s e a r c ha n de n v i s i o no ft h e r e s e a r c hjnt h ef u t u r e k e yw o r d s :w e ba p p li c a t i o n ,j 2 e e ,s t r u t s ,u m l ,m u l t i t i e r p u 川人学啪f :学位论文 1 引言 i n t e r n e t i n t r a n e t 的出现是计算机通讯领域最重要的一次革命,它已经 成为目前全球最大的计算机通讯网。利用这种媒体,人们可以建立一个虚拟的 电子世界。在这个世界里,人们的思想和理念可以很快的传遍全世界。随着计 算机网络及其相关技术的发展,i n t e r n e t i n t r a n e t 不再仅仅是人们交流和获 取信息的途径,而成为一个大的分布式的计算平台,电子商务等各种很有发展 前途的应用都将以这一平台为基础。当前基于p c 或局域网上的c l i e n t s e r v e r 应用,将逐渐发展成为具有内置的i n t e r n e t 访问能力的分布式应用。从而使电 子商务、网络媒体、远程教育、远程医疗等信息应用与服务得到较快的发展。 各企业也逐渐认识到互联网的巨大作用,纷纷建立自己的企业网站。这样商家 就拥有了一个比传统方式更为灵活和快速的媒体。通过互连网,商家可以与他 们自己的员工、潜在的客户乃至世界上任何一个人沟通,电子商务的概念也随 之而来。借助于w w w 的动态交互式信息发布,诸如网上购物、网上银行、网上 书店等一系列在线电子商务服务系统得以盛行。这些系统都离不开分布式的数 据库、用户及后台数据库交互的动态w e b 应用程序和安全认证等技术。 w e b 是个强有力的通信渠道,在w e b 上的分布式w e b 应用可以使企业 削减开发、维护的费用。因为在w e b 结构下应用逻辑可以在服务器端被集中控 制,而客户端仅仅需要一个标准的浏览器,如果应用功能今后需要更新,不需 要再把新的应用程序分发到成千上万的客户端,只需要更新运行在服务器端的 应用逻辑就行了,用户通过w e b 启动应用程序时就会用上新的版本了。因此, 在i n t e r n e t i n t r a n e t 环境下研究分布式动态w e b 应用系统必然成为一项热 门技术。 1 1w e b 应用系统的发展及现状 w e b 最初的功能只是出版和广播静态电子文件,缺乏交互性,实质上是一 个巨大的基于u r l 访问的文件服务器。目前,w e b 已发展成为一种交互性的媒 介。传统的w e b 技术虽然拥有不少优点,但无法胜任大规模的企业计算和事务 叫j 1 1 人学颅 学位论义 处理。这些技术的主要问题在于,它们需要h t t p 和w e b 服务器作为中介,来 协调服务器和客户机对象之间的通信,这必然在w e b 服务器出形成“瓶颈”。 一个客户机对象无法越过w e b 服务器直接调用应用服务器对象,客户机与服务 器之间交互的基本形式仍然是h t t p 表格。这种通汛方式对于复杂的客户机 服务器应用来说,信息流量是相当大的。因而当客户端数目进一步增加后,w e b 服务器的响应速度将会大大减慢;同时由于该体系结构不具备扩展性,一旦客 户端日益增多的业务处理请求超过应用服务对象所能承受的负荷,整个系统将 无法正常运行。 这种简单的w e b 模型已经不能适应更加复杂的应用逻辑和数据处理需要。 一些i n t r a n e t 企业管理系统,如m i s 、m r p ii 、e r p 、p d m 等系统都需要高性 能的系统结构,才能实现它们复杂的功能。为此,人们开始把分布式对象技术 引入到w e b 上。 分布式对象技术是近年来飞速发展的一种软件技术。该技术允许在不同机 器上的对象相互传递消息。分布式对象的应用程序可以通过网络与其他对象应 用程序互相操作。就客户对象而言,无须了解服务器对象是用哪种语言建立、 运行在何种操作系统和硬件平台之上,也无须知道它存在与系统的什么地方, 只需知道对象的名字和对象的标准接口。一个位于大型机的分布式对象可以不 加修改而被w i n d o w s 、u n i x 等其他任何平台调用。另外,分布式对象易于管理。 由于调用应用程序是通过对象的标准接口进行操作的,所以当一个对象作出改 动、升级时,调用程序不必做任何改动,也无须重新编译整个应用程序。 w e b 技术和分布式对象技术的有机结合,导致了整个应用系统的体系结构 从过去流行的c 1 l e n t s e r v e r 结构向灵活的多级分布式w e b 应用系统的结构 演变。s u n 公司提出的j 2 e e 构架就是一个集成的c 1 i e n t s e r v e r 模型和w e b 应用的分布式应用框架,为这种应用提供底层的基本服务,使开发者可以直接 利用,从而把主要的精力投入与应用相关的商业逻辑规则( b u s i n e s sl o g i c ) 上。j 2 e e 框架所提供的服务通过j a v a 及相关的技术来实现,包括即插即用的 软件组件、目录服务、数据访问、安全管理、w e b 浏览器和服务器、事务及其 消息队列管理和用户界面技术等。通过这些一致的、统一的服务,可以很容易 开发出运行于i n t e r n e t 上的分布式应用,从而开发一个强健、稳固、可扩充 叫川1 人学硕v j :学位论文 性好的分布式网络应用系统。 多层分布式w e b 应用系统的结构主要有以_ 卜优点: ( 1 ) 经济性、可维护性:在客户端只有简单的浏览器。这样在企业内部部 署硬件时客户端有时仅需要简单的网络计算机即可,大大降低了成本。由于浏 览器执行的应用程序是从w e b 服务器上下载来得,因此客户端不必安装及配置 应用软件,而系统维护人员只需要在服务器端对服务器进行集中的维护。这给 应用软件的维护、升级带来了巨大的好处。 ( 2 ) 可伸缩性:分布式w e b 计算将复杂的业务处理分割成相互之间可交 互调用和通信的若干业务功能部件或对象,并可将其分配到多个网络互联的应 用服务器中实现负担分担。这些应用服务器还具备对分布对象管理和实时调度 的功能,能够迅速地将请求交给当时可用的对象,并随着请求的增多,调用更 多驻留在其他应用服务器上的对象。从而只要通过添加应用服务器便能满足同 益增长的业务处理需要。 ( 3 ) 强壮性:当某台应用服务器发生故障或失效时,分布式系统会自动把 应用服务器正在处理的事物请求移交给另外一台工作正常的服务器。 ( 4 ) 软件重用及可裁剪性:在分布式w e b 计算中,业务处理是由许多分 布式对象交互协作完成的。将来会出现更高层次的分布式对象组件和商务对象 组件,可以针对每个企业的具体情况,选用不同的分布式对象组件来构建应用 系统。 ( 5 ) 兼容性:由于对象可以建成与现有系统结合的方式,所以分布式对象 是可以与现有系统一道工作的。一个对象如果具有与现有系统的接口,就可以 在分布式系统中调用以前的程序。同时,使用分布式对象时,不必重建传统的 应用程序。这样便大大加快了系统的开发速度,也节省了大量资金。 ( 6 ) 异构性:网络分布的业务处理对象可访问不同的后台数据库,适合多 种异构数据库环境,达到分布数据开放的效果。 ( 7 ) 安全性:严密的安全管理。对业务处理对象的调用和数据库的存取权 限是按层设置的。即使外部入侵者突破了客户机层的安全防线,在应用服务器 层另外备有的安全机构也可阻止入侵者进入其他部分。 ( 8 ) 独立性:在多层结构中,各层之间具有相对独立性,于是每一层都可 p u 川人学硕i j 学位论文 选取各自的最优解决方案。 目前的w e b 应用服务器和事物服务器的产品种类较多。许多公司都开发有 相应的产品。如事务处理器,它包括从电子商务实施到处理帮助桌面或人力资 源数据共享的许多功能。i b m 、o r a c l e 、微软和s u n 等公司在事务服务器上都具 有支持企业大型事务应用功能,它的功能还在不断地完善中。并且每种产品的 支撑平台和技术都有差异,正确选择产品,构建合适的结构模型,显得尤为重 要。 国内已经出现了一些多层应用系统,但是它们采用的技术路线大多是传统 的浏览器w e b 服务器工作模式的基础上集成数据库系统,缺乏组件、事务方面 的支持,并没有实现真正的可扩展、可伸缩、高性能的企业w e b 计算平台。多 层体系结构的中间层应用服务器标准已经趋于成熟,国外一些大公司先后 推出了应用服务器实用或者测试产品,如o r a c l ea p p l i c a t i o ns e r v e r 、i b m w e b s p h e r e 、i n p r i s ea p p l i c a t i o ns e r v e r 等,预计应用服务器将成为i n t e r n e t 上信息系统重要的信息平台。目前这些先进产品大多结合组件技术、分布式对 象技术和j a v a 技术各自优势,采用成熟技术标准研制,代表了应用服务器技 术的发展方向。以分布式对象技术为基础建立多级分布式w e b 应用系统已为企 业带来无限的生机和活力。但是如何快速构建这样一个易于升级的w e b 应用模 型并不是一件容易的事情。 1 2 论文背景及意义 随着i n t e r n e t i n t r a n e t 的快速发展和广泛应用,w e b 技术在i n t e r n e t 上 得到了广泛的运用,它支持实时的信息发布,动态的用户交互以及与后台系统 灵活的安全的连接。因此,如何构造功能更加强大、应用更为灵活、开发更为 简便的w e b 应用程序成为当前i n t e r n e t 探讨的热点。多层体系结构作为新一 代i n t e r n e t 信息系统平台,将商业逻辑从客户端和服务器端独立出来,实现了 表示逻辑层、商业逻辑层、数据逻辑层的分离,具有优化系统总体性能,提高 系统的可靠性和伸缩性,平衡各节点的负载情况,利用网络优化计算资源,集 成已有信息系统等优势,使在i n t e r n e t 环境下开发复杂事务的应用系统、集成 现有信息系统成为可能,具有重要的研究意义和很好的实际应用价值。 川川人学碗j 学位论文 多层体系结构及其相关信息技术研究足当前分布式计算和w e b 计算研究的 前沿,技术难度大,涉及较为广泛的技术领域,主要有分布式对象、分布式事 务处理、j a v ae i b 、计算机网络、w e b 计算、中间件、数据库、应用服务器、 系统安全等方面,具有重要理论意义及工程应用价值。 1 3 本文主要工作 本文介绍了基于j 2 e e 的w e b 应用系统的产生和发展,讨论了分布式多层体 系结构的w e b 应用系统,探讨了设计模式与框架技术,及基于组件的j 2 e e 多层 体系结构技术架构。本文以s u n 公司的j 2 e e 架构为基础,研究了j 2 e e 组成部 分、j 2 e e 平台工作原理、j 2 e e 组件技术和标准服务、j 2 e e 多层应用体系以及 构建基于j 2 e e 的多层w e b 应用系统的方法,并探讨了基于j 2 e e 的多层w e b 应 用系统的分析与建模,设计并实现基于j 2 e e 应用s t r u t s 框架的网上商店系统, 以此为今后的研究打下基础。 其中主要需要完成以下工作: 如何用统一建模语言u m l 为软件系统建模,如何运用u m l 与s t r u t s 框架 构建基于j 2 e e 的多层w e b 应用。 按照上述方法设计并实现一个网上商店系统。并探讨这种实现方式的优 缺点以及适用范围。 川川i 大学1 0 i ! 。学位论文 2 设计模式与框架技术 针对日趋复杂的软件需求的挑战,软件业界发展出了面向对象的软件开发 模式。现在,面向对象技术的应用已经成为软件产业发展的主流。 面向对象领域内近几年提出的一个思想是设计模式( d e s i g np a t t e r n ) 。设 计模式描述了通用的、简单的和可重用的解决方案的核心,这个核心可以有多 种变化而不失其基本的优点。好的思想还得借助好的工具来描述和实现,对设 计模式来说,u m l 中丰富的标记法( u m l 图) 正是合适的工具。 因此,本章将阐述面向对象的软件开发,并重点阐述设计模式的思想和它 的描述工具u m l 语言,这些思想将适用于应用系统分析和设计的整个过程中。 2 1 面向对象的软件开发 传统的结构化设计方法的基本点是面向过程,系统被分解成若干个过程。 而面向对象的方法是采用构造模型的观点,在系统的开发过程中,各个步骤的 共同的目标是建造一个问题域的模型。 面向对象的开发强调从问题域的概念到软件程序和界面的直接映射,心理 学的研究也表明,把客观世界看成是许多对象更接近人类的自然思维方式。对 象比函数更为稳定。软件需求的变动往往是功能相关的变动,而其功能的执行 者对象,通常不会有大的变动;另外,面向对象的开发也支持、鼓励软件 工程实践中的信息隐藏、数据抽象和封装,在一个对象内部的修改被局部隔。 以面向对象技术开发的软件易于修改、扩充和维护。 2 1 1 面向对象的建模 大型系统通常十分复杂,很难直接对它进行分析设计,人们经常借助模型 来设计分析系统。模型是现实世界中的某些事物的一种抽象表示。抽象的含义 是抽取事物的本质特性,忽略事物的其他次要因素。因此,模型既反映事物的 原型,又不等于该原型。模型是理解、分析、开发或改造事物原型的一种常用 手段。 岬j 1 1 人学顾 学位论文 面向对象( o b j e cl - o r ie n t e d ) 的方法最重要的两个概念是类( c l a s s ) 和封装 ( e n c a p s u l a t i o n ) 。从系统设计的角度来说,类提供了在软件开发过程中代码级 的重用,封装机制保证了重用更加安全,方便。为了能够在更高的层次上实现 系统设计和重用,出现了许多面向对象的方法和思想。较有名的有:g r a n d y b o o c h 的方法把系统看作一系列的视图来分析,每个视图用一些模型图来表示; o m t ( o b j e c tm o d e l i n gt e c h n i q u e ) 用一些模型:对象模型、动态模型、功能模 型和u s ec a s e 模型来描述系统,这些模型相互补充以获得系统的完整描述; 还有基于i v a rj a c o b s o n 的基本观察点( v i e w p o i n t ) 的o o s e 和o b j e c t o r y 方法; f u s i o n 方法和c o a d y o u r d o n 方法,都从不同的视角提出了系统建模的思想和 描述方法”。 对象的建模是一种新的思维方式,一种关于计算和信息结构化的新思维。 面向对象的建模,把系统看做是相互协作的对象,这些对象是结构和行为的封 装,都属于某个类,那些类具有某种层次化的结构。系统的所有功能通过对象 之间相互发送消息来获得。面向对象的建模可以视为是一个包含以下元素的概 念框架:抽象、封装、模块化、层次、分类、并行、稳定、可重用和可扩展性。 模型的表示形式可以是数学公式、缩小的物理装置、图表文字说明,也可以是 形式化语言( 如u m l 语言) 。模型建立的思路有两种:自顶向下,逐步求精和自 底向上、综合集成。 对象建模的第一步就是要找出客观世界中开发人员将要涉及的实体,确定 应用中的对象,对象的静态模型结构由属性和操作构成;同时各对象问相互触 发会形成一系列的变化,一个触发行为称作一个事件,如在公司人事系统中员 工辞职会引起多个信息对象的变化,对象动态模型的建立是从另一个角度来描 述系统中对象的行为;最后要对对象的功能模型进行描述。 21 2 面向对象的编程 面向对象编程中,程序被看作是相互协作的对象集合,每个对象都是某个 类的实例,所有的类构成一个通过继承关系相联系的层次结构。面向对象的语 言一般具有以下特征;对象生成功能、消息传递机制、类和遗传机制。这些概 念当然可以并且也已经在其他编程语占中单独出现,但只有在面向对象语言中, p uj i i 凡学钡十:学位论义 他们才共同出现,以一种独特的合作方式互相协作、互相补充。 过程化编程模式:参数输入代码结果输出,为实现某个功能,参 数被传入某个处理过程,最后传四】计算结果。 面向对象编程中,功能是通过与对象的通讯获得的。对象可以被定义为一 个封装了状态和行为的实体,或者说是数据结构( 或属性) 和操作;状态实际上 是为执行行为而必须存于对象之中的数据、信息:对象的界面,是一组对象能 够响应的消息的集合。 消息是对象通讯的方式,因而也是获得功能的方式。对象收到发给它的消 息后,或者执行一个内部操作( 有时成为方法或过程) ,或者再去调用其他对象 的操作。对象响应一个消息丽调用的方法,由接收该消息的对象自己决定。 所有对象都是类的实例,类是具有相同特点的对象的集合,或者也可以说, 类是可用于产生对象的一个模板。类可以以一种层次结构来安排,在这个层次 结构中,子类可以从比它高的超类中继承得到状态和方法。当对象接收到一个 消息后,寻找相应的方法的过程将在从该对象的类开始,并在该类所处的层次 结构中层开,直到找到该方法,或者什么也没找到( 将会报错) 。 在某些语言中,某个特定的类可以从多个超类中继承,称之为多继承。如 果采用动态联编,继承就导致了多态性。多态性描述的是如下现象:如果几个 子类都重新定义了超类的某个函数( 使用相同的函数名) ,当消息被发送到一个 子类对象时,在执行时该消息会由于子类的不同而被解释为不同的操作。 2 2 设计模式 设计模式的思想认为在系统设计这一层次上,软件开发可以抽象成一种模 式,模式描述了系统面临的问题及其解决方案,并可以重用。 每一个模式描述了一个在开发者做设计时不断重复遇到的问题,以及该问 题的解决方案的核心。这样,丌发者就能一次又一次地使用该方案而不必做重 复劳动。其核心在于提供了相关问题的解决方案。 设计模式不能够随意使用。通常开发者通过引入额外的间接层次获得灵活 性和可变性的同时,也使设计变得更复杂并牺牲了一定的性能。一个设计模式 只有当它提供的灵活性是真正需要的时候,j 唷必要使用。 p u 川i ( 学颁l 学位论卫 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将己证 实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 一般而言,一个模式有四个基本要素。“: ( 1 ) 模式名称( p a t t e r nn a m e ) 一个助记名,它用一两个词来描述模式的问 题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设自己以及 同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考, 便于我们与其他人交流设计思想及设计结果。 ( 2 ) 问题( p r o b l e m )描述了应该在何时使用模式。它解释了设计问题和问 题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等, 也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用 模式必须满足的一系列先决条件。 ( 3 ) 解决方案( s o l u t i o n ) 描述了设计的组成成分,它们之间的相互关系及 各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所 以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象 描述和怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 ( 4 ) 效果( c o n s e q u e n c e s )描述了模式应用的效果及使用模式应权衡的问 题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选 择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空 间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之 所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地 列出这些效果对理解和评价这些模式很有帮助。 设计模式将面向对象软件的设计经验记录下来,每一个设计模式系统地命 名,解释和评价了砸向对象系统中一个重要的重复出现的设计。 设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已经 证实的技术表述成设计模式会使新系统开发者更加容易理解其设计思路。设计 模式有利于帮助做出有利于系统复用的选择,避免设计破坏系统复用性。通过 提供一个类和对象作用关系以及它们之间潜在联系的说明规范,设计模式能够 提高已有系统的文档管理和系统维护的有效性。总之,设计模式可以帮助设计 者更快更好地完成系统设计。 妇川人学坝| 学位论文 2 3m v c 设计模式 m v c ( m o d e l 一v i e w c o n t r o ll e r ) 设计模式,即模型一视图一控制器模式,是 设计模式中很重要的一种。它包括三种对象:模型( m o d e l ) 提供业务逻辑,视图 ( v i e w ) 则是模型在屏幕上的显示,控制器( c o n t r o l l e r ) 则是用于管理用户与视 图发生的交互。 模型,即相关的数据,它是对象的内在属性;视图是模型的外在表现形式, 一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能;控制器 是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相 应事件,然后由对应的控制器对模型进行更新;相应的,模型的更新与修改将 通过控制器通知视图,保持视图与模型的一致性。图2 1 揭示了这三者之间的 关系: 图2 1m v c 三者关系图 界信息 ( 1 ) v i e w :用户视图模块,这是用户界面部分,主管应用程序与人之间的接 口。一方面,它为用户提供了输入手段,并触发应用逻辑运行,另一方面,它 又将逻辑运行的结果阻某种形式显示给用户。 ( 2 ) c o n t r o l l e r :流程控制模块,该部分是用户界面与m o d e l 的接口。一方 面它解释来自于v i e w 的输入,将其解释成系统能够理解的对象,同时它也识别 叫j 1 1 人学碗l j 学位论史 用户动作,并将其解释为对m o d e l 特定方法的调用;另一方面,它也处理来自 于m o d e l 的事件和m o d e l 逻辑执行的结果,调用适当的v i e w 为用户提供反馈。 ( 3 ) m o d e l :事务逻辑模块,是整个模型的核心。它表示解决方案真正的逻 辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。在这 些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。 在基于m v c 设计的企业级的应用中,软件在逻辑上可以划分成三层;表现 层,企业逻辑层和数据层。表现层包括所有的用户接口,这里它是m v c 设计模 式中视图和控制器的结合;企业逻辑层就是m v c 中的m o d e l ;数据层负责向应 用程序提供所要求的任何数据的持久性服务。 基于该编程模型进行开发,各个模块之间的按口一旦制定,开发人员可根 据模块的主要功能选用恰当的技木对该模块进行有针对性的开发,且无须熟悉 实现其他模块的具体技术细节,最后根据所制定的接口进行系统集成即可。因 此,将m v c 编程模型引入w e b 应用程序的设计开发中,可以有效弥补目前w e b 应用程序开发上的不足,也可以加快产品推向市场的时间。 基于m v c 模式进行设计不仅可以很方便的开发三层结构的应用体系,而且 它把用户界面设计、流程控制和事务逻辑进行了分离,即将表现层又分解为视 图和控制器两部分,因此适用于那些多用户的,可扩展的,可维护的,具有很 高交互性的系统,可以很方便的用多个视图来显示多套数据,使系统很方便的 支持其他新的客户端类型,代码重复达到最低。 2 4 面向对象框架技术 面向对象框架技术并不是一个新提出的概念。它随着对象程序设计的产生 而产生,不过受初始应用领域所限,还不为广大软件开发人员所熟悉。对象框 架最初出现在应用开发支持环境及图形用户界面。早期的面向对象应用框架主 要起源于图形用户界面。m i c r o s o f t 公司的m f c ( m i c r o s o f tf o u n d a t i o n c l a s s e s ) 则是一个当今流行的g u i 应用框架,并且在p c 平台上已经成为既成的工业标准。 尽管m f c 有其局限性( 不易移植到工作站u n i x 平台上) ,但它的普及性表明: 在商业应用领域使用可复用的g u i 构件和框架可以提高软件开发的效率。面向 对象应用框架技术已经被证明是降低软件丌发费用和提高软件开发质量的有效 叫j i i 大学坝i j 学位论文 手段之一其优势来自于方法本身的模块化( m o d u f a r i z a t i o n ) 、复用性 ( r e u s a b i l y ) 、可扩展性( e x t e n s i b i l i t y ) 等。实践证明面向对象应用框架是 解决软件复用问题的有效途径。如美国l o sa l a m o s 国家实验室丌发的p o o m a 并行应用框架有效地缩短了离予物理领域并行应用软件的开发周期井且该系 统具有良好的扩充性和可移植性。 在以复用为目的的软件开发中,为复用而开发的对象框架可以作为一种大 粒度的、抽象级别较高的软件构件进行复用,而且对象框架还可以为构件的组 装提供基础和上下文。框架由于提供了大粒度的复用而被认为是一种很有前途 的面向对象技术。单独类的复用,尽管有用,但由于复用较度小而不能引起生 产力的飞跃。只有把特定领域的对象框架作为一个整体进行复用才能取得引人 注目的成就。用框架,开发人员不必每次都从头开始开发应用,框架是一组对 象的集合所以它的设计与代码都可以被复用。基于对象框架的软件开发过程, 把软件的开发看作一个组装过程,在对象框架的指导下寻找可复用构件并进行 系统组装,从应用领域划分对象框架可分为领域框架、应用框架、支持框架。 对象框架的开发涉及的方法技术较多,包括领域工程、逆向工程、体系结 构、设计模式等等。体系结构在很大程度上决定了一个系统的开放性、健壮性 等特性。在这种背景下,软件构架的重要性得到了充分体现,对软件构架的深 入研究与应用将会成为提高软件复用度的新的有效的途径。 设计模式是对在特定的上下文中不断出现的具体设计的一个抽象。这里的 具体设计就是为这些经常遇到的设计问题而找到的解决方法。这些问题经常在 一定的上下文中出现,并受到一些因素的制约。针对于这些问题的解决方法可 以综合考虑这些制约因素而给出相对于该上下文来说晟好的解决方案。从这些 成功的解决方法中抽取出来的模式抓住了这类问题的本质,并用一定形式把它 表达出来。模式都有自己的名字,它们扩大了软件设计者的词汇,使得软件设 计可以在一个更高的层次上进行。 进行领域工程,研究发掘应用领域可复用的设计模式,并且基于发掘出的 设计模式开发应用框架是一条完整的解决软件复用问题的有效途径。 w a s h i n g t o n 大学的d o u g l a ss c h m i d t 教授在研究了通讯领域分布式系统的模式 系统c p d 后,基于该模式系统,s c h m i d t 研究小组成功地开发了一个面向并发 j 心川天学颧:卜学位论史 通讯系统软件开发的应用框架a c e ( a d a p t iv ec o m m u n i c a t i o re n v r o n m e n t ) 。 企业应用框架具有较为广泛的应用领域,如通讯、航空肮天、制造业和金 融等领域,它将成为企业软件开发及商业行为的坚强柱石。与协同体系结构框 架和中问件集成框架相比企业应用框架的开发成本较高,然而却有潜在的回报, 因为它直接为最终应用软件产品的开发提供复用组件。由于应用领域范围广泛, 很多领域依然缺乏专业应用框架,而要软件专业人员配合应用领域专家研制开 发该专业领域内的应用框架。 目前,面向对象框架的研究才刚刚起步,尤其是领域的框架研究,需要对 各种各样的研究实例进行分析、研究和提炼,为面向对象应用框架方法学的发 展提供新的研究思路。它的研究将极大的推动软件开发新方法的应用,框架本 身的应用将极大的减少领域开发工作的难度,减轻应用开发的劳动量,而框架 的精化及其过程也将为其它框架的研发提供一定的借鉴作用。 2 5s t r u t s 框架技术 2 5 1s t r u t s 框架概述 框架( f r a m e w o r k ) 是可重用的,半完成的应用程序,可以用来产生专门的 定制程序。程序大致上由两类性质不同的组件组成,一类与程序要处理的具体 事务密切相关,我们不妨把它们叫做业务组件;另一类是应用服务。比如说: 一个税务征管系统和一个图书管理系统会在处理它们的业务方面存在很大的差 异,这些直接处理业务的组件由于业务性质的不同不大可能在不同的系统中重 用,而另一些组件如决定程序流向的控制、输入的校验、错误处理及标签库等 这些只与程序相关的组件在不同的系统中可以很好地得到重用。人们自然会想 要是把这些在不同应用程序中有共性的一些东西抽取出来,做成一个半成品程 序,这样的半成品就是所谓的程序框架,再做一个新的东西时就不必白手起家, 而是可以在这个基础上开始搭建。实际上。有些大型软件企业选择自己搭建这 样的框架。 s t r u t s 作为一个开放原代码的应用框架,在最近几年得到了飞速的发展, 在j s pw e b 应用开发中应用得非常广泛,有的文献上说它已经成为j s pw e b 应 u u 川人学坝上学位论文 用框架的事实上的标准“1 。 图2 2s t r u t s 模型i m o d e l1 是一个以j s p 文件为中心的模式,在这种模式中j s p 页面不仅负 责表现逻辑,也负责控制逻辑。专业书籍上称之为逻辑耦合。在页面中,这种 处理方式,对一些规模很小的项目如:一个简单的留言簿,也没什么太大的坏 处,实际上,人们开始接触一些对自己来说是新的东西的时候,比如,用j s p 访问数据库时,往往喜欢别人能提供一个包含这一切的单个j s p 页面,因为这 样在一个页面上他就可以把握全局,便于理解。但是,用m o d e l1 模式开发大 型应用程序时,程序流向由一些互相能够感知的页面决定,当页面很多时要清 楚地把握其流向将是很复杂的事情,当您修改一页时可能会影响相关的很多页 面,使得程序的修改与维护变得异常困难;还有一个问题就是程序逻辑开发与 页面设计纠缠在一起,既不便于分工合作也不利于代码的重用,这样的程序其 健壮性和可伸缩性都不好。 为了克服m o d e ll 的缺陷,人们引入了m o d e l2 ,如图2 3

温馨提示

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

评论

0/150

提交评论