已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)基于元模型的软件框架技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于元模型的软件框架技术研究 摘要 近年来,软件重用作为一种新技术越来越引起人们的重视,已成为提高软件生产率, 解决软件危机问题的一个重要途径。软件重用是一种使用预先构造好的、为重用目的而设 计的软件构件来建立或组装软件系统的过程。它的基本思想非常简单,即放弃那种传统的, 一切从头开始的软件开发方式,转而利用公共的可重用构件来组装新的软件系统。随着软 件复用研究的深入,工业化的软件复用已经从最基本的拷贝粘贴发展到了软件框架。 软件框架是实现大粒度软件复用的有效途径。个设计良好的软件框架,不仅可以重 用代码,还可以重用体系结构,从而减少软件的开发时间,节省开发成本,提高了系统的 可靠性、扩展性和一致性。虽然软件框架的复用对于软件工业的发展有着举足轻重的作用, 但是由于框架的开发是个反反复复的过程,比一般应用软件的开发要复杂的多,因此迄 今为止还没有种能够真正满足用户需求的通用软件框架产品问世。 对于任何一个软件框架来说,一般都具有登录、退出、权限验证、模块集成管理、日 志管理及异常处理等功能,本文通过对软件系统框架共性的总结,建立了可通用的框架元 模型,然后在此基础上借鉴框架开发的经验实现了种可扩展、可定制的软件框架系统。 此框架较好地实现了对表现层、功能层和数据层的分离和封装,并提供了对身份认证、权 限控制等关键服务的支持。在此软件框架的基础上,要进行新的应用的开发时,开发者无 需再为软件框架编写任何代码,只要在数据库中输入框架运行的相关数据,集成新的功能 模块就可以了。目前此框架已在两个实际项目中投入了使用,效果良好。 关键词:软件复用,软件框架,权限管理,元模型 s o f t w a r ef r a m e w o r kr e s e a r c hb a s e do nm e t a - m o d ei a b s t r a c t i nr e c e n t l yy e a r s s o f t w a r er e u s ei sr e g a r d e da si m p o t t a n tb yp e o p l em o r ea n dm o r e i ti sa n i m p o r t a n ta p p r o a c ht oi m p r o v et h es o f t w a r ep r o d u c t i v i t ya n dr e s o l v et 1 1 es o f t w a r ec r i s i s s o f t w a r er e u s ei sap r o c e s sw h i c hu s e ss o f t w a r ec o m p o n e n t st oc o n s t r u c ts o f t w a r es y s t e m i t s b a s i ct h i n k i n gi sg i v i n gu pt h et r a d i t i o n a ls o f t w a r ed e v e l o p i n gm o d ea n du s i n gt h ec o m m o n r e u s a b l ec o m p o n e n t st oc o n s t r u c tan e ws o f t w a r es y s t e m 。黝t h ep r o f o u n d l ys t u d yo fs o f t w a r e r e u s e ,h ei n d u s t r i a l i z e ds o f t w a r er e u s eh a dd e v e l o p e df r o mt h ec o p y p a s t et os o f t w a r ef r a m e w o r k a n da r c h i t e c t u r ee t c s o f t w a r ef r a l n e w o r ki sa ne f f e c t i v et e c h n o l o g yt oa p p l y 也el a r g e r - g r a n u l a r i t ys o f t w a r er e u s e as o f t w a r ef r a r n e w o r ko fb e i n gd e s i g n e dw e l l ,w h i c hc a nr e u s ec o d ea n da r c h i t e c t u r e ,r e d u c et h e d e v e l o p i n gt i m e ,i m p r o v et h es y s t e mr e l i a b i l i t ya n de x p a n s i b i l i t ya n dc o n s i s t e n c y t h o u 曲t h e i m p o r t a n c eo f t h ef r a n l e w o r kr e u s e ,t h ed e v e l o pp r o c e s so f t h ef r a l t l e w o r ki sr e p e t i t i v e ,a n dm o r e c o m p l i c a t e dt l l a nt h ed e v e l o pp r o c e s so ft h ec o m m o ns o f l w a r e u pt ot h ep r e s e n t t h e r ei sn o ta k i n do f u n i v e r s a ls o f t w a r ef r a m e w o r kw h i c hc a ns a t i s f yt h eu s e r sr e q u i r e m e n t s g e n e r a l l ys p e a k i n g ,e v e r ys o f t w a r ef r a m e w o r kc a np r o v i d el o g o n ,e x i t ,v e r i f yi d e n t i t y , m o d u l ei n t e g r a t i o na n dm a n a g e m e n t 1 0 9m a n a g e m e n ta n de x c e p t i o np r o c e s se t c i nt h i st h e s i s , t h ea u t h o ra n a l y z e dt h ec o m m o nc h a r a c t e r i s t i c so ft h es y s t e mf r a m e w o r k s ,a n do nt h eb a s i so f t h ed e s i g no f 也et m i v e r s a lm e t a - m o d e lo ft h ef r a m e w o r k s h ec o n s t r u c t e da ne x p a n s i b l ea n d c u s t o m i z a b l e s y s t e mf r a m e w o r k i tp r o v i d e sh i g h l e v e lr e u s a b i l i t y b ys e p a r a t i n g a n d e n c a p s u l a t i n gt h ep r e s e n t a t i o nl a y e r , b u s i n e s sl a y e ra n dd a t as o u r c el a y e r , a sw e l la sp r o v i d i n g p r e f e r a b l es u p p o r tf o ra u t h e n t i c a t i o na n dp d 【g h tm a n a g e m e n t o nt h eb a s i so ft h es o f t w a r e f r a m e w o r k w en e e d n tw r i t ea n yc o d ef o rt h ef r a l t l e w o r ko ft h en e wa p p l i c a t i o ns o f t w a r e ,w h a t w ec a nd oi st oi n p u tt h ed a t ao ft h ef r a m e w o r ka n dt oi n t e g r a t et h en e v rf u n c t i o nm o d u l e n o w t h es y s t e mh a sa p p l i e di nt h ea c t u a lp r o j e c t s t h er e s u l ti sw e l l k e ,w o r d :s o f t w a r er e u s e ,s o f t w a r ef r a m e w o r k ,r i g h tm a n a g e m e n t ,m e t a - m o d e l 前言 在计算机发展的早期阶段,由于成本较高、应用范围狭小,使得人们对于软件的需求 量并不很大。但随着计算机性价比的提高和广泛应用,人们对软件的需求量也呈现出爆炸 式的增长。这种变化和工业革命早期从手工业转向机器大生产的情形极其类似。从6 0 年 代中期到7 0 年代中期,软件开始作为一种产品被广泛使用,出现了“软件作坊”,一种 专职按别人的需求来写软件的组织。这一软件开发的方法基本上仍然沿用早期的个体化软 件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成 本高的令人吃惊,而失败的软件开发项目却屡见不鲜。“软件危机”开始了。 软件复用技术在解决软件危机方面起了很大的作用,框架技术是当今流行的软件复用 技术之一,它是一个可重用的、部分实现的软件制品,它面向某一特定领域,能被实例化 以满足特定的应用。 随着软件技术的不断进步,软件的开发模式也发生了相应的变化。对象管理组织 o m g ( o b j e c t m a n a g eg r o u p ) 在数据集成、软件建模及软件通用化方面推出了一系列的规范。 m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 模型驱动架构是由o m g 大力推广的一套体系架构,它 打破了传统的软件开发方式,以模型为中心,模型贯穿于信息系统的分析、设计、实现、 配置、维护和管理的各个阶段,m d a 的推出标志着通用软件建模开始走向成熟。元对象设 施规范m o f ( m e t ao b j e c tf a c i l i t y ) 是由o m g 推出的关于元数据管理进行定义的一套规范, 该规范的推出为通用软件的实现奠定了理论基础。统一建模语言u m l ( u n i f i e dm o d e l i n g l a n g u a g e ) 是o m g 推出的一个通用的可视化建模语言,用于对软件进行描述、可视化处理、 构造和建立软件系统制品文档,是一种总结了以往建模技术的经验并吸收当今优秀成果的 标准建模方法。 在这些问题和技术的推动下,我们提出了基于元模型来开发软件框架的研究思路,在 整个系统的开发过程中,以提高框架的稳定性、复用性和扩展性为准则,最终实现应用程 序框架“零代码编写”的目的。 i l l 大庆石油学院硕士研究生学位论文 第一章概述 近年来,随着软件复厨研究的深入,软件框架技术也日益受到人们的重视。可以说框 架是在软件复用的基础上发展起来的,它是指一个可复用的、部分实现的软件制品,它 能够被实例化扩展,以生成特定的应用。从领域工程的角度来看,框架是实例化的d s s a ( d o m a i ns p e c i f i cs o f t w a r ea r c h i t e c t u r e ,特定于领域的软件体系结构) 。它反映了一 个软件系统族的体系结构,并且提供了创建后者的基本构造单元,同时定义了针对特定 的功能需要在何处进行调整和修改“1 ,即扩展点( h o ts p o t s ) 。软件框架有助于实现领域 内体系结构层次较大粒度的设计复用,提高应用开发中复用的比例,从而保证复用活动 的成功率,降低应用开发的成本;下面对软件复用技术、框架技术及其相关知识进行简 单的概述。 1 1 软件复用技术 软件复用,就是使用现存软件系统的人工制品或工程知识来构造新的软件系统。现 存软件制品可以是已存在的软件,也可以是专门设计的可重用构件。软件复用可以缩短 软件开发周期,提高软件的生产率和可靠性,使生成的软件易于维护,节约软件开发成 本。因而软件复用被视为解决软件危机、提高软件生产率和质量的有效途径,并受到广 泛的重视。目前,软件复用已经在不同的技术,在不同的层次上得到了广泛的应用。 1 1 1 软件复用的发展过程 从人类开始学会编程的时候起,程序员通过源代码的拷贝粘贴来获得复用,这是复 用的最原始的方式。这种方式存在的时间很长,直到今天,这种方式仍然被广泛使用。 在2 0 世纪6 0 年代以前,软件复用的含义是指一些定义良好的函数包和功能模块。 软件复用主要是函数方法、模块、系统函数库等几种有限的复用形式。在这之后,进 入了面向对象技术方法的发展初期,这时软件复用的含义就是对类库的复用。 1 9 6 8 年的n a t o 软件工程会议上,m e l l r o y 第一次正式提出了构件化生产的思想,认 为软件产业化应该像硬件和其它工业的产业化一样,主要以提供标准的零部件为主,软 件开发是零部件生产与零部件组装的统一。这类软件的零部件称之为构件,这样,就能 不限制次数的复用这些构件,以提高软件生产率,降低开发成本,并提高软件的质量。 软件复用由此开始得到广泛的重视。 9 0 年代后,面向对象技术已发展到比较成熟的阶段,构件的内涵也得到了极大的扩 充,它不仅可以指可复用的软件单元,功能模块,也可以是一些可复用的软件框架,软 件体系结构模型等。这时期非常明显的趋势是人们将代码复用与设计复用相结合,通过 封装、继承、多态等支持软件复用的基本机制,以及由此衍生的仅使用接口( 协议) 为其 它部件提供服务的规则,将一些对象及这些对象之间的结构封装成大粒度的构件,实现 大粒度,大规模的复用。 一个设计良好的框架,不仅重用代码,而且重用体系结构,基于通用框架来开发软 件可以缩短软件的上市周期,节省资本,提高系统的稳定性和可维护性。 第一章概述 1 1 2 软件复用的分类 目前人们对软件复用的研究范围很广可以按复用内容、范围、方法和应用等标准 进行分类。 1 依据对可复用信息进行复用的方式,分为黑盒( b l a c k b o x ) 复用和白盒 ( w h i r e - b o x ) 复用,又称为原样( a s - i s ) 复用与带修改的复用。 黑盒复用指对已有可复用成分( 构件,可复用的生成过程等) 不作任何皂。:,直接进 行复用,这是理想的复用方式。白盒复用指已有的可复用成分并不能完全符合用户需求, 需要根据用户需求进行适应性修改后方可使用。一般来说,可复用构件应没计的比较有 弹性,例如可以设计成参数化的构件;但为了满足复用者的需求,适当的修改也是! 必要 的。易修改性是可复用软件中尤为重要的性质。 2 根据复用方法,可分为组合式复用( c o m p o s i t i o n a l ) 和生成式复用( c e a e r a ti v ? ) , 也称为产品复用和过程复用。 ( 1 ) 组合式复用。采用组合式复用技术时,对已有构件不作修改或作豁分修改, 就将构件组装在一起,从而构造出新的目标系统。组合式复用主要的研究内容包括构件 的分类、检索、评估、定制、组合、库的组织、管理和使用等。大量的构件必须用库来 管理,对于这种专用库来说,库中内容的组织、分类和检索等都是新的研究课题,对于 构件应具有独立性、可读性、易理解性、正确性和易修改性等。 ( 2 ) 生成式复用。生成式复用技术利用可复用的模式,通过应用生成器产生新的 程序或程序块,产生的程序可以看作是模式的实例。生成式复用的特点是复用效率艘 比较高,但实现生成式复用一般比较困难。生成式复用的研究重点是如艇形式化的表示 特定领域的规格说明语言、系统处理过程及元生成器等,在这方面领域分析已变得越来 越重要。 软件复用技术研究的较多、应用前景也比较广泛的是组合式技术。目前基于构件的 软件复用开发采用的就是组合式软件复用技术。 3 按照复用的规模,分为小规模复用与大规模复用。 小规模复用( 例如使用数学函数库) 现在已得到了广泛的应用,但个别复用节省的 代价并不大,必须要普遍地复用才能获得收益。大规模复用针对的是整个子系统,这时 复用即可获得很大的收益,因为复用了成千上万行代码。但是对一个特定的大构件来说, 复用的机会是非常有限的。 4 。按照软件复用所应用的领域范围,分为两种:横向复用和纵向复用。 ( 1 ) 横向复用:指复用不同应用领域中的软件元素,例如数据结构、分类算法、人 机界面构件等。标准函数库是一种典型、原始的横向复用机制。 ( 2 ) 纵向复用:指在应用领域内部进行软部件复用。因为在两个截然不同的应用领 域之间实施软件复用非常困难,潜力不大,所以纵向复用才广受瞩目,并成为软件复用 技术的真正所在。 1 1 3 软件复用技术的优点 采用软件复用技术有以下几个优点: 1 提高软件生产率,减少开发时间和费用: 2 提高软件质量,开发出来的软件可靠性高: 3 降低开发风险; 4 简化软件开发流程,使得软件开发易于管理; 5 降低维护的难度、工作量和费用,且有可能延长运行期以提高软件系统的效率 大庆石油学院硕士研究生学位论文 6 共享有关建立系统的知识,便于学习系统结构和建立好的系统,促进软件开发 过程的标准化; 7 易于提供文档资料等。 1 1 4 软件复用技术存在的问题 尽管软件复用思想早己为人们所接受,然而软件复用技术并没有在实践中得到理想 的广泛应用,特别是在大型、复杂的软件开发中,系统化的使用软件复用的情况并不多。 阻碍软件复用的因素很多,其中大粒度软件复用产品的复用频率问题无疑是一个非 常关键的问题,体系结构和由小粒度可复用软件组合而成的大粒度可复用软件,往往由 于设计者对于领域分析重视不够,导致它们只适用于本系统,难以扩展到领域内的其他 系统中去,这将导致软件复用频率降低;由于可复用软件要经过严格的测试、要具有通 用性等要求,因此开发可复用软件的费用要比开发一般模块的费用要昂贵,w t r a c z ”1 认为开发可复用软件的费用比开发一般模块要离出3 0 2 0 0 。w t r a c z 发现,在一个软 件上的投资只有在该可复用软件第三次被复用之后才能收回。这样就在无形中挫伤了可 复用软件开发者的积极性。 虽然目前的软件复用还存在一定问题,但是复用却是一种必然的趋势。随着研究工 作的深入和科学技术的飞速发展,我们相信软件复用技术一定会成为软件生产社会化的 基石。 1 2 框架技术 框架的概念出现于八十年代,s m a l l t a l k 一8 0 开发环境中的框架m v c ,被认为是第一 个得到广泛应用的框架。当然,框架不仅仅限于用户接口,它也存在于其它的应用领域。 目前框架的研究在学术界和工业界都引起了人们广泛的兴趣,框架的重用已成为软件生 产中最有效的重用方式之一。g a r t n e rg r o u p 曾经预测:“将来至少7 0 的新应用会主要 建立在如软件构件和应用框架这类构造块之上:应用开发的未来就在于提供一开放 体系结构,以方便构件的选择、组装和集成。” 1 2 1 框架的定义 对于框架,一直以来没有一个统一的定义,下面给出几个最常用的定义。 ( 1 ) 框架是一个系统全部或者部分的可复用设计,通常由一组抽象类和类之间的协 作组成m 。 ( 2 ) 框架是一个能够被开发人员实例化的系统骨架。 在本文中根据课题研究的基于元模型的软件框架特点,给出了一种新的框架定义: “框架是一种通用的、可定制的应用程序骨架。” 从以上的定义可以得出,框架必须满足以下主要特征: 模块化。框架通过封装多变的实现细节于固定的接口之后,提高了软件的模块性。 框架通过将由于设计和实现的变化所带来的影响进行局部化来改善应用程序的质量,这 有助予理解和维护已有的软件。 可复用性。框架提供的固定接口被定义成抽象类或组件,并可被用来创造新的应用 程序,这样就提高了可复用性。框架的可复用性利用了有经验的开发者在该特定领域中 的专业知识和开发能力,避免了后继开发人员针对该领域中的同一问题和需求作重复的 劳动。框架组件的复用能大幅度的提高后继开发人员的产量,同时还能够改善软件的质 第一章概述 量、功能和可靠性。 可扩展往。框架可通过提供显式的钩子方法,允许应用程序来扩展其固定接口,这 样就提高了框架的扩展性。钩子方法为框架的固定接口和由于不同的需求而产生的应用 程序行为之问进行解耦。框架的可扩展性对于保证及时的定制新的应用程序服务是十分 必要的。 反向控制。框架是一种运行时体系结构,这种结构被称为“反向控制”。它使得标准 的应用程序过程能够被框架一步步进行定制。当事件发生时,框架的派发器被事件处理 对象的钩子方法调用,对事件作出反应,执行该事件的特定的代码过程。反向控制允许 框架( 而不是应用程序) 决定激活何种方法来响应外部事件。 1 22 框架的分类 1 按照软件框架被定制或扩展的方式可以分为:白盒框架、黑盒框架和坎盒框架。 ( 1 ) 白盒框架:框架的用户通过对框架类实施子类型化来定制框架。在框架生命周 期的初始阶段,框架往往是白盒框架,因为应用域还没有得到充分的理解,因而无法通 过参数化来控制其行为。 ( 2 ) 黑盒框架:框架的用户通过使用不同类的组合来定制框架。黑盒框架是基于组 合的,参数化框架要求对领域的稳定部分与易变部分有深刻的理解。黑盒框架一般是框 架演化生命周期的终点。 ( 3 ) 狄盒框架:框架的用户既要通过子类型化,又通过组合来定制框架。厌盒框架 是框架演化生命周期的中间状态。 2 按照软件框架与应用软件之间的交互方式( 即调用方式) ,可以将软件框架分为调 用框架和被调用框架两种。 ( 1 ) 调用框架:框架是主动实体,框架主动的调用应用程序代码。 ( 2 ) 被调用框架:框架是被动实体,框架被应用程序代码所调用。 实际上,框架很难称为纯粹的白盒框架、黑盒框架或调用框架、被调用框架,经常 是一种混合体。其中一部分通过子类型化可以被定制,而另部分通过组合可以被定制; 一部分需要调用应用程序代码,而另一部分则需要被应用程序代码所调用。 3 按照框架的级别可以分为三类:系统构架级框架、中间件集成框架和企业应用框 架。 系统构架级框架( s y s t e mi n f r a s t r u c t u r ef r a m e w o r k s ) 简化了系统构架的开发,如 操作系统、通讯框架、用户界面框架。系统构架级框架主要用于软件组织内部,而不直 接面向最终用户提供服务。 中间件集成框架( m i d d l e w a r ei n t e g r a t i o nf r a m e w o r k s ) 通常用于分布式应用和部 件。中间件集成框架用于赋予软件开发者在分布式环境中模块化、复用和扩展软件架构 的能力。 企业应用框架( e n t e r p r i s e a p p l i c a t i o nf r a m e w o r k ) 包括的领域最为广泛,如电信、 电子、制造、金融领域,它是企业业务活动的基础。相对于系统架构和中间件集成框架 而言,企业框架无论是开发和购买都相当昂贵。但是,企业框架可以提供实际的投资回 报,因为他们支持直接面向最终用户的应用和产品的开发。 本课题研究的框架属予企业应用框架,它是面向企业信息化管理的应用框架。 4 1 2 3 基于框架的开发方法 基于框架的软件开发模式是一种软件重用的高级形式,不仅能实现代码重用,而且能 大庆石油学院硕士研究生学位论文 有效的实现系统分析与设计的重用。然而,开发一个实用的框架往往成本较高,仅当有 多个应用系统要实现时,开发框架刁。有意义。通过缩短多个应用系统的开发时间,从而 补偿框架开发所花费的代价。 通常,开发框架需要经过下列阶段: ( 1 ) 结构定义 在开发第一个应用系统时,从系统的需求分析开始就要考虑设计的通用性。根据同类 问题的特点与处理模式,将与具体应用无关的处理部分分离出来,选择合适的软件结构, 确定框架的总体结构、控制流与数据流。 ( 2 ) 原型实现 伴随着第一个应用系统的实现,从而得到框架原型,其中包括与应用有关部件的程 序模板。通常,框架原型不是单独实现的,而是第一个应用系统的副产品。一旦有了框 架原型,就可以更容易地开发相似的应用实例了。 ( 3 ) 框架进化 在基于框架开发应用实例的过程中,以提高通用性与可重用性为目标,进一步对框 架进行抽象、修改与验证,改进其不合理之处。可以说,基于框架开发实例的过程也就 是框架的进化过程。 一般来说,一个实用的框架必须经过多个具体实例的反复抽象、应用、修改、验证 才能形成。 1 2 4 基于框架开发软件的优点 1 缩短上市周期 当以软件框架为基础编写应用软件时,只需要编写与早期的应用软件不同的代码。 重新编写的代码越少,软件产品的开发周期就越短,从而采用软件框架可以有效的缩短 软件产品的上市周期。 2 节省维护成本 在软件产品的生命周期里,软件维护所消耗的时间最长,同时也最昂贵。对于大的 软件产品系统而言,大约6 0 8 5 的成本消耗在对该软件产品的维护上,对维护需求 的缩减可以大大降低软件产品的总成本。当维护由一个框架所派生出来的多个软件应用 产品时,只需要维护一个软件框架,以及每个软件应用中不同的部分即可。这就意昧着 变化只要在一个地方发生,就可以保持致性。与同时维护几个完全不同的软件系统相 比较,采用软件框架方式可以大大节省软件维护成本。 3 节省测试成本 当复用一个软件框架时,与该框架相关的测试也被复用。对于应用软件而言,必须 提供的测试是对新模块的测试,以及对新模块与框架交互代码的测试和系统测试。因此, 测试与调试的数量大大缩减了。这种情况是以框架的正确为前提盼,系统测试的目的就 是监测框架使用的正确性。 4 使软件开发标准化 遵循标准精心设计的软件框架是以最好的实践经验为基础的。当以框架为基础进行 软件开发时,软件框架将对应用软件代码的编写方式产生约束。这就导致了应用软件必 须与公司标准和最佳实践相一致。 5 改善应用系统的可靠性 软件框架与别的软件系统一样,可能包含错误和缺陷,但是当软件框架被复用时, 软件框架所具有的错误和缺陷趋于稳定,新的错误和缺陷会很少。复用稳定的软件框架 相对于完全重新编码而言,可靠性更高。 第一章概述 6 框架包含了专家知识 在特定领域,好的软件设计需要丰富的领域知识,而丰富的领域知识只能靠经验才 能获得。因为软件框架是特定领域一系列相似问题的抽象解决方案,它包含着领域经验, 所以领域问题一旦被解决,业务规则和设计也都会保持一致。这就使得基于软件框架建 立的应用软件系统是在过去被证明有效的经验的基础上建立的。框架也使开发者将注意 力集中于应用解决方案,而将提供一致性服务的工作委托给软件框架。这就使得开发者 不必精通特定领域复杂的细节,而由软件框架解决了特定领域的复杂细节问题。软件框 架内嵌了控制流,而应用程序员的代码等待框架的调用。这就意味着开发者可以不关心 细节,而只关心问题域本身。 7 改善了致性和兼容性 共享软件框架的应用软件可以有很强的协作工作的能力。从用户的角度看,它们可 以被很好的集成,拥有相同或相似的用户界面。 总之可以说,框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是 框架,一个大的应用系统往往可能由多层互相协作的框架组成。由于框架能重用代码, 因此从已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从 而使构件闯的通信简单。 框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小 的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装 建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设 计者就能重用构架的设计。 框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分 为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟 通。 框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作 构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的 方法,它为构件复用提供了上下文( c o n t e x t ) 关系。 但是框架的开发不同于一般的应用系统的开发,成熟的框架需要经过多次的反复开 发和测试,充分地获取共性和识别特性。因此框架的开发比一般的应用软件的开发要困 难的多。也正因为如此,框架的开发一直是计算机软件领域研究的重点。 1 2 5 框架和其它复用技术的关系 框架复用是一种面向特定领域的软件复用方式,它一般建立在同一个或相似领域 中,即所要开发的软件系统要具有较强的相似性,通过框架把领域中不变或不易变的部 分在一定时间间隔内固定下来,把易变的部分以用户接口的形式保留下来,从而达到设 计和代码的复用。 在基于框架的软件开发中,有一些其它的面向对象复用技术和框架密切相关,它们 是类库( c l a s sl i b r a r y ) 、组件( c o m p o n e n t ) 、设计模式( d e s i g np a t t e r n ) 和体系结构。 框架和类库 在基于框架的开发过程中,类库扮演着重要的角色。类库是一组相关的、可复用的 类的集合,这些类提供了通用的功能。类库强调的是代码复用,他们是面向对象环境下 的“子程序库”。框架将类库集成到其内部来简化开发工作,并通过类库来完成一些基 本的任务如字符串处理、文件管理等。所有的框架都是类库,但弗不是所有的类库都是 框架。框架通过下列方式来扩展类库的功能: ( 1 ) 框架是包含特定领域对象体系结构和功能的“半成品”。框架中的组件一起合 6 大庆石油学院硕士研究生学位论文 作,为一类相关的应用程序提供一个标准的体系结构骨架,通过框架组件集成和组装可 以得到完整的应用程序。与之相比,类库不是针对特定领域,而只是提供较小范围内的 复用。 ( 2 ) 与框架运行时的“反向控制”相比,类库则是被动的。当使用类库时,开发 者要编写应用程序的主体并调用想要复用的代码;而当使用框架时,开发者应该复用应 用程序的主体,写主体调用的代码。 框架和组件 组件是自包含的抽象数据类型,并能够被组装在一起形成完整的程序。组件通过黑 箱技术,被设计成为定义了一个相互协调的操作的集合,该操作集可以通过在语法上一 致的接口来访问。 组件与框架是不同的,但是它们可以相互协作。首先,组件为框架提供了一个可复 用的环境。每一个组件在开发时都假定了它的存在环境,如果组件假定的环境不同,则 它们就不可能在一起很好地工作;丽框架则为组件提供了一个标准的环境来处理错误, 交换数据,激活彼此间的互操作。框架与组件在一起协同工作的另一种方式就是框架使 得开发新的组件变得更为容易。与框架相比,组件是松祸合的,并支持二进制级别的复 用。在基于框架的开发过程中,组件可以被黑盒框架用作为可嵌入的策略模式。通常, 框架被用来简化体系结构和中间件的开发,而组件则被用来简化最终用户程序的开发。 框架和设计模式 框架与设计模式虽然相似,但却有着根本的不同。设计模式是在软件开发过程中特 定场景下解决重复发生的问题的方案,它比框架更抽象。每一个设计模式都集中于一个 特定的面向对象设计问题或设计要点,描述了什么时候使用它,以及使用的效果和如何 取舍等。框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代 码表示。设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框 架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件, 而设计模式是软件的知识。 设计模式和框架之间的区别在于: ( 1 ) 设计模式比框架更抽象一些。框架被表示为用某种编程语言实现了的代码,而模 式不是这样只有那些用来说明模式的例子才表现为代码的形式。模式还包括许多其他 描述信息,如用途、可用性、结果等,这些信息在框架中常常没有描述。 ( 2 ) 设计模式是比框架小一些的结构。框架可以包含多个设计模式 ( 3 ) 框架比设计模式要专用一些。框架总是与某个特定的应用领域相关,而设计模 式常常是通用的,可以应用于多种应用领域 一个使用了设计模型的框架比不用设计模型的框架更可能获得高层次的设计复用和 代码复用。框架是一个可执行的软件,而设计模型代表了软件设计过程中的设计经验。 从这个意义来说,框架是个物理实体,而设计模型是个逻辑实体。框架可以看成是一个 或多个设计模式解决方案的物理实现,而模式则指导如何来实现这些方案。框架总是针 对一个特定的应用领域,而设计模式可以被用于任意应用。框架的威力在于它们能够用 程序设计语言编写,不仅可以被学习,还能被直接执行和复用。 框架与体系结构 软件体系结构的设计是整个软件开发过程中关键的一步。对于当今世界庞大而复杂 的系统来说,没有一个合适的体系结构而想要有一个成功的软件设计几乎是不可想象 的。不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体 系结构。体系结构的选择往往会成为一个系统设计成败的关键。现在的软件系统的发展 越来越强调开放性,这就要求在软件设计过程中不仅要注意良好的接口定义以使外部的 第一章概述 接插件能够方便的和本系统协同工作,也要注意良好的数据结构定义和数据封装以便外 部应用程序能够方便的共享本系统的数据,同时又不会造成破坏性的后果。因此,在框 架的设计过程中应该注意体系结构的研究。 1 3 相关知识介绍 本课题研究是在模型驱动体系m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 的思想基甜 上构 建一种软件框架,然后在这种框架的基础上来整合和集成应用软件的各个模块。为保证 框架的可扩展性,在给系统建模时是严格按照四层元建模理论来分层建立的:另外考虑 到可扩展标记语言x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 的平台无关性,在本系统中嗣 到的配置文件都是采用x m l 的格式来建立的。下面对这些相关理论做一些简单介绍。 i 3 1 模型驱动理论 m d a 是对象管理组织0 - g ( o b j e c tm a n a g eg r o u p ) 定义的一种开发方法,它是为应 对业务和技术的变化提供的一种开放的、中立的开发方法m d a ,其目的是将业务程序逻 辑与底层平台技术分离开来,以保护软件开发投资方的利益“1 。之所以口q 模型驱动是因 为它在整个理解、设计、构造、部署、操作、维护和修改的过程中都通过模型来实现”1 。 虽然o m g 确定了四种模型类型:计算无关的模型( c o m p u t a t i o ni n d e p e n d e n tm o d e l , c i m ) ,平台无关的模型( p l a t f o r m i n d e p e n d e d m o d e l ,p i m ) ,被一个平台模型( p l a t f o r m m o d e l ,p m ) 描述的平台相关的模型( p l a t f o r m s p e c i f i cm o d e l ,p s m ) 和一个实现相芙 的模型( i m p l e m e n t a t i o ns p e c i f i cm o d e l ,i s m ) ,但是一个完整的m d a 应用程序至少 包含:一个权威的p i m 、一个或者多个p s m 、一个或者多个完整的实现一一开发人员决 定支持的所有平台上的应用程序实现。p i m 是一个纯粹的不考虑实现技术的分析模型, 而p s m 可以视为一个基于特定实现技术,比如j a v a 2 平台企业版( j a v a2p l a t f o r m e n t e r p r i s ee d i t i o n ,j 2 e e ) 的设计模型。工程师们只需要建立表达业务逻辑的p i m , 剩下的工作都将由m d a 引擎自动完成。描述业务逻辑的p i m 将具有长久的价值,而针对 特定平台的p s m 则可能会随着平台技术的进步而快速地迁移。在m d a 开发过程中,系统 的开发工作的最终产品是p i m ,从p i m 到p s m 及至代码实现都是由第三方的自动化工具 来完成的。 为了实现m d a 这一宏大构想,o m g 制定了一系列的标准: u m l “1 :统一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 被m d a 用来描述各种模型。 它并不是为m d a 而生,但是作为目前最为风行的建模语言,u m l 已经占据了全球建模语 言领域9 0 的市场份额,成为了建模语言事实上的标准,因此o m g 将它作为m d a 技术的 基础是自然而然的明智选择。它是m d a 的基础,也是m d a 最有力的武器。 m o f t w l t 元对象机制m o f ( m e t ao b j e c tf a c i l i t y ) 是比u m l 更高层次的抽象,它 的目的是为了描述u m l 的扩展或者其它未来可能出现的类u m l 的建模语言。由此我们可 以看到o m g 的“野心”,虽然m o f 也不是为m d a 而生的,但是我们可以体味到o m g 的工 程师们良苦的用心和长远的目光。 x m i 1 l lx m i ( x m l b a s e dm e t a d a t ai n t e r c h a n g e ) 是基于x m l 的元数据交换。它通 过标准化的x m l 文档格式和d t d ( d o c u m e n tt y p ed e f i n i t i o n s ) 为各种模型定义了一种 基于x m l 的数据交换格式。这使得作为最终产品的模型可以在各种不同的工具中传递, 这一点是非常重要的,它保证了m d a 不会在打破了一种束缚之后再被加上一层新的束缚。 c 删 1 2 1 1 公共仓库元模型c w m ( c o 咖o nw a r e h o u s em e t a - m o d e l ) 提供了一种数据格 式变换的手段,在任意级别的模型上都可以使用c w m 来描述两种数据模型之间的映射规 8 大庆缸油学院瞬士研究生学位论文 则,比如将数据实体从关系数据库变换为x m l 格式。在m o f 的框架下,c w m 使得通用的 数据模型变换引擎成为可能。 在o m g 的蓝图中,u m l 、m o f 、x m i 、c 1 】m 等一系列标准分别解决了m d a 的模型建立、 模型扩展、模型交换、模型变换这几个方面的问题。0 m g 试图通过标准化的定义,扩大 m d a 的应用范围。同时通过这样一个可扩展的建模语言环境,i t 厂商可以自由实现自己 的建模语言,以及语言到可执行代码的映射,然而不管怎么样,都必须处于o m g 的标准 化框架之下。 1 3 2 元模型理论 元建模理论是从8 0 年代后期发展起来的,虽然起步晚,但发展速度很快。到目前为 止,为了不同的目的,已经定义了很多元一元模型和元模型,例如最早由电子工业协会 e i a ( e l e c t r o n i ci n d u s t r i e sa s s o c i a t i o n ) 定义的c d i f ( c a s ed a t ai n t e r c h a n g e f o r m a t ) 元一元模型,o m g 定义的m o f ( m e t a o b j e c tf a c i l i t y ) 元元模型、u m l ( u n i f i e d m o d e l i n gl a n g u a g e ) 元一元模型等等。这些元一元模型的建立都是以经典的四层元数据 体系结构为基础的。 经典的元建模框架是一个四层的元数据体系结构,每一层描述如下: 信息层( i n f o r m a t i o nl a y e r ) 信息层是由我们希望描述的数据组成,这些数据通常是一些用户数据( u s e r d a t a ) ,主要职责是描述信息领域中的详细信息。 模型层( m o d e ll a y e r ) 模型层是由元数据组成,元数据是描述信息层的数据,元数据的集合被称作为 模型。模型层的主要职责是为描述信息层而定义的一种“抽象语言”( 即没有具 体语法或符号的语言) 。信息层的数据,即用户数据,是模型层的一个实例。 元模型层( m e t a - m o d e ll a y e r ) 元模型层是由元一元数据组成,元一元数据定义了元数据的结构和语义,元元数 据的集合被称作为元模型。元模型层的主要职责是为了描述模型层雨定义的一 种“抽象语言”,是对模型层的进一步抽象。也就是说,模型层描述的内容通常 要比元模型层描述的内容丰富、详细。一个模型是元模型的一个实例。 元一元模型层( m e t a - m e t a m o d e ll a y e r ) 元一元模型层是由元一元数据的结构和语义的描述组成,这层的主要职责是为了 描述元模型丽定义的一种“抽象语言”。元一元模型的定义要比元模型更加抽象、 简洁。一个元一元模型可以定义多个元模型,而每个元模型也可以与多个元一元 模型相关联。通常所说的相关联的元模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国液体化工物流行业碳排放测算与减排路径报告
- 2025中国智慧零售行业现状分析及前景趋势与投资机会评估报告
- 2025中国智慧物流网络建设与效率提升报告
- 2025中国智慧教育行业发展现状及市场前景预测报告
- 2025中国智慧农业技术应用市场分析与投资价值评估报告
- 2025中国智慧农业传感器网络部署与精准灌溉实践研究报告
- 2025中国智慧交通系统市场投资机会与风险评估报告
- 2025中国无人机测绘应用拓展与行业解决方案价值报告
- 2025中国新能源汽车电池技术创新与产业升级研究报告
- 教学常规管理精细化实施方案
- 2025-2026学年外研版(三起)(2024)小学英语三年级上册期中检测试卷及答案
- 2025消防月消防安全知识培训课件
- 大规模数据标注技术-洞察及研究
- 2025至2030钛合金产业行业项目调研及市场前景预测评估报告
- 消防工程监理质量评估及验收报告
- GB 14930.2-2025食品安全国家标准消毒剂
- 房屋拆迁安置协议
- 美国寿力空压机操作规程
- 南瑞继保PCS9700综自监控和远动系统维护操作手册.
- 住院医师规范化培训基地评估指标(培训基地医院部分)
- 埃博拉病毒_ppt课件
评论
0/150
提交评论