(计算机应用技术专业论文)应用框架层次泛化模型的研究.pdf_第1页
(计算机应用技术专业论文)应用框架层次泛化模型的研究.pdf_第2页
(计算机应用技术专业论文)应用框架层次泛化模型的研究.pdf_第3页
(计算机应用技术专业论文)应用框架层次泛化模型的研究.pdf_第4页
(计算机应用技术专业论文)应用框架层次泛化模型的研究.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 现在软件复用技术的研究已经取得了阶段性成果,构件技术更是发展迅速。基于构 件的软件工程( c b s e ) 已经是软件行业描述最多的术语,利用现有的构件快速地进行 应用系统的开发也是现在普遍采用的开发模式,此模式可以提高软件的生产效率和质 量。随着构件技术的发展,构件粒度对于构件组装的复杂性变化起着不可忽视的作用, 如何进行大粒度构件的组装? 同领域的构件以何种方式结合在一起? 对这些问题的研 究现在逐渐浮出水面,框架技术的研究已经提到了议事日程。构造应用框架是软件复用 技术的飞跃。但是如何构造应用框架才能使框架具有较高的复用程度,才能实现以积木 搭接式方法构造应用系统的理想。本文主要面向如何构造可复用应用框架的相关问题进 行研究。 本文首先介绍了复用技术的基本概念以及一些软件重用技术与构件技术的关系,例 如:设计模式、领域分析、体系结构和x m l 等,探讨应用框架分层构造方式提出了层次 泛化模型,并设计了应用框架的相关工具以支持框架的演化,为提高框架的复用性给出 了一种较为可行的解决办法。然后,本文以教学评估系统为背景,对可重用资源不足、 领域知识不够的非成熟领域如何进行基于构件的开发进行研究,提出了一个以自顶向下 的分析和自底向上的整合为核心的易于大粒度复用的应用框架的设计方案,并根据评估 领域中遇到的具体问题建立一个基于框架、构件与x m l 、h t m l 技术相结合的应用系统, 合理地解决了与此领域相关的实际问题。 关键字应用框架;构件;软件体系结构;软件重用;x i v i l ;h t m l ;评估 a b s 订a c t a b s t r a c t t o d a yt h es o f t w a r er e u s et e c h n o l o g yh a sa l r e a d ym a d es o m ep r o g r e s si ni t sf i e l d , e s p e c i a l l yi nt h ec o m p o n e n tt e c h n o l o g y c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ( c b s e ) h a s b e e nt h em o s tu s e dt e r mi ns o f t w a r ed o m a i n r a p i dd e v e l o p m e n to fa p p l i c a t i o ns y s t e mw i m r e u s e dc o m p o n e n tn o wi st h em o s tp o p u l a rd e v e l o p m e n tm o d e la n db yt h i sw a yt h ee f f i c i e n c y a n dq u a l i t yo fs o f t w a r ec a nb ei m p r o v e d w i t ht h ed e v e l o p m e n to fc o m p o n e n tt e c h n o l o g y , c o m p o n e n tg r a n u l a r i t yp l a y sv e r yi m p o r tr o l eo nt h ec o m p l e x i t yo fc o m p o n e n tc o m p o s i t i o n h o wt oa s s e m b l et h ec o m p o n e n to fb i gg r a n u l a r i t y ? h o wt om a k et h ec o m p o n e n ti nt h es a m e d o m a i ni n t e g r a t e d ? a p p l i c a t i o nf i a m e w o r kb r i n gt h en e we r ao fs o 尚t , v a r er e u s e dt e c h n o l o g y b u th o wt oc o n s t r u c ta p p l i c a t i o nf r a m e w o r kt om a k ei tm g m yr e u s e da n dh o wt or e a l i z et h e i d e a lo fb u i l d i n gb l o c km o d e t h ep u r p o s eo ft h i sp a p e ri sm a i n l yt os t u d yt h ep r o b l e m so f c o n s t r u c t i n gr e u s e da p p l i c a t i o nf r a m e w o r k f i r s t t h i sp a p e ri n t r o d u c e sb a s i cc o n c e p to fr e u s e dt e c h n o l o g ya n dt h er e l a t i o n s h i p s b e t w e e ns o m es o f t w a r er e u s e dt e c h n o l o g ya n dc o m p o n e n tt e c h n o l o g y f o re x a m p l e ,t h i s p a p e ri n t r o d u c e s t h er e l a t i o n s h i p sb e t w e e nd e s i g np a a e m 、d o m a i na n a l y s i s 、s o f t w a r e a r c h i t e c t u r e 、x m la n dc o m p o n e n t t e c h n o l o g y t h i sp a p e rg i v eah i e r a r c h i c a lg e n e r a l 幽i o n m o d e lb a s e do nt h em e t h o do fa p p l i c a t i o nf r a m e w o r kd e l a m i n a t i n gc o n s t r u c t i o na n dp r o v i d ea n e wf e a s i b l em e t h o dt oi m p r o v er e u s eo ft h ea p p l i c a t i o nf r a m e w o r k t h e nb a s e do na t e a c h i n ge v a l u a t i o ns y s t e m t h ep a p e rs t u d yo nt h ed e v e l o p m e n t 、i t hr e u s e dc o m p o n e n ti nt h e i m m a t u r ed o m a i nw h i c hi sl a c ko fr e u s e dr e s o u r c e sa n dd o m a i nk n o w l e d g e t h ep a p e rg i v e sa d e s i g nr e s o l u t i o no fa p p l i c a t i o nf r a m e w o r kw h i c hs u i t a b l ef o rb i gg r a n u l a r i t yi sb a s e do n t o p - t o d o w na n a l y s i sa n dd o w n t o t o pi n t e g r a t i o n ,c o n s t r u c taa p p l i c a t i o ns y s t e mb a s e do n t h e s et e c h n o l o g i e so fa p p l i c a t i o nf r a m e w o r k 、c o m p o n e n t 、x m la n dh t m l a c c o r d i n gt ot h e p r o b l e mo f e v a l u a t i o nd o m a i n ,s o l v et h ep r a c t i c a lp r o b l e mo f t h ee v a l u a t i o nd o m a i n k e y w o r d sa p p l i c a t i o nf r a m e w o r k ,c o m p o n e n t ,s o f t w a r ea r c h i t e c t u r e ,s o f t w a r er e u s e , x m l ,h t m l ,t e a c h i n g e v a l u a t i o n i i 河北大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写的研究成果,也不包含为获得河北大学或其他教育机构的学位或证书 所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了致谢。 作者签名:_ 二翌一心日期:丛年旦月姿日 学位论文使用授权声明 本人完全了解河北大学有关保留、使用学位论文的规定,即:学校有权保留并向国 家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。学校可以公布 论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 本学位论文属于 l 、保密口,在年月日解密后适用本授权声明。 2 、不保密曰。 ( 请在以上相应方格内打“4 ”) 作者签名: 导师签名: 日期:迸年上月j 生日 日期:_ w o a , 4 g 工月芷日 第1 章绪论 随着社会对软件需求程度的不断提高,软件变得越来越复杂,造成了软件的开发周 期长、成本高、质量差,使软件的开发和维护变得十分困难,这个问题长期困扰着软件 产业的发展。如果能够在原有的开发成果( 包括分析、设计、代码、文档) 的基础上来 进行开发,使软件的开发不必一切从头开始,通过充分利用已有开发成果来减少升发过 程中的工作量和不必要的错误,就有可能达到更高的软件生产率和更高的质量,这就是 软件重用的思想。软件重用的思想促进了软件新技术的发展,例如:面向对象( o b j e e t o r i e n t e d ) 技术、软件体系结构( s o f t w a r e a r c h i t e c r a r e ) 、设计模式( d e s i g np a t t e r n ) 、应 用框架( a p p l i c a t i o nf r a m e w o r k ) 、领域分析( d o m a i na n a l y s i s ) 和构件( c o m p o n e n t ) 技术等,这些都是为了能够在不同程度上实现软件重用而做出的努力。 1 1 软件开发方法 软件丌发应该在一定的开发理论和方法指导下进行,从计算机的发明到今天,为了 使软件的丌发合理有序,人们已经提出了很多开发方法和理论,下面简要回顾一下结构 化开发方法、面向对象开发力法和基于构件的开发方法。 111 结构化分析设计方法 由w e d g k s _ r a 首先提出,就是把软件丌发看作数学求解,沿用数学上的枚举、抽 象、归纳、类比等思维方式,把问题简化。用工程的概念、方法、原理和技术来开发和 维护软件,产生了结构化分析和设计的方法。结构化分析方法侧重于功能分解的使用, 这种方法对需求采用独特的“输入一加工一输出”视角,通过需求规格说明搞清楚数据 流的加工过程。利用数据流图表示系统的流程,利用结构图表示各个模块之间的关系。 这种开发方法长期左右着我国的软件开发,无疑起到了重要作用,然而它仍然存在着认 知上的缺陷,如开发周期长、成本高、质量差,特别是所开发的软件不能适应系统的不 断演化。由于结构化分析设计方法没有特意考虑软件重用问题,所以几乎无法重用咀前 断演化。由于结构化分析设计方法没有特意考虑软件重用问题,所以几乎无法重用以前 的开发结果。 1 1 2 面向对象分析设计方法 面向对象分析和设计一般要经过以下的过程:发现类和对象,找到类之间的关系, 然后确定类的属性和操作。面向对象开发方法将系统看成由多个对象组成,通过对象之 间的通信形成系统,为客观世界过渡到软件系统提供了有效的途径和编程的思维方法。 面向对象开发方法支持软件重用,以类和对象作为重用的单元,以类的继承作为重用的 手段。其主要特征是:( 1 ) 类和封装性,实现数据抽象和信息隐蔽,给出了对象类型 和参数化,通过生成实例后组装成系统,提供了实现复用的手段。( 2 ) 继承性,提高 了代码复用性。( 3 ) 多态性。 但是要想实现重用,开发人员必须十分了解类层次的细节,若想从中找到可以重用 的类一般是十分困难的;另外,通过类继承的重用方式是白盒重用,一方面子类必须了 解父类的属性和行为,另一方面父类的改变直接影响到子类。 所以,理想的重用单元应该是可以独立部署、功能稳定的黑盒单元,理想的支持软 件重用的软件开发方法应该是把重点放在开发并且利用这种黑盒单元的开发方法。基于 这种思想,构件技术和c b d ( c o m p o n e n t b a s e dd e v e l o p m e n t ,基于构件的开发) 以及 c b s e ( c o m p o n e n t - b a s e ds o r w a r ee n g i n e e r i n g ,基于构件的软件工程) 成为人们关注的 焦点。 1 1 3 基于构件的开发 基于构件开发的思想是使软件的开发不再从零开始,而是利用已经开发的构件和将 要开发的构件来快速组装高质量的软件。所以基于构件的开发包括开发、收集所需的构 件以及利用这些构件来装配软件产品【l 】o 可复用构件应具备以下属性【2 j :有用性( u s e 甜n e s s ) :构件必须提供有用的功能; 可用性( u s a b i l i t y ) :构件必须易于理解和使用;质量( q u a l i t y ) :构件及其变形必须能 正确工作;适应性( a d a p t a b i l 时) :构件应该易于通过参数化等方式在不同语境中进行 配置;可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 由于构件自身所具有的特性使得基于构件的开发与其它的开发方法相比,具有以下 主要优点【3 】: 1 提高软件系统的重用性。由于构件是完成一定功能的独立部署的单元,而软件 是由构件组装而成,所以开发的结果可以独立保留,并且应用于相同领域的其它软件系 统。 2 提高开发效率。一方面,由于软件的开发不用从零开始,必然大大提高软件开 发效率;另一方面,如果要开发新构件,只要确定了构件接口,构件可以并行开发,甚 至交给第三方进行开发。当构件积累到一定程度时,软件的开发就成为根据需求选择符 合要求的构件,组装成软件系统。 3 提高可维护性。构件之间的关系是通过接口之间的依赖性来体现的,所以当修 改一个构件的实现时,只要不改变它的接口,那么就不会影响到系统的其它构件,甚至 可以利用相同接口的新构件替换旧构件。 4 适合于分布式软件系统的开发。出于构件是可以独立部署的单元,所以可以很 容易的将设计和实现的构件部署到不同的计算机上,然后利用构件的远程访问机制进行 访问。 1 2 研究现状 1 2 1 构件技术方面的研究 在构件模型方面,已形成三个主要流派,& p s u n 公司的e j b 、微软公司的c o m + d c o m 【4 】、 o m g 的c o r b a o r b e 5 1 。 在构件组装方面有:在程序语言级上的构件组装方法,包括面向对象的编程语言、 约束性和基于逻辑的编程语言等;新的模块化和包装技术,包括面向方面的编程 ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 、面向主题的编程( s u b j e c t o r i e n t e dp r o g r a m m i n g ) 等;基于设计的组装方法,包括基于事件的组装方法、组装设计模式、反射技术等【6 】。 构件分类和检索方法方面:目前有很多构件分类和检索方法,从构件表示出发可以 分为人工智能方法、超文本方法和信息科学方法三类;而根据复杂度和检索效果的不同 则可以分为基于文本的、基于词法描述子的和基于规约的编码和检索。信息科学方法是 实际复用项目中应用较为成功的一类,并且以枚举、刻面、属性值、关键词和正文检索 几种方法较为常见,其中刻面分类方法能够表达丰富的构件信息,尤其为人关注。 在构件和构件库的标准化方面,在美国军方和政府资助的项目中,已经建立了若干 洞北人学r 学硕十学位论文 构件库系统,如c a r d s 、a s s e t 、d s r s 等。由d a r p a 发起,由美国军方、s e i 和m i t r e 支持 s t a r s 【7j 项目在此基础上考虑了开放体系结构的构件库之间共享资源和无缝互操作和 问题,提交了a l o a f 的构件库框架。可复用库互操作组织r i g 致力于开发可互操作性的解 决方案,其成果包括b i d m 和u d m t 8 】 9 】,定义了实现互操作、复用库交换构件时所需的数据 模型。北大西洋组织n a t o 制定了一组关于软件构件复用的标准“o h i z 2 1 ,包括“可复用 构件开发标准”、“可复用软件构件库管理标准”等。在构件的实现、组合技术方面,c o r b a 、 j 2 e e 、n e t 等各种规范和技术对基于构件的软件开发提供了有力的支持。在国内,青鸟 工程是基于构件的软件开发领域中具有代表性的研究。 1 2 - 2 应用框架的研究 目前开发和使用的框架有两种:面向对象框架( o b j e c t o r i e n t e d f r a m e w o r k ,简称 r 1 1 1 o o d ”1 和基于构件的框架( c o m p o n e n tb a s e df r a m e w o r k ,简称c b f ) 。o o f 的复用是通过 对框架中的抽象类进行特殊化的方式来定义框架行为的,每一个抽象类派生一个子类, 并在子类中给定所有纯虚方法的具体实现,然后就可以复用这些具体的子类来开发特定 应用系统。因此,o o f 是基于继承的框架,也称为自盒框架随着2 0 世纪9 0 年代构件技术 的兴起,出现了基于构件的框架( c b f ) ,即将基于继承的面向对象框架通过用构件接口 中方法的调用来替代对象类中方法的重载,转换成为基于构件的框架。基于构件的框架 由互相协作的构件组成,并通过对构件接口的扩展来实现应用系统,c b f 也称为黑盒框 架。 目前有许多框架系统,例如用户界面方面的框架有m v c 、e t + 十等,其中e t 十十采用c + + 语言实现,运行于u n i x 等系统中;针对其他领域的则有f o i b l e 、m a c a p p 、f a c e r a m e w o r ka d a p t i v ec o m p o s i t i o ne n v i r o n r a e n t ) 等。l e ci n d i as o f t w a r ec e n t r ep w t l t d 公 司研制了一个面向e j b 构件的应用框架系统。它主要面向基于e j b 的应用程序,是一个 服务器端的框架,能在e j b 构件的开发中解决稳定性以及其他一些企业级的特性等问题。 现在又出现了许多采用j 2 e e 编程环境的应用框架,如p a c i f i c 技术服务公司开发的一套 多层框架,能用来开发w e b 应用服务器;j c o r p o r a t e 公司开发的e x p r e s s of r a m e w o r k s - - 使 用j a v a 来建造分布式、重用、基于构件的安全的w e b 应用程序的应用框架。 4 第l 章绪论 1 3 研究背景 本文的研究背景是计算中心申报的省攻关项目非成熟领域迭代丌发过程模型及支 持工具丌发( 项目编号为:2 0 0 2 11 2 4 0 5 9 ) 。此项目以教学评估系统的丌发为依托,研 究以构件库系统为中心的系统丌发过程模型,构造评估系统应用框架,并建立支持以上 模型的以构件库系统为中心的工具集。 1 4 研究的主要内容及意义 1 4 1 研究内容和主要工作 从教学评测和评估系统入手,进行以下一系列研究工作 研究有利于大粒度复用的应用框架设计方案。 从提高应用框架的可复用度为基础,探讨应用框架的设计模型。使应用框 架力求达到:健壮性、灵活性、可扩展性、可理解性,且支持动态内容和基于 开放或共享标准。同时框架能够应用于不同的场合,用户能轻松地添加和修改 功能,定制框架;用户和框架的交互清晰,文档齐全。框架设计核心问题就是 要定义系统的固定部分并规约其可扩展部分,即“h o ts p o t s ”,以保证框架具 备充分的灵活性,使用户能够方便地利用框架组装应用系统,实现“零代码编 写”的理想目标。 + 建立支持应用框架的相关工具。 应用框架建立后应该有相应的工具对应用框架进行操作以实现应用框架功 能的变化,如:建立应用框架的修改工具,使我们能够对不同层次的框架进行 修改,以适应不同的应用环境;建立应用框架的功能扩展工具,使我们能够在 不重新编译的情况下对应用框架进行功能动态扩展等等。 结合框架技术构造教学评估系统。 从构造教学评估系统的实际出发,探讨利用框架技术和构件技术构造应用 系统的方法。我们将从系统需求分析阶段开始到应用系统的设计建立,进行 一系列的探索,寻找适合评估领域快速开发应用系统的方法。 河北人学f 。学硕十学位论文 1 42 研究意义 构件的复用技术中有两个基本问题:其一,如何改造现有成熟的信息系统,使之成 为可复用的资源。其二,利用已有的可复用的资源,如何快速、高效的丌发出高质量的 信息系统。这是当前国内外基于可复用构件研究的主要方面,这些研究主要针对成熟领 域,通过对成熟领域的研究,现在构件技术已经从构件的获取、分类、构件库的建立到 构件的组装、检测与评估等方面取彳寻了一系列的成果。目自f 对于框架的研究仍然处于理 论设计阶段,从理论出发对框架进行抽象描述,当把框架实例化后会发现与理论上定义 的框架总有一定的差距。究其原因,当进行应用系统开发时,为适应客户需求的不断变 化,最初定义和设计的框架往往不能适应新的要求,框架也在不断地进行修改。而且随 着时间的推移,框架中所定义的固定部分,即“f r o z e ns p o t s ”很有可能发生变化。为解 决这些问题需要探索一种比较适宜的应用框架模型,并建立相应的框架工具,使框架能 够适应当前软件发展的形式,以实现“零代码编写”构建应用系统的理想目标。 1 4 3 本文组织结构 第一章:绪论。 第二章:介绍应用框架及相关技术。 第三章:通过对应用框架的层次划分,提出应用框架的层次泛化模型。 第四章:结合框架和构件技术构造教学评估系统,提出一种以x m l & h t m l 描述 模板的方式构造教学评估系统的解决方案。 第五章,总结所作的研究工作,指出下步要进行的相关研究,并提出一些自己在 研究过程中的感想和体会。 1 5 本章小结 本章从软件重用的角度出发,讨论了结构化分析设计方法、面向对象分析设计方法 和基于构件的丌发方法;探讨了软件复用的研究现状。然后介绍了本文的研究背景,并 给出了本文的研究内容及意义。 第2 章应用框架与相关技术 2 1应用框架的概念 2 1 1 应用框架的发展 目前有许多框架系统,例如用户界面方面的框架有m v c 、e t + + 等,其中e t + + 采用c + + 语言实现,运行于u n i x 等系统中;针对其他领域的则有f o i b l e 、m a c a p p 、 f a c e ( f r a m e w o r ka d a p t i v ec o m p o s i t i o ne n v i r o n m e n t ) 等。 早期一些框架系统多采用传统的面向过程语言实现【l ”,现在面向对象语言为软件和 设计的重用提供了更强有力的支持。出于框架开发的学习曲线较复杂,因此框架开发的 语言最好能对框架的文档建立提供有效的方法;框架的使用要求开发语言具备高可移植 性:框架的设计其实也是一些高层的决策,很自然采用高级语言来实现。j a v a 语言由于 具有平台独立性以及轻量级的链接过程、自动垃圾回收、简单语言结构、标准软件包、 面向对象等特性,因此可以说j a v a 是进行框架构筑的合适语占。现在市场上已出现了 许多采用j a v a 语言编写的框架系统。 l e c i n d i a s o f t w a r e c e n t r ep v t l t d 公司研制了一个面向e j b 构件的应用框架系统。 它主要面向基于e j b 的应用程序,是一个服务器端的框架,能在e j b 构件的丌发中解 决稳定性以及其他一些企业级的特性等问题。 现在又出现了许多采用j 2 e e 编程环境的应用框架,如p a c i f i c 技术服务公司开发的 一套多层框架,能用来开发w e b 应用服务器:j c o r p o r a t e 公司丌发的e x p r e s s of r a m e w o r k 是一使用j a v a 来建造分布式、重用、基于构件的安全的w e b 应用程序的应用框架。 2 1 2 应用框架( a p p l i c a t i o nf r a m e w o r k ) 的概念 目前对于应用框架一般采用以下两个定义:( 1 )“框架是一个系统全部或者部分的 1e 1 可复用设计,通常由一组抽象类和类之间的协作组成”1 ”。( 2 ) “框架是一个能够被丌 1 发人员实例化的系统骨架”。这两个定义从两方面描述了应用框架,前者从设计的角 度描述了框架,提出了框架构成和设计模式;而后者则描述了框架的设计目的。从这两 个定义可知:( 1 ) 框架以系统功能为原则划分了应用领域中的类、定义了各部分的主要 河北人学1 学硕f 学位论文 责任和类与对象的协作关系,并界定了控制流程:( 2 ) 框架包含了其应用领域中的主要 功能设计决策,并定义了构件描述和调用的规则。所以,框架可以被认为是一个能够完 成系统主要功能并可扩展的组合构件。从这一意义上,可以把应用框架定义为:它是一 个能够组合系统必要功能、允许动态扩展的,并可以实例化的可复用系统应用模型。 框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的 技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提 供了标准的方法。 应用框架并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功 能( 除去特殊应用的部分) 的底层服务。使用这种框架的编程人员可以在一个通用功能 已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集 合。具体的应用通过重写子类( 该子类属于框架的默认行为) 或组装对象来支持应用的行 为。 应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统 的丌发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更 注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而 生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。 2 1 3 应用框架的设计技术 目前在框架设计方面成熟的技术较少,大体可分为两类:实践法与系统法 1 7 】。 1 实践法 认为框架不是系统设计的结果,而是在从底向上设计中的一个结果。实践法也可以 说是实例( e x a m p l e ) 驱动的设计方法,它是从若干个具体的典型应用中,抽象出相似点来 构建框架,框架反过来又应用于不同的问题,并在解决不同问题的过程中得到更新,在 框架的设计和实现的两步中,不断反复。等到框架逐渐成熟时,需要修改和反复的内容 就会越来越少。 具体步骤为: 分析问题领域,确定所需框架。从一类应用而不是单个的程序去分析、比较各种不 同的软件解决方案,寻求这些方案的共性和每个程序的唯性特征。这些共性,尤其是 那些经常被多个程序使用的部分将成为框架的基础。然后定义框架体系结构并设计,包 第2 章应川框架与相关技术 括设计用户与框架闯的交互、给用户提供的最终工具等。 框架的实现。包括框架核心类的实现、框架的测试、框架的试运行、框架的反复更 新。 框架的部署。包括文档的提供、分发过程,为用户提供技术支持,维护和更新框架。 这种方法也就是先在具体类基础上进行泛化,提取出抽象类。抽象化也是框架丌发 的一个关键。不过,根据这种方法设计出的框架的可适用性很大程度上依赖于其基于的 具体应用。 出于框架的开发具有反复性,且需要深入了解应用领域,因此框架的玎发很难按进 度表进行。框架的设计者也需要和应用开发者紧密合作,因为框架只有在使用它开发应 用的过程中才能发现其哪些部分有待改进。 2 系统法 认为框架的设计可以通过系统的方法得到,因此出现了逐步泛化的框架设计方法。 此时框架的设计分两步: 第一步是问题的泛化。它要求解决如下问题:问题领域中的哪些概念可以表现为变 量,并且需要统一处理? 是否可以发现一些具体的概念,它们能被泛化为一个更抽象的 概念? 第二步是框架的设计。在这一步中,泛化是从反向考虑,以实现每一级的框架。换 言之,最先实现最通用的框架,然后实现次通用的框架,以此类推。 采用两步的设计方法可以避免在早期的丌发过程中局限于应用专用的类和体系结 构,并且有利于使用通用的设计模式。 框架的设计是一个反复的过程,在这个过程中需要领域和设计两方面的专家意见, 框架用户和框架开发者之间的交流对框架的设计也很重要,因为框架是在不断反复的过 程中逐步成熟的。 2 1 4 应用框架的分类 从框架的设计方法方面可以将框架分为白盒( w h i t e b o x ) 与黑盒( b l a c k b o x ) 两种框 架f 1 8 1 。 基于继承的框架被称为自盒框架。所谓自盒即具备可视性,被继承的父类的内部实 现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的 河北人学i 学硕 :学位论文 成员方法来- 丌发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重 用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,因为抽象类基 本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上 的附属品。 基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系 统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继 承更为灵活,它能动念地改变,继承只是一个静态编译时的概念。 在理想情况下,任何所需的功能都可通过组装已有的构件得到,事实上可获得的构 件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易, 因此白盒和黑盒将同时应用于系统的开发中。不过自盒框架趋向于向黑盒框架发展,黑 盒框架也是系统开发希望达到的理想目标。 2 1 5 应用框架相关概念 1 热点( h o ts p o t ) 为了让应用开发者扩充框架以适应特定的应用程序,成功的框架都要留有一些供应 用丌发者用以扩充的插槽,这些插槽就叫做热点。热点是供应用开发者必须实现的抽象 类和方法,框架是不可执行的,为了产生个能够执行的特定的应用程序,应用开发者 必须为这些热点添加代码,即实现这些热点,这样才能产生一个能够执行的特定的应用 程序。“热点”使框架具有灵活性。 2 冻点( f r o z e ns p o t ) 框架的某些特征是不能轻易改变的,这些不变的构成框架的核心点叫做框架的冻点。 同热点不同,冻点在框架内是已经实现的段代码,它可以调用一个或更多的热点。这 些冻点构成的框架的核心是稳固的,并且总是作为每个特定应用程序的一部分。 3 回调( i n v e r s i o no f c o n t r 0 1 ) 框架的一个重要特征是反向控制( i n v e r s i o no f c o n t r 0 1 ) ,即用户定义的方法经常被框 架自身调用,而不是从用户的应用代码中调用。这种情形经常发生在冻点调用热点。这 种机制有人称之为“好莱坞原则”( h o l l y w o o dp r i n c i p l e ) 或“别调用我们,我们会调用 您”。 第2 章应川框架与相关技术 2 1 6 利用框架开发系统的优势 框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大 的应用系统往往可能出多层互相协作的框架组成。 由于框架能重用代码,因此从已有构件库中建立应用变得非常容易,因为构件都 采用框架统一定义的接口,从而使构件间的通信简单。 框架能重用设计。它提供可重用的抽象算法及高层设计,并篚将大系统分解成更小 的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装 建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设 计者就能重用构架的设计。 框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分 为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。 采用框架技术进行软件开发的主要特点包括: 领域内的软件结构一致性好; 建立更加丌放的系统; 重用代码大大增加,软件生产效率和质量也得到了提高; 软件设计人员要专注于对领域的了解,使需求分析更充分; 存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于 低层编程; 允许采用快速原型技术; 有利于在一个项目内多人协同工作; 大粒度的重用使得平均开发费用降低,丌发速度加快,丌发人员减少,维护费 用降低,而参数化框架使得适应性、灵活性增强。 2 1 7 应用框架重用的生命周期 当采用可重用产品开发时,通常要完成常规分析过程,在将具体产品( 需求、分析 模型、设计模型、代码) 分解为更可管理的产品之前,首先检查该产品是否已经可用, 是否是所需的形式或接近的形式。般可复用产品的使用生命周期描述为: l 、确定可以匹配现有可重用产品描述的需要。 2 、查询和检索最相关的产品。 河北人学l :学硕十学位论文 3 、评估这些产品的重用潜力。 4 、选择最合适的一些候选产品并进行适配,以满足当前需要。 5 、将可重用产品集成到当前应用系统中。 对于框架,也有基本相同的步骤,只是复杂程度和工作量的分配不同。虽然类库可 能有数百个类和方法,但是可供框架用户选择的框架一般很少,查询和检索产品并不重 要。在典型情况下,可以根据归纳覆盖、平台支持、文档质量等评估少量候选框架。 因此,每个候选框架的评估都可能需要很长时间,特别是在最后的选择阶段。评 估可以阅读文档,确定不合适的框架开始,最后在使用框架丌发主体项目之前,要采用 框架丌发原型应用系统进行测试。在典型情况下,对有一定财力的机构,对于重要项目, 可以指派一两名高级人员评估具体的框架,这种评估可能焉要几天到几周的时间。这些 开发人员应该根据自己的经验将其需求与候选框架匹配,并根据自己的经验做出选择。 第4 步中的适配最合适的框架,意味着通过选择随框粲一起提供的具体构件,选择 和适配具体应用系统有关的构件来适配其在框架中所承担的角色,寻找各种参与者的实 现。在典型情况下,这个步骤涉及些手工编程工作,并使用相应的工具包生成一部分 程序。评估框架也包括这些步骤,但是要在规模较小的原型基础上进行。 最后,可以把框架背景下的集成,看作实现各种实例化的情景,将应用构件有效地 插入框架结构中。 框架通过使用进化。框架的每个重用实例都会遇到一些困难,暴露出可以改进的地 方,可以进一步参数化的特性,可以迸一步一般化或分解的参与者等。框架重用生命周 期要反馈到框架开发生命周期。 2 2 相关技术与应用框架之间关系 2 2 1 软件重用相关技术 软件重用( s o f t w a r e r e u s e ) 是指重复使用“为了重用目的而设计的软件”的过程1 1 。 软件重用是在软件开发中避免重复劳动的解决方案,出发点是使应用系统的开发不再采 用“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累 的知识和经验,从而将开发的重点集中于应用的特有构成成分【1 。成功的软件重用可以 减少重复劳动从而提高软件生产率,减少丌发中引入的错误从而提高软件的质量。 软件重用包括很多相关技术,其中包括软件构件技术,下面简要介绍。些主要的软 件重用技术。 1 面向对象技术( o b j e c to r i e n t e dt e c l u o l o g y ) c o a d 和y o u r d o n 认为:面向对象= 对象+ 类+ 继承+ 消息,如果一个软件系统是使 用这样四个概念设计和实现的,则可以认为软件系统是面向对象的。对象是面向对象丌 发方法的基本成分,可以用其一组属性和它可以执行的一组操作来定义;类是一组具有 相同数据结构和相同操作的对象的集合,在一个类中,每个对象都是类的实例;继承是 使用已存在的定义作为基础束建立新定义的技术,新类的定义可以是现存类所声明的数 据、定义与新类所增加的声明的组合;消息是一个对象与另一个对象之削通信的手段, 是要求另一对象执行类中定义的某个操作的规格说明 2 们。 面向对象技术为客观世界过渡到软件系统提供了途径和编程的思维方法,对象有效 的封装了我们对问题空间的理解,可以利用一组类的集合定义问题空问的关键抽象。但 是一些观点认为,在利用面向对象技术中,立即重用的障碍是从类层次中如何找到合适 的类以供给新的应用程序使用2 1 l ;另外由于面向对象技术的重用基础是类的继承机制, 所以类之问的依赖性很强,使得灵活性下降。 面向对象技术一般只是考虑对特定应用进行分析和抽象,所以很难保证所得到的类 不经过再加工,就可以应用于其它的应用系统中。 2 分布对象技术 分布对象技术是伴随网络而发展起来的一种面向对象的技术。分布对象往往又被称 为构件( c o m p o n e n t ) 。构件是提供一整套完整定义接口的代码模块,它是可以管理的、 分立的逻辑程序块伫2 1 。在分布计算的环境下可以是一个简单的对象,但大多数情况下是 一组相关的对象复合体,提供一定的服务。分布环境下,它们可以位置透明、语言独立 和平台独立地互相发送消息,实现请求服务。 目前国际上,分布式对象技术有三大流派c o b r a 、c o m d c o m 和e 腰。 c o r b a 的特点是大而全,互操作性和丌放性非常好。但也带来了庞大而复杂的缺 点,并且技术和标准的更新相对较慢。 s u n 公司基于r m i 提出了企业级j a v a b e a n ( e j b ) ,基于j a v a 服务器端构件模型。 远程方法调用( r m i ) 提供了一个j a v a 对象远程调用另一j a v a 对象的能力。e j b 的优 河北人学i 学硕卜学位论文 势是跨平台性非常好,e j b 框架提供了像远程访问、安全、交易、持久和尘命期管理等 多种支持分布对象计算的服务。 c o m 技术是m i c r o s o f t 独家开发的,经历了o l e2 c o m 、a c t i v e x 、d c o m 和c o m + 等几个阶段 2 3 ,是分布对象计算的一个比较完整的平台。但它有一个致命的弱点就是 c o m 的跨平台性较差。 3 软件重用技术与应用框架的关系 重用技术是框架的基础,重用技术发展产生了构件技术才使框架的产生成为可能。 可以说,框架是一个可复用的构件,它规定了应用的体系结构,阐明了整个设计、协作 构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的 方法,它为构件复用提供了上下文( c o n t e x t ) 关系。框架比构件可定制性强。在某种程度 上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环 境,为构件处理错误、交换数据及激活操作提供了标准的方法。 2 2 2 设计模式( d e s i g np a t t e r n s ) 1 ,概念 “模式”的概念最早是出c h r i s t o p h e r a l e x a n d e r 在其建筑学领域专著中提出的,他认为 工程师们经常借鉴一些已经得到验证的准则和经验来描述和构造他们的设计。当然这些 准则和经验的建立要通过对一系列成功和失败的范例进行知识与经验的提炼和总结。这 些准刚和经验构成了可以重用的模式。c h r i s t o p h e ra l e x a n d e r 认为,每一个模式描述了 一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一 次又一次地使用该方案而不必作重复劳动。设计模式一般有四个基本要素:模式名称、 问题、解决方案和效果【2 4 。 “设计模式”是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的 描述 2 4 】。一个设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结 构能被用来构造可重用的面向对象设计。设计模式确定了所包含的类和实例,它们的角 色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或 设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能够使

温馨提示

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

评论

0/150

提交评论