




已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)基于构件的软件框架研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学硕士学位论文 摘要 软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件 开发的效率和质量。近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用 提供了基本的技术支持。软件复用研究重新成为热点,被视为解决软件危机,提高软件 生产效率和质量的现实可行的途径。框架技术的发展使软件复用技术达到了一个新的阶 段,同时,企业级应用软件的发展对软件复用技术提出了更高的要求,并为框架技术发 展提供了新的实践环境。 框架是一个软件产品的半成品,它含可变和不变部分,通过对可变部分的定制得到 不同的应用系统。框架是实现大粒度软件复用的有效途径,面向对象框架可以通过实例 化扩展实现具体的应用系统,但是,研究和实践表明,面向对象框架存在着一些问题。 采用基于构件的框架,通过用构件替代框架内部相互协作的类,以增大框架构成成分的 粒度;同时利用构件的接口调用和组装实现框架扩展机制。本文在研究各种软件复用技 术和框架理论知识的基础上,结合n e tf r a m e w o r k 技术,给出了一种基于构件的企业 应用框架c b e a f ( c o m p o n e n t b a s e de n t e r p r i s ea p p l i c a t i o nf r a m e w o r k ) 模型;阐述了框 架模型中各组成部分的功能和作用;讨论了基于构件的框架中连接构件和功能构件的开 发模型、过程和方法;探讨了热点驱动的应用框架丌发过程和方法。 最后,将该企业应用框架模型应用于e r p 系统框架的分析、设计中,并对e r p 系 统框架中的可变部分( 热点) 的常见种类进行了分析、归纳。实践表明,依据该框架模型 和开发过程进行框架开发,能够开发出具有较高复用性、灵活性和可扩展性企业级应用 框架:不仅能够提供构件复用,而且提供构架的复用;可有效提高二次开发的效率。 关键词:框架;构件;设计模式;e r p 系统 大连理工大学硕士学位论文 r e s e a r c ha n di m p l e m e n t a t i o no fc o m p o n e n t b a s e ds o f t w a r ef r a m e w o r k s a b s t r a c t s o f t w a r er e u s eo f f e r sas o l u t i o nt oe l i m i n a t er e p e a t e dw o r ka n di m p r o v ee f f i c i e n c ya n d q u a l i t yi nt h es o f t w a r ed e v e l o p m e n t i nt h er e c e n tt e ny e a r s , o b j e c t - o r i e n t e dt e c h n o l o g yh a s a p p e a r e da n db e c o m eam a i n s t r e a mt e c h n o l o g y ,t h e r e b yp r o v i d i n gf u n d a m e n t a lt e c h n o l o g y s u p p o r tf o rs o f t w a r er e u s e s o f t w a r er e u s er e g a i n sm o r ea h e n t i o ni ns o f t w a r ee n g i n e e r i n g r e s e a r c ha n di sc o n s i d e r e dap r a c t i c a la n df e a s i b l ea p p r o a c ht os o l v i n gt h es o f t w a r ec r i s i s i t c a ni m p r o v es o f t w a r ep r o d u c t i v i t ya n dq u a l i t y f r a m e w o r kt e c h n o l o g ya d v a n c e st h er e s e a r c h o fs o f t w a r er e u s e t h e d e v e l o p m e n to fe n t e r p r i s ea p p l i c a t i o nb r i n g s f o r w a r dm o r e r e q u i s i t i o n st ot h es o f t w a r er e u s e ,a n di tg i v e san e wb a c k g r o u n dt os o f t w a r ef r a m e w o r k f r a m e w o r ki sag e n e r a ld e s i g no fs o m ea p p l i c a t i o n s ;i tc o m p r i s e sv a r i a b l ea n dc o n s t a n t p a n s f r a m e w o r ki sa ni m p o r t a n ta p p r o a c ht ol a r g e g r a i n e ds o f t w a r er e u s e o b j e c t o r i e n t e d f r a m e w o r k sa r ew i d e l yu s e dt h r o u g hi n s t a n t i a t i o n ,b u ts o m es h o r t c o m i n g so fo b j e c t o r i e n t e d f r a m e w o r kw e r em e n t i o n e dd u r i n gr e l a t e dr e s e a r c h e sa n dp r a c t i c e s c o m p o n e n t b a s e d s o f t w a r ef r a m e w o r k ,w h i c hb e l o n g st ob l a c k b o xf r a m e w o r k ,i sa d o p t e dt os o l v et h e s e p r o b l e m s i nc o m p o n e n t b a s e ds o f t w a r ef r a m e w o r k , c o m p o n e n ti sc h o s e nt os u b s t i t u t ef o r c o l l a b o r a t e dc l a s st oi n c r e a s et h eg r a n u l a r i t yo ff r a m e w o r k se l e m e n t ,a n dh o ts p o ti s i m p l e m e n t e db yc o m p o n e n ti n t e r f a c ec a l l i n ga n dc o m p o n e n t sc o m p o s i t i o n b a s e do nt h e r e s e a r c ho ft h es o f t w a r er e u s ea n df r a m e w o r kt h e o r i e s ,a n dc o m b i n e dw i t h n e tf r a m e w o r k t e c h n o l o g y ,o n ec o m p o n e n t b a s e de n t e r p r i s ea p p l i c a t i o nf r a m e w o r ka r c h i t e c t u r em o d e lb a s e d o n n e tp l a t f o r mi s p r e s e n t e di n t h i sp a p e r t h e n ,e x p o u n dt h ef u n c t i o na n da c t i o no f c o m p o s ep a r t so ff r a m e w o r k n e x t ,d i s c u s st h em o d e l 、p r o c e s sa n dm e t h o do fc o n n e c t c o m p o n e n ta n df u n c t i o nc o m p o n e n td e v e l o p i n g a d d i t i o n a l ,d i s c u s st h ed e s i g np r o c e s so f h o t s p o r td r i v e na p p l i c a t i o nf r a m e w o r k i nt h ee n d ,t h ea r c h i t e c t u r em o d e lh a sb e e ng i v e ni sa p p l i e di nt h ea n a l y s i sa n dd e s i g no f e r ps y s t e mf r a m e w o r k a d d i t i o n a l l y ,a n a l y z ea n dc o n c l u d et h ec o m m o nv a r i a b i l i t yp a r t s ( h o t s p o t s ) i nt h ee r ps y s t e mf r a m e w o r k p r a c t i c ei n d i c a t e s t h ef r a m e w o r kh a sh i 【曲 r e u s a b i l i t y ,f l e x i b i l i t ya n de x p a n s i b i l i t y i tp r o v i d e sn o to n l yc o m p o n e n tr e u s eb u ta l s o a r c h i t e c t u r er e u s e i ti m p r o v et h ee f f i c i e n c yo fs e c o n d d e v e l o pa v a i l a b i l i t y k e yw o r d s :f r a m e w o r k ;c o m p o n e n t ;d e s i g np a t t e r n ;e r ps y s t e m 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, e e r i e 不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 大连理工大学硕士学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位 论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送 交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理 工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也 可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者签名: 导师签名: 墨堡塑 塞重 丑年上月卫日 大连理工大学硕士学位论文 1 绪论 1 1 课题的目的及意义 今天,有了像n e tf r a m e w o r k 和j 2 e e 这样的企业级软件平台,这些平台提供了基 于组件的方法,来设计、开发、装配及部署企业应用程序,提供了多层的分布式的应用 模型、组件重用、一致化的安全模型以及灵活的事务控制,所以n e tf r a m e w o r k 和j 2 e e 技术已经并成功的使用在许多的大型企业级应用中。然而,仅仅使用平台所提供的高级 抽象a p i ( a p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e ,应用编程接口) 来开发企业级应用仍然存在 大量的重复劳动,这将不能满足现代软件开发的效率、性能等需求。因此,构建在这些 高级a p i 上的良好的企业级应用框架对于成功开发的特定领域应用系统将大有好处。 本课题的目的和意义在于找出一种基于构件的企业级应用框架模型,并探讨框架的 开发过程、热点处理技术和方法等内容。达到提高目标领域系统的软件开发效率、降低 软件开发成本、提高系统的可靠性和可维护性的目的;为软件复用提供了一种新的、可 行的解决方案,也为后续研究提供了良好的参照并打下了峰实的基础。 1 2 国内外研究现状 2 0 世纪6 0 年代的软件危机导致了有关软件复用的研究。在1 9 6 8 年n a t o 软件工 程会议上,会议的邀请论文“m a s sp r o d u c e ds o f t w a r ec o m p o n e n t s ”首次提出可复用库 的思想,并希望通过代码复用实现大规模软件生产。近十几年来,面向对象技术出现并 逐步成为主流技术,为软件复用提供了基本的技术支持。软件复用己经成为现代软件工 程的一个主要研究重点“1 ,被视为解决软件危机,提高软件生产效率和质量的现实可行 的途径乜1 。随着软件复用技术的发展,复用的对象已经由最早的代码、函数库,发展到 类库、构件库,甚至于需求分析结果、体系结构、设计方案、测试计划等一切可复用的 软件资产。软件复用技术有助于提高软件开发的生产率,提高软件系统的可靠性,减少 软件维护的负担m 。 在构件研究方面:构件是被用于多层企业应用的一种复用技术。构件是实现特定的 一个或一组服务的软件系统中的一个被封装的部分。构件具有一个或多个接口,提供对 其服务的访问。构件充当了应用结构的“积木”,而且,只需了解其接口协议,就可对 其进行复用。m i c r o s o f t 的n e t 框架和s u n 公司的j a v a 环境,都提供了基于构件的方 法,来设计、开发、装配及部署企业应用程序,提供了多层的分布式的应用模型、构件 重用、一致化的安全模型以及灵活的事务控制,并成功的使用在许多的大型企业级应用 中。在构件和构件库的标准化方面,在美国军方和政府资助的项目中,已经建立了若于 基于构件的软件框架研究与实现 构件库系统,如c a r d s 、a s s e t 、d s r s 等。在构件的实现、组合技术方面,c o r b a 、 j 2 e e 、n e t 等各种规范和技术对基于构件的软件开发提供了有力的支持。在国内,青 鸟工程是基于构件的软件开发领域中具有代表性的研究。 在设计模式研究方面:模式指导构建新应用的开发者进行设计选择,不仅提供了代 码复用,而且实现了设计复用。模式的概念起源于建筑学家c h i r s t o p h e r a l e x a n d e r 的著 作 a p a t t e r nl a n g u a g e ) 。1 9 9 5 年,e r i c hg a m m a 等“四人组”的设计模式:可复用 面向对象软件的基础出版后,产生了重大的影响,软件模式被广泛接受。目前,模式 主要应用于软件体系结构和设计以及软件开发过程和组织。每年国际上都举办包括 p l o p ( p a t t e r n l a n g u a g e o f p r o g r a m m i n g ) 等在内的学术会议对设计模式进行讨论。当前, 国内外针对设计模式的研究工作主要包括以下三个方面:新设计模式的发现和发明;设 计模式的分类和描述;设计模式的应用。这三者构成一个特殊到一般,再由一般到特殊 的循环往复的过程。早期的研究大多集中于寻找和发现没计模式,如今研究的重点已转 向后两者,因为如何充分发挥设计模式在软件开发中的作用从而使设计过程越来越确 定,越来越成熟,应该是研究其它问题的首要前提。 目i i 开发和使用的框架有两种:面向对象框架( o b j e c t o r i e n t e df r a m e w o r k ,简称 o o f ) ”和基于构件的框架( 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 也称 为黑盒框架。 2 0 世纪8 0 年代以来,许多学者围绕框架的定义、开发、实例化进行了大量研究, 一些软件公司也实现了特定于领域的框架,如t a l i g e n t 公司的c o m m o n p o i n t 和i b m 针 对商业领域的s a n f r a n c i s c o :还有s c h m i d t 研究小组将框架开发原理和模式应用于网络 化应用领域,成功地开发了一个面向并发通讯系统软件开发的应用框架a c e ( a d a p t i v e c o m m u n i c a t i o ne n v i r o n m e n t ) 。在a c e 中实现了许多用于并发通信软件的核心模式,为 面向对象的网络应用程序实现了一种模式语言。 大连理工大学硕士学位论文 1 3 本文的工作及内容安排 本文在探讨面向对象、类库、构件、设计模式、体系结构、框架等多种理论与技术 的基础上,给出了一种基于构件的企业应用框架c b e a f ( c o m p o n e n t - b a s e de n t e r p r i s e a p p l i c a t i o n f r a m e w o r k ) 。此框架属于“黑白”盒混合框架,其中运用了分层的体系结构 和多种设计模式。此框架具有良好的复用性、灵活性和扩展性,有效地简化目标框架的 开发以及减少开发的迭代次数和工作量,对于最终基于框架快速开发各种应用系统具有 重要的意义。概括而言,本文将就以下几个主要方面的内容进行研究: ( 1 ) 研究面向对象、类库、构件、体系结构、设计模式、框架等软件复用技术,以 及它们之间的关系,探讨这些复用技术为企业及应用开发带来的好处。 ( 2 ) 探讨基于n e tf r a m e w o r k 平台设计基于构件的企业应用框架 c b e a f ( c o m p o n e n t b a s e de n t e r p r i s ea p p l i c a t i o nf r a m e w o r k ) 的层次化体系结构,并对其 各层功能和作用进行划分和描述,以便于框架功能的改变和扩展。 ( 3 ) 研究基于构件的企业应用框架中连接构件和功能构件的开发模型、过程和方 法;探讨如何采用热点驱动的框架开发过程进行框架开发;探讨框架中热点的确定、分 析和实现一般方法。 ( 4 ) 通过e r p 系统框架的分析设计,对基于构件的框架模型的可行性进行实践检 验;对e r p 系统中容易变化的部分,利用热点驱动丌发方法进行分析和设计。 本文内容安排如下: 第一章绪论,主要介绍课题的目的和意义、主要工作和开发环境。 第二章软件复用相关技术,主要对与本课题相关的软件复用技术进行介绍,主要包 括软件复用技术、框架、构件、构架、设计模式等内容的介绍。 第三章基于构件的应用框架构建,对本文给出的一种框架体系结构模型进行详细介 绍;并对以此模型为基础的框架开发中,功能构件和连接构件的开发方法进行了阐述; 并探讨了热点驱动的框架开发过程。 第四章基于构件的e r p 系统框架的设计,介绍基于构件的e r p 框架的分析和设计 方法过程,并对e r p 系统框架中的热点的识别、分类、设计进行了阐述。 第五章基于构件的e r p 系统框架的实现,是e r p 系统框架的部分界面截图和代码 的实现。 1 4 开发环境介绍 本课题的研究采用v i s u a lc 挣语言,以m i c r o s o f tv i s u a ls t u d i o2 0 0 5 为丌发环境。 v s2 0 0 5 可用于生成a s p n e tw e b 应用程序、x m lw e bs e r v i c e s 、桌面应用程序和移 3 基于构件的软件框架研究与实现 动应用程序。语言互操作性是n e tf r a m e w o r k 的一个关键功能,在此集成开发环境 ( m e ) 中,v i s u a lb a s i c 、v i s u a lc + + 、v i s u a lc 带和v i s u a l 肼等编程语言均可使用,利 用此i d e 可以共享工具且有助于创建混合语言解决方案。 v i s u a lc 弗是一种编程语言,它是为生成在n e tf r a m e w o r k 上运行的多种应用程 序而设计的。c 弟简单、功能强大、类型安全,而且是面向对象的。c 带凭借它的许多 创新,在保持c 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。 4 大连理工大学硕士学位论文 2 相关技术 近年来,随着软件复用技术研究的深入,软件框架技术也日益受到人们的重视。可 以说框架是在软件复用的基础上发展起来的,它是指一个可复用的、部分实现的软件制 品,它能够被实例化扩展,以生成特定的应用。从领域工程的角度来看,框架是实例化 的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 ,特定于领域的软件体系结构) ,它反映 了一个软件系统族的体系结构,并且提供了创建后者的基本构造单元,同时定义了针对 特定的功能需要在何处进行调整和修改 4 1 ,即扩展点( h o ts p o t s ) 。软件框架有助于实现 领域内体系结构层次较大粒度的设计复用,提高应用开发中复用的比例,从而保证复用 活动的成功率,降低应用开发的成本。下面对软件复用技术、框架技术及其相关知识进 行简单的概述。 软件技术发展至今,经历了基于算法的程序设计技术、结构化软件开发、面向对象 软件丌发以及当f j i 的基于构件的软件开发技术。伴随着软件开发技术的发展,软件工程 方法也经历了传统软件工程、面向对象软件工程至当前包括基于构件的软件工程方法在 内的许多先进的软件工程方法。 2 1 软件复用技术 软件工程( s o f l w a r ee n g i n e e r i n g ) 是应用计算机科学理论和技术以及工程管理原则和 方法,按照预算和进度,实现满足用户要求的软件产品的定义、丌发、发布和维护的工 程或以之为研究对象的学科。软件工程的基本目标是生产具有正确性、可用性及丌销合 宜( 合算性) 的产品。软件工程活动是“生产一个最终满足用户需求且达到工程目标的软 件产品所需要的步骤”,主要包括需求、设计、实现、确认以及支持等活动。 软件复用是在软件开发中避免重复劳动的重要解决方案,自1 9 6 8 年在n a t o 软件 工程会议上被m c l l r o y 提出后,三十多年来已有长足发展。软件复用是指软件系统的开 发不再采用一切“从零开始”的模式,而是以已有工作为基础,充分利用过去应用系统 开发中积累的资源,如设计、代码、测试用例、度量、过程、开发知识和经验等,从而 将开发的重点集中在完成系统的业务逻辑设计上面。通过软件复用,可以消除重复劳动, 避免重新开发可能引入的错误,从而提高软件开发的效率和质量,并且将开发的重点集 中于软件系统的重点部分。 十几年来,随着面向对象技术、构件技术、设计模式、框架等软件复用技术的出现, 使软件复用重新成为软件工程研究的热点。因为越来越多的人意识到要提高软件的生产 效率,解决软件危机问题,软件复用是一个有效的途径。尤其对于大型软件系统的开发, 基于构件的软件框架研究与实现 在提高开发效率,降低软件出错率上将会有更明显的作用。总结起来,复用的优势可归 结为:提高生产率、提高软件质量、减少维护代价、提高互操作性、支持快速原型法、 减少培训开销。 在面向对象领域,比较常见的软件复用技术有:类库( c l a s sl i b r a r i e s ) 、构件 ( p o m p o n e n t s ) 、模式( p a t t e r n s ) 、框架( f r a m e w o r k s ) 等等。近年来人们认识到,软件构件 化是软件工业发展的大趋势,工业化的软件复用已经从通用类库进化到了面向领域的应 用框架。面向对象的、可复用的软件框架已经成为一个软件系统中的核心元素,是软件 系统中其它部分所依赖的基础。框架由于提供了大粒度的重用而被认为是一种最有前途 的面向对象技术。 2 2 软件框架技术 框架的概念出现于八十年代,s m a l l t a l k 8 0 丌发环境中的框架m v c ,被认为是第 一个得到广泛应用的框架。当然,框架不仅仅限于用户接口,它也存在于其它的应用领 域。目f i i 框架的研究在学术界和工业界都引起了人们广泛的兴趣,框架的重用已成为软 件生产中最有效的重用方式之一。g a r t n e rg r o u p 曾经预测:“将来至少7 0 的新应用 会主要建立在如软件构件和应用框架这类构造块之上:应用开发的未来就在于提供 一开放体系结构,以方便构件的选择、组装和集成。” 2 2 1 框架的定义 对于框架,一直以来没有一个统一的定义,下面给出两个最常用的定义:( 1 ) 框架 是一个系统全部或者部分的可复用设计,通常由一组抽象类和类之间的协作组成1 5 1 。( 2 ) 框架是一个能够被开发人员实例化的系统骨架【“。这两个定义是相互补充的,前者从复 用的角度描述了框架,而后者给出了框架的目的。根据以上两个定义可知:( 1 ) 框架既 分割了应用领域中的类、定义了各部分的主要责任和类与对象的协作关系,还规定了控制 流程;( 2 ) 框架记录并实现了其应用领域的主要公共设计决策。由此可以认为,框架是 一个“部分实现”的软件体系结构,是支持软件设计复用和实现复用的技术。 2 2 2 框架的分类 ( 1 ) 按照软件框架被定制或扩展的方式可以分为:白盒框架、黑盒框架和灰盒框架。 白盒框架:框架的用户通过对框架类实施子类型化来定制框架。在框架生命周 期的初始阶段,框架往往是白盒框架,因为应用域还没有得到充分的理解,因而无法通 过参数化来控制其行为。 6 大连理工大学硕士学位论文 黑盒框架:框架的用户通过使用不同类的组合来定制框架。黑盒框架是基于组 合的,参数化框架要求对领域的稳定部分与易变部分有深刻的理解。黑盒框架一般是框 架演化生命周期的终点。 灰盒框架:框架的用户既要通过子类型化,又通过组合来定制框架。灰盒框架 是框架演化生命周期的中间状态。 ( 2 ) 按照实现技术和提供扩展点的机制可以分为:面向对象框架和基于构件框架两 种。 面向对象框架( o b j e c t o r i e n t e df r a m e w o r k ,简称o o f ) 7 1 :o o f 的复用是通过对 框架中的抽象类进行特殊化的方式来定义框架行为的,每一个抽象类派生一个子类,并 在子类中给定所有纯虚方法的具体实现,然后就可以复用这些具体的子类来开发特定应 用系统。因此,o o f 是基于继承的框架,也称为白盒框架。 基于构件的框架( c o m p o n e n t b a s e df r a m e w o r k ,简称c b f ) :随着2 0 世纪9 0 年一 代构件技术的兴起,出现了基于构件的框架( c b f ) ,即将基于继承的面向对象框架通过t 用构件接口中方法的调用来替代对象类中方法的重载,转换成为基于构件的框架。基于 构件的框架由互相协作的构件组成,并通过对构件接口的扩展来实现应用系统。相对于 基于继承的框架,c b f 又被称为基于组装的框架。 ( 3 ) 按照软件框架与应用软件之间的交互方式( 即调用方式) ,可以将软件框架分为 调用框架和被调用框架两种。 调用框架:框架是主动实体,框架主动的调用应用程序代码。 被调用框架:框架是被动实体,框架被应用程序代码所调用。实际上,框架很 难称为纯粹的白盒框架、黑盒框架或调用框架、被调用框架,经常是一种混合体。其中 一部分通过子类型化可以被定制,而另一部分通过组合可以被定制;一部分需要调用应 用程序代码,而另一部分则需要被应用程序代码所调用。 ( 4 ) 按照框架的级别可以分为三类:系统构架级框架、中间件集成框架和企业应用 框架。 系统构架级框架( 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 j b ( e n t e r p r i s ej a v a b e a n s ) 、c o m ( c o m p o n e n t o b j e c tm o d e l ,组件对象模型) d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ,分布式组件 基于构件的软件框架研究与实现 对象模型) 和c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理体 系结构) 。 企业应用框架( e n t e r p r i s ea p p l i c a t i o nf r a m e w o r k ) 包括的领域最为广泛,如电信、 电子、制造、金融领域,它是企业业务活动的基础。相对于系统架构和中间件集成框架 而言,企业框架无论是开发和购买都相当昂贵。但是,企业框架可以提供实际的投资回 报,因为他们支持直接面向最终用户的应用和产品的开发。 本文研究的框架属于企业应用框架,它是面向企业信息化管理的应用框架。 2 2 3 基于框架开发软件的优点 ( 1 ) 缩短上市周期 当以软件框架为基础编写应用软件时,只需要编写与早期的应用软件不同的代码。 重新编写的代码越少,软件产品的丌发周期就越短,从而采用软件框架可以有效的缩短 软件产品的上市周期。 ( 2 ) 节省维护成本 在软件产品的生命周期里,软件维护所消耗的时| 日j 最长,同时也最昂贵。对于大的 软件产品系统而占,大约6 0 8 5 的成本消耗在对该软件产品的维护上,对维护需求 的缩减可以大大降低软件产品的总成本。当维护由一个框架所派生出来的多个软件应用 产品时,只需要维护一个软件框架,以及每个软件应用中不同的部分即可。这就意味着 变化只要在一个地方发生,就可以保持一致性。与同时维护几个完全不同的软件系统相 比较,采用软件框架方式可以大大节省软件维护成本。 ( 3 ) 节省测试成本 当复用一个软件框架时,与该框架相关的测试也被复用。对于应用软件而言,必须 提供的测试是对新模块的测试,以及对新模块与框架交互代码的测试和系统测试。因此, 测试与调试的数量大大缩减了。这种情况是以框架的正确为前提的,系统测试的目的就 是监测框架使用的正确性。 ( 4 ) 使软件开发标准化 遵循标准精心设计的软件框架是以最好的实践经验为基础的。当以框架为基础进行 软件开发时,软件框架将对应用软件代码的编写方式产生约束。这就导致了应用软件必 须与公司标准和最佳实践相一致。 ( 5 ) 改善应用系统的可靠性 大连理工大学硕士学位论文 软件框架与别的软件系统一样,可能包含错误和缺陷,但是当软件框架被复用时, 软件框架所具有的错误和缺陷趋于稳定,新的错误和缺陷会很少。复用稳定的软件框架 相对于完全重新编码而言,可靠性更高。 ( 6 ) 框架包含了专家知识 在特定领域,好的软件设计需要丰富的领域知识,而丰富的领域知识只能靠经验才 能获得。因为软件框架是特定领域一系列相似问题的抽象解决方案,它包含着领域经验, 所以领域问题一旦被解决,业务规则和设计也都会保持一致。这就使得基于软件框架建 立的应用软件系统是在过去被证明有效的经验的基础上建立的。框架也使开发者将注意 力集中于应用解决方案,而将提供一致性服务的工作委托给软件框架。这就使得开发者 不必精通特定领域复杂的细节,而由软件框架解决了特定领域的复杂细节问题。软件框 架内嵌了控制流,而应用程序员的代码等待框架的调用。这就意味着丌发者可以不关心 细节,而只关心问题域本身。 ( 7 ) 改善了一致性和兼容性 共享软件框架的应用软件可以有很强的协作工作的能力。从用户的角度看,它们可 以被很好的集成,拥有相同或相似的用户界面。 总之可以说,框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是 框架,一个大的应用系统往往可能由多层互相协作的框架组成。由于框架能重用代码, 因此从已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从 而使构件问的通信简单。 框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小 的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装 建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设 计者就能重用构架的设计。 框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分 为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。 框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作 构件之日j 的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之问协作的 方法,它为构件复用提供了上下文( c o n t e x t ) 关系。 但是框架的开发不同于一般的应用系统的开发,成熟的框架需要经过多次的反复开 发和测试,充分地获取共性和识别特性。因此框架的开发比一般的应用软件的开发要困 难的多。也正因为如此,框架的开发一直是计算机软件领域研究的重点。 一9 基于构件的软件框架研究与实现 2 2 4 框架和其它软件复用技术的关系 框架复用是一种面向特定领域的软件复用方式,它一般建立在同一个或相似领域 中,即所要开发的软件系统要具有较强的相似性,通过框架将领域中不变或不易变的部 分在一定时间间隔内固定下来,把易变的部分以用户接口的形式保留下来,从而达到设 计和代码的复用。 在基于框架的软件开发中,有一些其它的面向对象复用技术和框架密切相关,它们 有类库( 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 ) 框架和类库 在基于框架的开发过程中,类库扮演着重要的角色。类库是一组相关的、可复用的 类的集合,这些类提供了通用的功能。类库强调的是代码复用,他们是面向对象环境下 的“子程序库”。框架将类库集成到其内部来简化开发工作,并通过类库来完成一些基 本的任务如字符串处理、文件管理等。所有的框架都是类库,但并不是所有的类库都是 框架。框架通过下列方式来扩展类库的功能: 框架是包含特定领域对象体系结构和功能的“半成品”。框架中的组件一起合 作,为一类相关的应用程序提供一个标准的体系结构骨架,通过框架组件集成和组装可 以得到完整的应用程序。与之相比,类库不是针对特定领域,而只是提供较小范围内的 复用。 与框架运行时的“反向控制”相比,类库则是被动的。当使用类库时,开发者 要编写应用程序的主体并调用想要复用的代码;而当使用框架时,开发者应该复用应用 程序的主体,写主体调用的代码。 ( 2 ) 框架和构件 构件是自包含的抽象数据类型,并能够被组装在一起形成完整的程序。构件通过黑 箱技术,被设计成为定义了一个相互协调的操作的集合,该操作集可以通过在语法上一 致的接口来访问。 构件与框架是不同的,但是它们可以相互协作。首先,构件为框架提供了一个可复 用的环境。每一个构件在开发时都假定了它的存在环境,如果构件假定的环境不同,则 它们就不可能在一起很好地工作;而框架则为构件提供了一个标准的环境来处理错误, 交换数据,激活彼此问的互操作。框架与构件在一起协同工作的另一种方式就是框架使 得开发新的构件变得更为容易。与框架相比,构件是松耦合的,并支持二进制级别的复 用。在基于框架的开发过程中,构件可以被黑盒框架用作为可嵌入的策略模式。通常, 框架被用来简化体系结构和中日j 件的丌发,而构件则被用来简化最终用户程序的丌发。 ( 3 ) 框架和设计模式 1 0 大连理工大学硕士学位论文 框架与设计模式虽然相似,但却有着根本的不同。设计模式是在软件开发过程中特 定场景下解决重复发生的问题的方案,它比框架更抽象。每一个设计模式都集中于一个 特定的面向对象设计问题或设计要点,描述了什么时候使用它,以及使用的效果和如何 取舍等。框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代 码表示。设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框 架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件, 而设计模式是软件的知识。 设计模式和框架之间的区别在于: 设计模式比框架更抽象一些。框架被表示为用某种编程语言实现了的代码,而 模式不是这样。只有那些用来说明模式的例子才表现为代码的形式。模式还包括许多其 他描述信息,如用途、可用性、结果等,这些信息在框架中常常没有描述。 设计模式是比框架小一些的结构。框架可以包含多个设计模式 框架比设计模式要专用一些。框架总是与某个特定的应用领域相关,而设计模 式常常是通用的,可以应用于多种应用领域。 一个使用了设计模型的框架比不用设计模型的框架更可能获得高层次的设计复用 和代码复用。框架是一个可执行的软件,而设计模型代表了软件设计过程中的设计经验。 从这个意义来说,框架是个物理实体,而设计模型是个逻辑实体。框架可以看成是一个 或多个设计模式解决方案的物理实现,而模式则指导如何末实现这些方案。框架总是针 对一个特定的应用领域,而设计模式可以被用于任意应用。框架的威力在于它们能够用 程序设计语言编写,不仅可以被学习,还能被直接执行和复用。 ( 4 ) 框架与体系结构 软件体系结构的设计是整个软件开发过程中关键的一步。对于当今世界庞大而复杂 的系统来说,没有一个合适的体系结构而想要有一个成功的软件设计几乎是不可想象 的。不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体 系结构。体系结构的选择往往会成为一个系统设计成败的关键。现在的软件系统的发展 越来越强调开放性,这就要求在软件设计过程中不仅要注意良好的接口定义以使外部的 接插件能够方便的和本系统协同工作,也要注意良好的数据结构定义和数据封装以使外 部应用程序能够方便的共享本系统的数据,同时又不会造成破坏性的后果。因此,在框 架的设计过程中应该注意体系结构的研究。 基于构件的软件框架研究与实现 2 3 软件构件技术 构件( c o m p o n e n t ) 是被用于多层企业应用的一种复用技术,是应用系统中可以明确 辨识的构成成分,是实现特定的一个或一组服务的软件系统中的一个被封装的部分。构 件具有一个或多个接口,提供对其服务的访问。构件充当了应用结构的“积木”,而且, 只需了解其接口协议,就可对其进行复用。而可复用构件( r e u s a b l ec o m p o n e n t ) 是指具 有相对独立的功能和可复用价值的构件。 可复用构件应具备以下属性1 8 】:有用性( u s e f u l 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 i t y ) :构件应该易于通过参数化等方式在不厨语境中进行配置; 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 随着对软件复用理解的深入,构件的概念已不再局限于源代码构件,而是延伸到需 求、系统和软件的需求规则约、系统和软件的构架、文档、测试计划、测试案例和数据 以及其他对丌发活动有用的信息。这些信息都可以称为可复用软件构件。 软件构件技术是支持软件复用的核心技术,是近几年束迅速发展并受到高度重视的 一个学科分支。其主要研究内容包括: 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; 构件模型:研究构件的本质特征及构件| 日j 的关系; 构件描述语言:以构件模型为基础,解决构件的精确描述理解及组装问题; 构件分类与检索:研究构件分类策略! 组织模式及检索策略,建立构件库系统, 支持构件的有效管理; 构件复合组装:在构件模型的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行2025南平市秋招笔试性格测试题专练及答案
- 教师招聘之《小学教师招聘》考前冲刺练习试题含答案详解【轻巧夺冠】
- 教师招聘之《幼儿教师招聘》考前冲刺模拟题库提供答案解析含答案详解【新】
- 2024年山东菏泽广电传媒集团招聘真题
- 2024年揭阳市市直单位遴选公务员真题
- 2025年甘肃省兰州市辅警招聘考试题库及答案
- 2025年甘肃省白银市警(协警)招聘考试题库及答案
- 2025年辅警招聘考试题库及答案
- 2025年教师招聘之《幼儿教师招聘》测试卷及完整答案详解一套
- 教师招聘之《小学教师招聘》测试卷【a卷】附答案详解
- “一带一路”倡议下的企业出海战略研究
- 体系管理知识培训课件
- 辽宁沈阳地铁有限公司所属公司招聘笔试题库完整参考答案详解
- 2025年秋季小学二年级上册语文教学计划及教学进度表
- 2025年海事两员从业资格考试(包装危险货物申报人员)历年参考题库含答案详解(5套)
- 新学期初二开学家长会课件
- 2025-2026学年外研版(2024)初中英语七年级上册(全册)教学设计(附目录)
- 消化内科临床科室发展规划与实施方案
- 空天飞机热管理系统-洞察及研究
- 讲解壮族文化
- 经营性公墓建设-可行性研究报告
评论
0/150
提交评论