(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf_第1页
(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf_第2页
(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf_第3页
(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf_第4页
(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)mvc设计模式在web中的复用研究与实现.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 基于m v c 的w e b 服务器端软件框架能够有效的提高w e b 应用程序 的可复用性。x m l m v c 软件框架是基于软件框架技术、x m l 语言而提 出的一个对传统m v c 设计模式的w e b 软件框架的改进方案。有别于 s t r u t s 等传统m v c 软件框架,x m l m v c 软件框架使用了x m l 实现m v c 中的模型,x m l 语言是一种数据描述语言的标准,其设计目标决定了 x m l 具有内容和形式的分离,良好的扩展性、跨平台性和自描述性,用 户可以随意定义自己的数据格式,这使得x m l m v c 软件框架具有更大 的灵活性以及更强的通用性。 通过研究w e b 服务器端的交互特点,给出了m v c 设计模式在w e b 。 服务器端的架构,这个架构是在w e b 服务器端实现m v c 设计模式的基 础。在这个架构之下,具体分析了x m l m v c 软件框架约设计与实现, 给出了m v c 设计模式每一部分在这样一个软件框架中实现的要点和技 术细节,从而在实际上实现了一个基予x m l 的m v c 软件框架。x m l m v c 软件框架通过一组相互关联和协作的类和接口来实现m v c 设计模式。 给出了一个基于x m l m v c 软件框架的w e b 应用程序,验证了x m l m v c 软件框架的可用性和对软件复用的初步支持。 在基于x m l m v c 软件框架的开发过程中,开发人员只需要将精力 集中于应用程序事务逻辑上的设计,这种复用首先体现为对应用程序骨 结构的复用,开发人员只需要正确配置其应用程序的事务逻辑的映射即 可。其次x m l m v c 可以看成是基于构件的w e b 应用程序的一个生成平 台,在x m l m v c 软件框架中,w e b 应用可以通过这个软件框架生成。 关键词:软件复用,模型视图控制器设计模式,软件框架 。-_-_-。-_-_一一 i 华中科技大学硕士学位论文 a b s t r a c t m v c d e s i g np a t t e r n b a s e dw e bs e r v e r s i d es o f t w a r ef r a m e w o r k sc a n i m p r o v e t h er e u s eo fw e b a p p l i c a t i o ne f f e c t i v e l y x m l m v c s o f t w a r e s o f t w a r ei sas o f t w a r ew h i c hb a s et h e t e c h n o l o g y o fs o f t w a r e f r a m e w o r k s ,x m l ,i ti s a i m p r o v e m e n tf o rt h ef o r m e rm v cf r a m e w o r k s s u c ha ss t r u t s d i f f e r e n tf r o ms t r u t s ,t h ex m l m v cs o f t w a r er e a l i z et h e m o d e lb yx m l i nm v c d e s i g np a t t e r n x m li sad a t ad e s c r i p t i o nl a n g u a g e s t a n d a r l t h ed e s i g no b j e c t i v e o fx m ld e c i d ex m lh a v et h ef e a t h e r s : s e p a r a t i o n o fc o n t e n ta n d f o r m ,g o o de x t e n s i b i l i t y ,p l a n ti n d e p e n d e n c y , s e l f - d e s c r i p t i o n ,a n ds ot h eu s e rc a nd e f i n eh i so w nd a t af o r m a t ,a n ds o ,t h e x m l m v cs h a r eh ig hf l e x i b i l i t yo fx m l b yt h er e a s e a r c ho fw e bs e r v e rs i d e ,a na r c h i t e c t u r eo fm v cd e s i g n p a t t e r ni nw e bs e r v e r - s i d eh a v eb e e ng i v e n ,i ti st h eb a s i ct or e a l i z em v c d e s i g np a t t e r ni nw e bs e r v e rs i d e i nt h i sa r c h i t e c t u r e ,w ea n a l y s i st h e d e s i g na n dr e a l i z a t i o no f t h ex m l m v cs o f t w a r ef r a m e w o r k s x m l m v ci s ac o m p o n do fs o m ec l a s s e sa n di n t e r f a c e s a n da tl a s t ,a n a p p l i c a t i o nb a s e x m l m v cr e a l i z e d u n d e rt h e d e v e l o p m e n t b a s e dx m l m v cs o f t w a r e f r a m e w o r k s ,t h e d e v e l o p e r sc a no n l yd e v o t et ot h et r a n s a c t i o nl o g i ca n dh ew i l lr e u s et h e a p p l i c a t i o nf r a m e w o r k sf r o mx m l m v cs o f t w a r ef r a m e w o r k s ,a n ds o ,t h e a p p l i c a t i o n f r a m ew i l lb e r e u s e ,t h ed e v e l o p e rw i l lc o n f i gt h e s y s t e m c o r r e c t l y a n d ,x m l m v cc a nb er e g a r da st h ep l a n to fc o m p o n e n t - b a s e d w e b a p p l i c a t i o n ,ac o m p o n e n t b a s e d w e b a p p l i c a t i o n c a nr e a l i z e di n x m l m v cs o f t w a r ef r a m e w o r k s k e y w o r d :s o f t w a r er e u s e ,m v cd e s i g np a t t e r n , s o f t w a r ef r a m e w o r k l l 独创性声明 本人声明所里交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期:沁,年f 月- 1 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于, 不保密区 ( 请在以上方框内打“”) 学位论文作 日期:墨一 指导 日期: 华中科技大学硕士学位论文 1绪论 1 1 课题背景 随着计算机技术的进步和i n t e r n e t 网络的普及,通过w e b 向客户提 供服务成为现代软件发展的一种趋势,传统的商务活动也在向w e b 转亿。 在可以预见的将来,这种基于w e b 的服务一定会在相当程度上取代传统 应用而在人们的生活中占据相当的地位。 基于这种变化,对于w e b 开发而言则提出了许多的要求,使得w e b 开发需要在复杂性,精确程度,可复用性等方面满足这种变化,而传统 w e b 开发不能满足这种需要。这就要求w e b 在体系结构上能够适应这种 变化。 m v c ( m o d e l v i e w c o n t r o l l e r ) 设计模式以及基于m v c 的框架的应用 早已有之,在桌面系统中,这种应用已有很多成功的例子。如m i c r o s o f t 公司的产品m f c ( m i c r o s o f t f o u n d a t i o nc l a s s ) 中的d o c u m e n t v i e w 结构就 是一个典型的m v c 框架,这是m v c 设计模式在桌面系统中的一个典型 应用。在w e b 开发领域,也有很多基于m v c 的软件框架 1 - 2 ,如著名的 s t r u t s ,s t r u t s 使用一个a c t i o n f o r mj a v a b e a n 来表示m v c 中的模型数据, 这样就会在系统中产生大量的b e a n 类。 x m l ( 可扩展标记语言) 是w 3 c 组织( w o r l dw i d ew e bc o n s o r t i u m ) 制定的一个数据描述语言的标准,近年来这种技术在各个方面得到广泛 的应用,因为所有基于x m l 的应用都享有x m l 固有的内容和形式分离, 良好的扩展性,良好的跨平台性和良好的自描述性等特点。 基于m v c 设计模式和x m l 技术,通过对其它框架的研究,本课题 提出了一种w e b 服务器端的解决方案,实现了一个w e b 的m v c 框架, 称之为x m l m v c 软件框架。 本课题是关于m v c 设计模式在w e b 中的复用研究的,将m v c 设计 模式应用于w e b 的思想和框架早已有之,本文结合x m l 技术,提出并 完成了一个x m l m v c 框架。这首先是一种框架级的复用研究,这种框 架级的复用由于分离了应用程序对象的不同部分,也会给其它部分的复 华中科技大学硕士学位论文 用带来一定的基础。在本课题中,对于其它的基于m v c 设计模式的w e b 框架提出了一种改进的方法,即使用x m l 文档而不是j a v a b e a n 类来表 示m v c 中的模型数据,从而克服其它框架中的一些缺点而享有x m l 文 档所固有的优点 3 - 4 j 。 软件框架,是指一组紧密关联的c l a s s e s ( 类) ,强调彼此的配合以完 成某种可以重复运用的设计概念。这些类之间以特定的方式合作,彼此 不可或缺,它们相当程度的影响了程序的形貌。框架本身规划了应用程 序的骨干,让程序遵循一定的流程,展现一定的风貌和功能。这样就使 程序员不必费力于通用性的功能的繁文缛节,集中精力于专业领域。基 于软件框架的应用都有两部分构成:框架部分和特定应用部分。要想达 到软件框架复用的目标,必须要做到框架部分和特定应用部分的隔离。 在软件框架中完成抽象概念之间的交互、关联,把具体的实现交给特定 的应用来完成。 本文基于m v c 设计模式和x m l 技术提出的x m l m v c 框架,成功 实现了一个m v c 框架,使得在w e b 中的视图要素,商业逻辑得到分离。 在x m l m v c 框架中,由于使用x m l 来表示m v c 框架中的m o d e l 数据, 这是x m l m v c 对其它框架的改进,从而享有x m l 固有的优点,也是它 优于其它同样基于m v c 设计模式的w e b 软件框架之处。 本文所提出的m v c 在服务器端的框架也针对这一问题提出了一个 合理,虽然未必是完善的解决方案,它将应用程序的视图,模型也就是 应用对象实现分离,从而使得开发人员之间的独立协作开发成为可能。 通过本课题的研究,系统地研究了软件框架相关的技术,如基于软 件框架构造应用程序的方法,更重要的是对软件框架构造技术的研究, 使我对软件框架技术有更深的了解。作为本课题提出的x m l m v c 框架 具有一定的特定,有一定的应用价值。它与目前流行的m v c 框架有显 著的不同,虽然未必会作为替代s t r u t s 的产品,但作为对s t r u t s 的改进 方案x m l m v c 无疑具有一定的优势。 1 - 2 国内外概况与关键技术 1 2 1 国内外对m v c 框架的研究与应用 国内外对m v c 框架的研究与应用早已有之。在桌面系统中,这种 华中科技大学硕士学位论文 应用已有很多成功的例子。如m i c r o s o f t 公司的产品m f c ( m i c r o s o f t f o u n d a t i o nc l a s s l 中的d o c u m e n t v i e w 结构就是一个典型的m v c 框架这 是m v c 设计模式在桌面系统中的一个典型应用。 在w e b 开发领域,也有很多基于m v c 的框架 卜2 1 ,如著名的s t r u t s , s t r u t s 将j a v as e r v l e t 和j s p 技术结合在一起,从而实现了一个w e b 的 m v c 框架i s - 7 。现在s t r u t s 框架在w c b 中得到了一定的应用,通过w e b 可以构造大型、易变的w e b ,s t r u t s 本身就是一个可重用的m v c 框架, 同时s t r u t s 本身是一个开放源代码的m v c 框架,因此开发人员可以有针 对性的在其基础上添加与本身相关的内容。这是s t r u t s 的优点。s t r u t s 也有其不足之处,首先是学习困难,虽然对于复杂的、大型的w e b ,s t r u t s 很有用处,但s t r u t s 很复杂,不利于学习;其二s t r u t s 使用了a e t i o n f o r m j a v a b e a n 来表示m v c 中的模型数据,这样针对每个f o r m 都需要为它创 建一个a c t i o n f o r mj a v a b e a n ,在系统中就会产生大量的j a v a b e a n 类,同 时加大了处理的难度。 另外,基于m v c 的w e b 框架还有v e l o c i t y 等,这些框架各具有其 特点和优点。 本文即是基于s t r u t s 中的缺点,使用x m l 代替j a v a b e a n 来表示m v c 中的模型数据,在w e b 服务器端实现一个x m l m v c 框架。 1 2 3 软件复用 软件复用是指重复使用“为了复用目的而设计的软件”的过程。相 应的,可复用软件是指为了复用目的而设计的软件。 软件复用概念的第一次引入是在1 9 6 8 年n a t o 软件工程会议上 8 - 9 1 。 近十几年来,面向对象技术的出现并逐渐成为主流技术,为软件复用提 供了基本的技术支持。软件复用的研究也成为热点,被视为是解决软件 危机,提高软件生产率和质量的现实可行的途径。 软件复用的对象包括软件开发过程中所使用和产生的各种资源,包 括源代码、各种文档、测试数据、设计方法、体系结构等等,总称为可 复用资产。 软件复用就其复用的级别而言,最低层的复用是代码复用,然后依 次为软件库复用,构件复用,框架复用,设计模式的复用。各种类型的 复用为软件的复用提供不同层次的支持。 华中科技大学硕士学位论文 面向领域的应用框架的复用是软件复用技术发展的必然结果,现在, 这种基于框架的复用已经成为软件生产中最有效的复用方式之一”“1 a 它首先可以被看成是成熟的软件结构的复用,从软件构件技术讲,也可 以看成是基于构件的软件的骨架和容器1 1 2 。 1 2 4 设计模式 设计模式“针对面向对象系统中重复出现的设计问题,提出的一种 通用的解决方案,并予以系统化的命名和动机解释。它描叙了问题、解 决方案、在什么条件下使用该方案及其效果。它还给出了实现要点和实 例。该解决方案是解决该问题的一组精心组织的通用类和对象,再经过 定制和耍现就可以用来解决特地上下文中的问题。”所以设计模式描叙了 一个在实际应用中经常出现的问题,以及该问题的解决方案的核心,使 得模式的使用者可以一次又一次的使用该方案而不必做重复的劳动 1 3 1 。 模式可分为构造型设计模式,结构型设计模式和行为型设计模式。 设计模式是实现可复用面向对象软件的基础。 本文描述的是m v c 设计模式与软件框架技术结合的一个具体应用, 是设计模式的一个软件框架实现。 1 2 5m v c 设计模式 m v c 是m o d e l v i e w c o n t r o l l e r 的简称,称为模型视图控制器。m v c 首先在s m a l l t a l k 8 0 中提出并实现,在用户界面领域和桌面系统中,m v c 设计模式取得了很大的成功【1 3 1 。 m v c 模式由三部分组成。 1 模型( m o d e l ) :应用程序逻辑模块,它是一组表示应用系统商业 逻辑的对象。它表示的是解决方案空间的真正逻辑。它采用面向对象的 方法,将问题领域中的对象抽象为应用程序对象,在这些抽象的对象中 封装了对象的属性和这些对象所蕴涵的逻辑。 2 视图( v i e w ) :用户视图模块是系统的显示逻辑,它是用户界面 部分。主管应用程序与人之间的接口,一方面,它为用户提供了输入手 段,并触发应用程序逻辑的运行;另一方面它又将逻辑运行的结果以某 种形式显示给用户。 3 控制器( c o n t r o l l e r ) :流程控制模块,这是应用系统处理具体流 4 华中科技大学硕士学位论文 程和导向的核心部分。控制器具体定义了用户界面对用户输入的响应方 式。一方面它解释来自v i e w 的输入,将其解释成系统能够理解的对象。 同时它也识别用户动作,并将其解释为对m o d e l 的特定方法的调用;另 一方面,它也处理来自m o d e l 的事件和m o d e l 逻辑执行的结果,调用适 当的v i e w 为用户提供反馈。 m v c 设计模式的关键是商业模型的设计与实现可以独立于应用系 统的结构设计与实现( 控制) 和界面的设计与实现( 视图) 。m v c 模式 如图1 1 所示。 图1 1 m v c 设计模式筒图 m v c 通过个“定购,通知”协议来分离视图和模型。视图必须保 证它的显示正确地反应模型地状态。一旦模型中的数据发生了变化,模 型将通知有关的视图,每个视图相应地刷新自己的显示。 可以看到,m v c 设计模式把用户界面设计,流程控制和事务逻辑进 行了分离。基于m v c 设计模式的开发中,各个模块之间的接口一旦制 定,开发人员就可以根据模块的主要功能选用适当的技术对该模块进行 有针对性的开发,而无须熟悉实现其阿嚏模块的具体技术细节,最后根 据所制定的接口进行系统集成即可。因此将m v c 设计模式引入w e b 的 设计开发中,就可以弥补w e b 开发中的不足。m v c 中三要素的分离也 使得w e b 应用程序中的复用提供了一个可靠的软件框架。 1 2 6x m l 技术 x m l ( e x t e n s i b l em a r k u p l a n g u a g e ,可扩展标记语言) 1 4 州l 是w 3 c 组织( w o r l dw i d ew e bc o n s o r t i u m ) 制定的一个数据描述语言的标准。 它是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ) 的一个子集。在 x m l l 0 标准中说明了x m l 的以下设计目标: 华中科技大学硕士学位论文 1 x m l 应该可以在互联网上直接使用; 2 x m l 应该支持各种不同的应用方式; 3 x m l 应该与s g m l 兼容: 4 处理x m l 文档的应用程序应该容易编写; 5 x m l 文档应该具有良好的可读性,并且比较清晰: 6 x m l 文档应该容易编制; 7 x m l 标记的简洁性并不重要。 x m l 的设计目标决定了x m l 具有内容和形式分离,良好的扩展性, 良好的跨平台性和良好的自描述性等特点。x m l 的最大特点是它的可扩 展性,用户可以随意定义适合自己的数据属性和标签,x m l 实际上是一 种定义语言,即使用者可以定义无穷无尽的标记来描述文件中的任何数 据元素,从而突破了h t m l 固定标记集合的约束,使文件的内容更丰富 更复杂并组成一个完整的信息体系。因此,x m l 非常适合用于描述那些 具有逻辑结构的和丰富语义的数据。与h t m l 仅仅对于人是可读的不同, x m l 对于计算机也是可读的,这样更加有利于计算机对那些用x m l 语 言表示的数据进行处理 1 6 l 。 x m l 采用d t d ( d o c u m e n t t y p ed e f i n i t i o n ) 或x m ls c h e m a 来描述 x m l 文档的逻辑结构,定义x m l 文档中的元素、元素的属性以及各元 素、元素和属性之间的联系。通过d t d 或x m ls c h e m a 可以定义一系列 的标签及其约束,用来描述如何用x m l 来表示数据的结构和属性,其实 质是一种元模式的数据描述语言,它提供了语法元素、元素属性和语法 解析规则的定义方法,具有较大的丰富性和可扩展性。 x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ,可扩展样式语言) 定义了x m l 的语法规范,该语法规范被用来把x m l 文件转换成h t m l 、x m l 或其 它格式的文档。一个x s l 样式表集合了一系列设计规则,用于从x m l 文件中抽取信息,并将其转换成h t m l 等其它格式。这种转换采用了公 开的方式,使其能够更加方便地被程序员描述。而且x s l 还将提供多种 脚本语言的通道,以满足更为复杂的应用需求。x s l 本身是x m l 的应 用之一,它直接架构在x m l 的语法上,因此一个x s l 文件也是一个x m l 文件。 x s l t ( x s l t r a n s f o r m a t i o n s ,x s l 转换) 是作为x s l 的一部分使用 的,x s l t 处理x m l 文件是采用转换的方式,x s l t 处理程序把一篇x m l 、 6 , 华中科技大学硕士学位论文 文档处理成树形结构,它由一个节点集合组成,这些节点起始于一个根 节点,根节点指向的节点对应于x m l 文档中的根元素,根节点连接它的 子节点,每个子节点又连接零个或多个它的子节点,文档中的每个元素 都对应于某个节点。x s l t 文档包含一组模板规则和其它规则。模板规则 包括匹配模式( p a t t e r n ) 和输出模板( t e m p l a t e ) 。x s l t 处理程序依次 扫描每个子树形结构,同时将其与模式相匹配,如果吻合,则按照模板 中规定的形式输出这个子树形结构中的数据。 x p a t h ( x m lp a t hl a n g u a g e ,x m l 路径语言) 是用作x s l t 和x p o i n t e r 的对x m l 文档各部分进行定位的语言。它给x s l t 提供一个共同、整合 的定位语法,用来定位x m l 文件中各个部位。x p a t h 除了提供一套定位 语法之外,还包括一些函数,它们提供基本的数字运算、布尔运算和字 符串处理功能。x p a t h 使用一个紧凑的、非x m l 的语法来方便实现x p a t h 在x m l 属性值中的使用,它基于x m l 文档的逻辑结构,在该结构中进 行导航。除了用于定位,x p a t h 自身还有一个子集能用于进行匹配,它 能验证一个节点是否匹配某个模式。x p a t h 把一个x m l 文档看成一个树 或节点的模型。节点的类型有多种,包括元素节点、属性节点和文本节 点。 d o m ( d o c u m e n to b j c o tm o d e l ,文档对象模型) 是针对x m l 文档 的a p i ,定义了文档的逻辑结构以及访问它们的方法。它定义了一个标 准的访问和处理x m l 结构的方法。为了表现这种分层结构的本质,d o m 提供了整套的对象、方法及属性以使我们能处理d o m 。使用d o m 模型, 程序员可以方便地创建文档、导航其结构,或增加、修改、删除、移动 文档的任何成分。d o m 作为w 3 c 的规范,它的重要目标是提供一个适 用于多种不同编程环境、任何编程语言的标准编程接口。 1 3 课题的主要研究工作 本课题的是关于m v c 设计模式在w e b 中的复用研究,其具体目标 在于一个x m l m v c 软件框架的设计与实现。基于m v c 设计模式的w e b 框架早已有之,x m l m v c 异于大部分此类软件框架之处在于使用了 x m l 来表示和存储m v c 设计模式中的m o d e l 数据。 本课题的主要工作如下: 华中科技大学硕士学位论文 1 m v c 设计模式在服务器端的架构研究; 2 x m l m v c 软件框架系统的分析与设计; 3 x m l m v c 的实现; 4 基于x m l m v c 软件框架的开发; 5 x m l m v c 软件框架复用性评价。 一一 8 华中科技大学硕士学位论文 2 软件框架与x m l m v c 框架设计 本章简要介绍了软件框架以及基于软件框架的复用技术,讨论了软件 框架构造技术。就本质而言,x m l m v c 是一个软件框架。本章提出来 m v c 设计模式在服务器端的架构,最后给出了x m l m v c 软件框架的分 析设计过程。 2 1 软件框架 2 1 1 软件框架的概念 近年来,软件复用已经成为软件工程领域中最重要的目标之一。在 早期的一些方法,如函数和过程库,便是对软件复用的尝试,但这些只 能复用小型的,编译成模块的组件。软件框架技术是一种可以复用大型 组件的复用技术,可以说软件框架技术是软件工程发展的必然结果。 对软件框架的定义有很多种,如软件框架是:1 大粒度的可复用构 件;2 应用系统的半成品,通过具体的可定时产生应用系统;3 由一组 相互关系的构件组成 1 7 - 1 9 1 。 软件框架规定了应用的体系结构,它定义了整体结构,类和对象的 分割,各部件的主要责任,类和对象怎样协作,以及控制流程,软件框 架预定义了这些设计参数,以便于应用设计者能集中精力于应用本身的 特定细节。软件框架记录了其应用领域的共同的设计决策,因而框架更 强调设计复用,尽管其中也会包括具体的立即可复用的类f 1 2 】。 基于软件框架的复用导致了应用和它所基于的软件之间的方向控 制,当使用工具包开发应用系统时,开发人员需要写应用软件的主体并 调用复用的代码或者可复用构件。而当使用软件框架时,应该复用的是 应用的主体,编写主体的代码。 使用软件框架可以更快的建立应用,并且应用还具有相似的结构。 它们很容易维护,且用户看来更致。 在实现的角度看来,软件框架是构成一类专业领域可复用设计的一 组相互协作的类,它规定了应用的体系结构,系统中的类和对象的分割 9 华中科技大学硕士学位论文 及协作,各部分的主要责任,控制流程。一个软件框架就是一个用于构 建针对专门客户应用的可重用的“半成品”应用。与其它早期基于类的 可重用的面向对象技术相比,软件框架更专注于具体的业务单元( 如数 据处理、通信功能单元) 和专业领域( 如用户界面、实时电子应用) 。 软件框架是一类可复用的设计构件,它规定了应用的体系结构。阐 明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现 为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文 关系。相当多领域中的开发人员已经成功地开发了许多的软件框架,如 微软基础类库( m f c ) 已经成为p c 平台上开发g u i 框架的事实标准它 的广泛应用标志着软件框架在开发图形界面领域的成功。此时,软件 框架的主要优点主要表现在为软件工程师提供改善软件模块性、一致性、 扩展性和“逆控制”手段,进而提高软件的重用和品质保证。现在软件 框架专注于具体的业务单元和应用领域,特别是c o r b a 、j 2 e e 和微软 的n e t 等软件框架的出现和成熟,它们封装了构架一个分布式应用的基 础服务和功能组件,使软件开发工程师把注意力集中在业务分析,不用 考虑底层结构的实现,能够更快地开发出高品质的系统以满足应用需求。 2 1 2 基手软件框架的复用 工业化的软件复用已经从通甩类库复用演化到了面向领域的应用框 架。g a r t n e rg r o u p 认为:“到2 0 0 3 年,至少7 0 的新应用将主要建立在 如软件构件和软件框架这类构造块之上:应用开发的未来就在于提 供一开放体系结构,以方便构件的选择、组装和集成。”软件框架的重用 已成为软件生产中最有效的重用方式之一【1 0 。1 1 ,2 0 啪j 。 软件框架可以看成是基于构件的软件的骨架,通过软件框架,可以 构建分布式、重用、基于构件的安全的应用。基于软件框架建立的构件 系统具有如下性能: 1 实现面向产品化、实用性的构件库系统,并具开放性、可扩展性; 2 支持异构环境中的框架、构件的互联和通信: 3 实现新旧系统的兼容性; 4 提供一致的接口分配; 5 遵循重要构件标准,如c o r b a 、j 2 e e 、n e t 等; 6 构件具有透明本地化、平台无关性特点: -_-_-_-_-_一一 1 0 华中科技大学硕士学位论文 7 系统的配置、数据交换基于x m l 和j a v a 的标准化格式; 8 支持个性化信息服务定制和可重构。 基于软件框架的软件的设计开发方法在很大程度上借鉴了硬件技术 发展的思想。通俗地说“它是用硬件生产的方法设计和开发软件”,是构 件技术、软件体系结构研究和应用软件开发三者发展结合的产物。软件 框架可以认为是粗粒度的构件的形式,它通常以框架库的形式表现。软 件框架的关键还在于软件框架内对象间的交互模式和控制流模式。 基于软件框架技术进行软件开发有很多的优点和特点: 1 领域内的软件结构一致性好:软件框架往往是针对特定领域的复 用规则,以此采用软件框架设计的软件在结构上一致性好;这种一致性 不仅可以简化开发过程,同时可以简化维护成本和软件使用的培诩成本; 建立更加开发的系统: 3 复用代码大大增加。软件生产效率和质量也得到了提高; 4 软件设计人员只需专注于对领域的了解,使得需求分析更充分; 5 存储了经验,可以让那些经验丰富的人员分剔去设计软件框架和 领域构件,而不必限于底层编程; 6 适合于采用快速原型技术: 7 有利于在一个项目内多人协同合作开发; 8 大粒度的复用使得平均开发费用降低,开发速度降低,开发人员 减少,维护费用降低,而参数化的软件框架使得适应性灵活性增强。 如果说类库通常是代码重用。而设计模式是设计重用,那么软件框 架则介于两者之间。部分代码重用,部分设计重用,有时分析也可重用。 在软件生产中有三种级别的重用:内部重用一一对同一应用中能公共使 用功能抽象复用;代码重用一一将通用模块组合成库或工具集,以便在 多个应用和领域都能使用;应用框架的重用一一为专用领域提供通用的 或现成的基础结构,以便于集成或组装其它功能块达到更高级别的重用 性。 软件框架是面向对象的类库的扩展,软件框架由一个应用相关联构 件家族构成,这些构件协同工作形成了软件框架的基本结构骨架,并在 此基础上通过构件的组合进一步构建一个完整的应用系统。类库构件没 有应用领域特征,可以在较小的范围内重用,例如与字符串、复杂数、 数组和数字位集合相关的类库,它们应用层次较低,在一般韵系统中普 -_-,-_-_-,-_-_-一 l l 华中科技大学硕士学位论文 遍使用。在系统设计的实际过程中,软件框架和类库是两种互为补充的 技术,我们用软件框架表示那些与特定应用相关的架构或软件骨架,类 库则完成一些基本的任务如字符串处理、文件管理、数学计算和分析, 框架在实现中调用。 构件是自包含的抽象数据数据类型实例,通过构件的拼装可以组成 完整的软件系统,如v b x 控件、c o r b a 的对象服务等等,构件的复用 仅仅依赖构件封装的接口,与软件框架相比耦合性小,可以在二进制代 码级复用。在软件开发过程中,软件框架和构件可以互相利用,而两者 没有主从之分。我们可以利用构件来实现软件框架,同时也可以把软件 框架封装在一个构件中。 类库、构件、模板和软件框架是软件开发过程中常用的几种提高软 件质量降低开发工作量的有效的软件复用技术,要利用好这些技术尤其 是设计模式和软件框架还面临许多挑战。要大量地建立和利用可复用的 部件要解决好如下问题:这是一个巨大工程,前期的难度和工作量都较 大,是一个长时间的积累。同时还要考虑部件的集成性、可维护性、有 效性和排错能力,最重要的是标准的建立。 2 1 3 软件框架的设计 软件框架( f r a m e w o r k s ) 是整个或者部分系统的可复用设计,使用 软件框架的最大好处就是复用,在面向对象系统中最大的复用方式就是 软件框架,一个大的应用系统往往可能由多层相互协作的软件框架组成。 由于软件框架能复用代码,以此从一已有构件库中建立应用将变得非常 容易,因为构件都采用了软件框架统一定义的接口,从而使得构件之间 的通信变得简单。软件框架能重复设计,它提供可复用的抽象算法及高 层设计,并能将大系统分解城更小的构件,而且能够描叙构件之间的内 部接口。这些标准接口使在已有构件基础伤通过组装建立各种各样的系 统成为可能。只要符合接口定义,新的构件就能插入到软件框架中,构 件设计者就可以复用软件框架的设计了 2 3 - 2 4 l 。 基于软件框架的应用程序开发中,软件框架基于基础核心的地位, 这就要求软件框架是健壮的、可扩展的、灵活的,并且可以支持动态内 容。而软件框架的设计则要求做到完备性、灵活性、扩展性、可理解性, 同时抽象能用于不同的场合;用户与软件框架的交互清晰,文档齐全。 华中科技大学硕士学位论文 在软件框架设计过程中的一个核心问题就是发现可复用的设计和热点, 以保证软件框架具备充分的灵活性,使用户能在已有构件的基础上生成 应用程序。目前软件框架设计方面成熟的技术有两大类。 实践法:这是实例驱动的设计方法,是从若干典型的应用中抽象相 似点来构建软件框架,软件框架反过来又可应用于不同的问题。这一方 法首先需要分析问题领域,确定所需要的软件框架,从一类应用中去分 析、比较各种不同的软件解决方案,寻求方案的共性和每个程序的唯一 性特征,这些共性就是被多个程序使用的软件框架的基础。然后就是软 件框架的实现了,包括软件框架核心类的发现,软件框架的测试,试运 行以及更新。最后则是软件框架的部署。 系统法:在系统法中,软件框架的设计首先要对问题进行泛化处理, 它要求解决如问题领域中的哪些概念可咀表现为变量需要统一处理。然 后就是软件框架的设计了,往往先实现最通用的软件框架然后实现次通 用的软件框架,以此类推。这需要解决如下的问题:系统中哪一部分可 能需要改变:用户需要在什么地方向框架加入自己的代码【2 5 1 。 这种方法有助于在开发早期发现应用软件框架,并且有利于使用通 用的设计模式。软件框架的设计是一个反复的过程,需要在软件框架设 计人员与应用领域专家之间的交互合作。 最后必须指出的是,软件框架的设计与应用程序的设计在侧重点上 是不同的。设计应用系统时,要求对应用领域的重要概念有较深入的了 解。这些概念可以通过建模演变成类。而在设计框架的过程中,重点在 于识别必须具备灵活性的地方,这是软件框架设计的关键所在。而基于 软件框架的应用程序开发,则可以抛开应用程序中易变的,结构的部分, 只需专注于应用领域内的分析设计即可,这也是软件框架技术的优点所 在。 2 1 4 软件框架的开发过程 基于软件框架的开发过程 2 6 - 2 8 1 包括六个阶段。 1 领域分析:领域分析是在给定的领域中,通过分析找出所有应用 程序所共同的类和对象,建立领域模型,领域模型中包含了该领域中的 需求分析,领域中的相关概念以及它们之间的关系。该模型应该集中于 领域实体而不是实现细节。 _-_-_-_一一 1 3 华中科技大学硕士学位论文 2 需求分析:这一阶段的任务是捕捉所有有效的需求,给出一个能 满足这些需求的理想系统,并结合领域分析,找出系统的共同点,给出 系统需求说明书。 3 软件框架设计:这一阶段包括软件框架体系结构设计和详细设计。 在体系结构设计阶段,结合设计模式,将定义许多抽象类,使得整个系 统结构的设计支持更灵活的变化。在详细设计阶段,将描叙在体系结构 设计中抽象出来的类,并精确定义它们。 4 软件框架实现:这一阶段即对软件框架地抽象类和具体类进行编 码。 5 应用程序设计与实现:通过对应用程序进行分析和设计,得到应 用程序在该领域地特殊要求,从而扩展软件框架来实现改应用程序。在 这一阶段,需要应用程序开发人员对软件框架进行系统地学习,从而能 够有效地使用软件框架进行开发。 6 测试:分为单元测试和集成铡试。 对于软件框架的设计,s h e r i fm 提出了基于设计模式开发软件框架 的思想【2 叭,提出一种使用设计模式作为构筑件的构建面向对象的软件框 架的方法,也就是基于设计模式的软件框架设计方法。在这种方法中, 通过设计模式图来表达框架的体系结构,它有子系统、设计模式和联系 构成。在开发过程中再进一步将这种软件框架表示成两种设计层次:模 式图和类图。在设计软件框架的的过程中,首先进行基于模式框架的体 系结构设计,接下一步是把这些模式拓展为预定义的类图,然后进一步 通过化简和分组来提炼这些类图,生成软件框架的最终类图。 软件框架也是软件,因此常见的软件开发方法同样适用于软件框架 的开发,但因为软件框架所具有的灵活性特点,使得软件框架的开发有 其独特之处。 在现实世界中,有很多领域。更多地集中于特定领域地软件框架地 设计开发是基于软件框架开发地一个发展趋势。本文正是按照这种需要, 研究了在w e b 中的m v c 框架。 2 2 服务器端m v c 设计模式的分析 在w e b 中,服务器端负责用户界面部分的代码是服务器端的表现层。 _-_-_-_一一 、 1 4 华中科技大学硕士学位论文 这一部分的代码不是很复杂,这一部分的工作就是处理输入和显示输出。 对于大多数的w e b 而言,w e b 往往会有一些已经处理好了的h t m l 文档, 服务器端代码处理客户端的表单提交并且重建新的h t m l 页。 在一个w e b 中知道和跟踪用户信息是非常有用的,但这样w e b 需要非常精确了解逻辑事务的边界。这一点对于w e b 的开发来说是很复 杂的,为了克服这种复杂性,很多w e b 应用程序往往通过“无状态”类 型来实现,也就是说这种w e b 只处理单一的h t t p 请求。但是应用的需 求要求w e b 能够向c s 模型那样的应用程序那样工作,这就要求要在服 务器和客户端之间保存“会话”。 所有的w e b 应用程序都是事件驱动的。服务器从客户端接受h t t p 请求,一个h t t p 请求就是一个事件,它们是一个g e t 事件或者一个 p o s t 事件。无论这个事件是g e t 还是p o s t 都将被包装

温馨提示

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

评论

0/150

提交评论