(计算机应用技术专业论文)构件技术在开发mis中的应用研究.pdf_第1页
(计算机应用技术专业论文)构件技术在开发mis中的应用研究.pdf_第2页
(计算机应用技术专业论文)构件技术在开发mis中的应用研究.pdf_第3页
(计算机应用技术专业论文)构件技术在开发mis中的应用研究.pdf_第4页
(计算机应用技术专业论文)构件技术在开发mis中的应用研究.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

硕士学位论文 1 a s l h t si i i e s i s 摘要 f 构件技术是目前先进的软件开发技术之一,它的产生给软件业的发展带来 了新的前景。目前越来越多的应用软件的开发使用到构件技术。同时构件技术 在广泛应用中,也证明了它的确能给软件开发带来许多的好处。例如,可避免 相同功能模块的重复性开发工作;构件的有用性及其正确性,可以极大地减少 软件测试阶段的人力物力的投及;同时,采用构件组装技术,对于软件的维护 也带来极大地便利性等等。 本文主要讨论了,构件这种先进的软件开发技术在复杂多变的m i s 软件系 统开发中的应用。在文章开头,首先介绍了软件开发的现状,以及软件开发技 术的发展过程。对构件技术,以及构件接口技术中的c o m d c o m ( c o m p o n e n t o b j e c tm o d e l ,构件对象模型) ( d i s t r i b u t e dc o m ,分布式构件对象模型) 规约 的一些基本概念和c o m 的应用模型作了详细的探讨。 m i s 系统成功开发的关键是要有一个好的方法。本文讨论了基于重用开发 的框架和基于软构件重用开发m i s 系统的模式,并较详细地叙述了该方法涉及 的m i s 构件库及其管理。阐述了构件技术在m i s 软件开发中的优势。最后,给 出了c o m 技术在图书馆m i s 系统中的应用实例。 本文通过对构件技术的探讨与研究,认为软构件重用方法的关键是对构件 的重用组合技术。通过对构件技术在m i s 系统软件开发中的应用的研究,证明 构件技术是一种比较高效的m i s 开发技术。 、- ,7 、l - 关键词:构件,对象,框架,构件接口技术,管理信息系统,三层体系结构, 构件对象模型 硕士学位论文 a b s t r a c t t h ec o m p o n e n t m e t h o d o l o g y i s p r e s e n t l y o n eo ft h ea d v a n c e d t e c h n i q u e s i ns o f t w a r e d e v e l o p m e n t t h e a p p l i c a t i o n o ft h i s m e t h o d o l o g yw i l lb r i n gg o o df u t u r et ot h es o f t w a r ed e v e l o p m e n t ,a si t i sb e c o m e sm o r ea n dm o r e p o p u l a r n o w a d a y s ,t h i st e c h n i q u ei sw i d e l y u s e d ,a s i t s a d v a n t a g e s a r eo b v i o u s f o r i n s t a n c e ,t h i sm e t h o d o l o g y a v o i d sd u p l i c a t e dw o r ki n d e v e l o p i n gt h e s a m ef l m c t i o no fam o d e l t i l ec o m p o n e n ti sr e u s a b l ea n de r r o r f r e e ,s oc o s ts a v i n gi s s i g n i f i c a n t i nt h et e s t i n gp h a s eo fs o f t w a r ed e v e l o p m e n t i na d d i t i o n ,i t st e c l m i q u e i n a s s e m b l i n gc o m p o n e n t s i sac o n v e n i e n tt o o lf o r m a i n t a i n i n gt h e s o f t w a r ea n ds oo n t h e o b j e c t i v e o ft h i s p a p e r i st od i s c u s st h e c o m p o n e n t m e t h o d o l o g y i nt h ew o r l do fs o f t w a r ee n g i n e e r i n g f i r s t ,1w i l lp r e s e n ta s l l n l n a r yo f c u r r e n tm e t h o d o l o g i e si nt h es o f t w a r ed e v e l o p m e n t ,t h e i r a d v a n t a g e s a n d d i s a d v a n t a g e s t h e n1w i l lf o c u so n s o m eb a s i c c o n c e p t sa n da p p l i c a t i o n so fc o m a u t h o ri s p a r t i c u l a r l y i n t e r e s t e di nt h e a p p l i c a t i o no ft h ec o m t o 儿 硕士学位论文 d e v e l o p t h e m a n a g e m e n t i n f o r m a t i o n s y s t e m ( m i s ) t h i sp a p e r d i s c u s s e s2 s p e c i a la p p l i c a t i o n s ,a f l a m ea n dam o d e li nm i s e n g i n e e r i n g ,b o t hb a s e do nr e u s a b l ec o m p o n e n tt e c h n i q u e t h ep a p e r a l s od i s c u s s e si nd e t a i lt h em i s c o m p o n e n tl i b r a r y ,i t sm a n a g e m e n t ,a n d t h er e a s o n sf o rp r e d o m i n a n c eo fc o m i nm i s d e v e l o p m e n t a tl a s t ,a r e a lw o r l da p p l i c a t i o ne x a m p l ei sg i v e n t h r o u g he x t e n s i v er e s e a r c ha n dd i s c u s s i o no f t h ec o m ,1w i l lc o m e t ot h ec o n c l u s i o nt h a tt h er e u s a b l e n e s s i st h e k e yt e c h n i q u e i n c o m p o n e n ta s s e m b l y ;a n dt h a tt h ec o m i sa ne f f e c t i v em e t h o d o l o g yf o r t h em i s d e v e l o p m e n t k e y w o r d s :c o m p o n e n t ,o b j e c t ,f r a m e ,c o m p o n e n ti n t e r f a c et e c h n o l o g y , m a n a g e m e n t i n f o r m a t i o n s y s t e m ,t h r e e t i e rs y s t e m s t r u c t u r e , c o m p o n e n to b j e c tm o d e l i i 硕士学位论文 m 刚i ! r sl l s i s 1 1 引言 第一章绪论 当今社会已进入信息化时代,人们对信息的需求不断提高,随着计算机 在各个领域的普及、应用和发展,人类的经济和社会生活对计算机的依赖程度 急剧增长,各个行业的软件需求也变得越来越复杂。因此,开发一个能满足行 业要求的软件,所需的工作量也变得越来越大、开发难度也越来越难。传统的 手工作坊式的软件开发方法已经难以满足人们对软件的需求。软件开发技术的 研究和软件产业的发展已经成为各国软件业发展的关键。 面向对象技术自其一出现便逐步成为软件开发的主流技术,为软件的复用 提供了技术支持。正是软件复用技术的提出,软件开发人员才得以从重复劳动、 低效工作的局面中解脱出来。软件复用技术的研究也成为各国软件研究领域的 热点,并且被视为解决软件危机、提高软件生产效率和软件质量的现实可行的 途径。 进入9 0 年代以后,随着计算机网络的发展,在分布式环境及软件高重用 性的要求下,软件复用技术进一步发展,随后产生的基于软件复用的构件技术 逐渐成为一种重要的软件开发技术,多种构件模型应运而生。软件构件化技术 将对软件行业的生产方式产生根本性的飞跃和变革,将以前所未有的方式提高 了软件产业的生产效率。 在软件发展的同时,数据库技术也得到迅速的发展,在这个信息交换日益 频繁的时代,m i s ( m a n a g e m e n ti n f o r m a t i o ns y s t e m ,管理信息系统) 系统的 开发及其广泛的应用,极大地促进了人们的工作效率和管理水平的提高。另一 方面,用户对m i s 系统的需求也变得日益复杂,在大型管理信息系统中即使软 件分析人员对软件业务需求分析调查得再充分,可能在开发期间和软件完成 之后,由于种种无法预知的原因,新的需求总会不断涌现,往往会导致软件 开发人员陷入重复性劳动、低效率的软件开发的被动局面。 硕士学位论文 j sr r i sj l i i - sj s 要想改变这种局面,软件开发人员刁i 得不努力地寻找一种基于新的方法的 软件开发技术。软件构件技术的诞生使人们很快认识到它的先进性。软件开发 人员在进行各种应用软件的开发中也越来越多地使用到构件技术。软件构件技 术应用于m i s 系统的开发已经成为必然的发展趋势。软件构件技术的应用为 m i s 系统的开发提供了一种先进的技术。它既可以解决由于软件需求频繁变动 而给软件开发人员带来的重复劳动问题,也可以解决分布式m i s 系统的测试与 维护过程中所遇到的各种问题。本文主要是在他人对构件技术研究的基础上, 对软件构件技术在m i s 系统开发中的应用做了一些研究工作,并对构件技术及 与其相关的知识进行了一些探讨性研究。 1 2 研究背景及发展现状 如何解决软件危机,改变手工作坊式的软件开发方式? 1 9 6 8 年人们提出 使用工程化的方法和管理手段解决软件危机的想法,将软件的开发纳入工程化 的轨道。7 0 年代这种思想取得了大量的研究成果,而且逐步形成了软件工程的 概念、框架、方法和手段。8 0 年代面向对象技术与方法的出现不仅受到软件人 员广泛重视,而且进步提高了软件的开发效率,并使软件的质量得到保证。 进入9 0 年代软件工程的一个重要进展就是基于构件的开发方法的提出“。9 0 年代人们为了提高软件生产力,保证软件质量,则尽可能地利用可复用的构件, 来组装出新的应用软件系统。这极大的提高了软件生产率。随着i n t e r n e 技 术的发展,大量的分布式处理系统需要开发,软件构件技术在分布式环境下进 行软件丌发的重要性也日益显露出来。 那么,如何列能既可以提高软件的生产效率,又能保障软件产品的质量, 同时还可以减少重复性劳动呢? 软件产业要想彻底改变作坊式的开发方式,使 软件丌发实现工程化、自动化,从而真正解决软件危机,那么首先要进一步借 鉴计算机硬件产业相对高速发展的经验。众所周知,现在硬件的性能价格比 已达到每1 8 个月就可以提高一倍的水平3 。硬件工业的发展已远超前于软件 产业,集成芯片( i c ) 、总线的出现以及p c 机体系结构的公开是推动硬件工业 飞速发展的两大关键原因。由此使我们联想到软件系统的开发是否与硬件系统 硕士学位论文 m a c , 1 1 e r s l i i i ! s i s 的开发类似,在一定规范下,考虑由软芯片( 或称软件部件) 组装成软件程序 的问题。软件构件技术正是基于这种思想而产生的一种先进的软件丌发方法。 到了2 1 世纪人们正在延续着软件构件化的努力。在2 0 世纪。,工业化的 软件复用已经从通用类库进化到了面向领域的应用框架,因此g a r t n e rg r o u p 指出:“到2 0 0 5 年至少7 0 的新应用将主要建立在如软件构件和应用框架这类 构造块之上,应用开发的未来就在于提供一个开放的体系结构,以方便构 件的选择、组装和集成。”这样应用开发人员就可以利用现成的软件构件装配 成适用于不同领域、功能各异的应用系统。这是人们跨世纪的梦想,也是软件 产业发展的一个梦想。借用构件和框架,人们将彻底改变软件的生产方式,从 根本上提高软件生产的效率和质量,提高开发大型软件系统尤其是商用系统的 成功率。 1 3m l s 的国内外发展动态 管理信息系统( m a n a g e m e n ti n f o r m a t i o i ls y s t e m ) 是一个综合性的信息系 统,随着计算机在各个行业的广泛应用,m s 系统也逐渐在各个领域得以广泛 应用。m i s 系统的出现使人们可以借助计算机技术、网络通信技术、信息处理 技术、科学的管理手段来提供信息,使人们从纷繁复杂的信息处理中解脱出来, 高效率的支持一个组织机构的运行、管理和决策n 。 现有的m i s 开发方法很多,具有代表性的方法有软件生存周期法( 瀑布 模型法) 、快速原型法等。随着m i s 复杂性的不断增加和i n t e r n e t 技术的发 展,这些方法在满足了一定需求的同时,也存在着些不足。在现行的m i s 开发中,分析和设计阶段较多采用结构化方法和工具,如e r w i n 、s - d e s i g n e r 而在实现阶段使用面向对象的方法,采用o o pc 1 l e n t ( o b j e c to r i e n t e d p r o g r a m m i n g ,面向对象的程序设计) 程序开发平台,如p o w e r b u i1 d e r ,d e l p h i ,v b ,v c ,v f p 等。这种做法的缺点是分析与设计脱节、面向对象 支持的可重用性在结构化分析阶段得不到支持、以及经典生存周期方法具有的 顺序性和依赖性等。软件重用是建设高效可靠、应变能力强、易操作、易维护 的m i s 软件的有效途径。目前,国内外在这方面已经作了大量的研究工作,提 硕士学位论文 m a s l e l k s i e s i s 出了基于软件构件重用开发m i s 系统的研究课题。但是,大多数还是经验性质 的尝试。若想得到大规模重用,还需解决许多问题,例如构件抽取问题、如何 抽象出具有重用价值的软件构件的问题、构件表示问题、从m i s 领域的特征 出发,进行软件构件描述的问题、h i s 领域可重用软件构件的分类、组织、检 索和评价,以及软构件的重用方法等。 1 4 研究的意义 根据各国对多数软件的统计资料显示出的情况,我们发现长期以来,由于 多数软件都是针对某个具体的应用开发的,有很多软件具有或多或少的相同部 件,如m i s 软件就有各种各样重复开发的不同版本,造成大量人力、财力的浪 费,而且软件的质量也不高。同时根据美国国家标准技术研究院的一份报告显 示,占据世界软件销售额8 5 的是大型的专用软件。,而其开发的失败率却高 达7 0 。由此看来,软件开发必须脱离传统手工业的单件生产模式,转向构筑 在标准化零部件基础上的高效率、高质量的新型生产方式。随着构件技术的出 现软件界已意识到软件开发的出路就是软件构件化。构件技术在h i s 系统中应 用也显示其重要意义。 目前,使用软件构件技术开发软件已成为软件开发的一个热点技术。从软 件构件化技术应用情况来看,该技术在电子商务中使用得比较多”。例如,清 华大学与i b m 公司联合开发诸如表、按键、图表、人员档案、记事本、包装格 式等这些通用的商用构件,也有研究人员在探讨用软件构件化技术方法开发 o i s ( g e n e r a l i z e di n f o r m a t i o ns y s t e m ,通用信息系统) 。但真正使用软件构 件技术开发的软件产品还不多,面向用户、可供用户选择的构件不多,而且在 这项技术本身还存在着进一步健全体制、确立软件构件化的开发方法论及目标 管理维护机制等一系列问题。尽管如此,人们都相信软件构件技术带来的好处 是不可估量的,它代表了新一代软件技术的发展方向。因此,探讨软件构件技 术,探索研究如何用软件构件化技术的思想和方法开发分布式m i s 软件系统具 有一定的意义。本文研究的主要目的是在研究构件技术、基于构件技术的各种 规范及数据库技术基础上,探讨一种新的软件开发技术一构件技术在m i s 系统 4 硕士学位论文 h 1 a s if r s1 i l r s l s 开发中的应用。 1 5 全文的布局 本文在的总体结构安排如下: 全文共计五章。 第一章绪论主要概述性的讲述了构件技术产生的背景及发展现状,并从 m i s 系统的发展角度介绍了构件技术对软件业的巨大影响,讨论了软构件技术 国内外发展情况。然后说明了本课题研究的意义,以及全文的总体布局。 第二章主要对构件技术的概念进行了梳理。给出了构件的定义、构件的描 述及其分类,讨论了基于复用技术的三种技术的关系,并讲述了怎样设计一个 构件及构件化的开发方法。 第三章主要是对构件技术在m i s 系统软件开发中应用的理论进行了分析, 讨论了m i s 系统的构件成份和构件库的管理,以及基于构件的m i s 系统开发的 设计模型。 第四章主要讨论了基于构件复用的技术在m i s 系统开发的应用,针对 m i c r o s o f t 公司推出的c o m ( c o m p o n e n to b j e c tm o d e l ,构件对象模型) 规范理论 讨论了基于c o m 的技术在m i s 系统开发中的应用。同时,利用构件技术来进行 分布式图书馆m i s 系统的设计工作,讨论了基于构件技术的图书馆m i s 系统的 体系结构与开发模型。说明了在系统开发中实现的些基本功能。 第五章全文总结,在本章总结了全文的特点和全文所做的研究工作。讨论 了构件技术的发展趋势,以及本文研究还要继续努力的方向。 第二章构件与构件技术 本章讨论了构件技术及与其相关的基础知识,分析了构件与对象及框架之 间的关系。同时,对构件化的软件开发方法作了初步的研究。 2 1 构件基础 2 1 1 构件的定义 构件技术是近几年在软件界兴起的一项崭新的技术,受到各国软件界的关 注,同时构件技术在近几年也成为计算机软件研究领域研究的热点。各个国家 都在构件技术的广泛应用方面作了许多有益的探讨和研究工作,并取得了一定 的进展,使构件理论得以完善和发展。那么什么是构件呢? 自9 0 年代软件技 术发展以来,软件工业界对于构件的定义说法各异。本文将给出几个典型的定 义”,从中找出共同点。 定义l :一个构件是个系统中最重要的、基本上独立的、可替换的部分, 在已定义好的软件体系中执行具体的功能,能够提供一系列接口的物理实现。 定义2 :一个运行的软件构件是个或多个程序的动态捆绑的软件包,它 作为一个单元进行管理,通过文档化的接口进行访问,这个接口会在程序运行 时出现。 定义3 :一个软件构件是明确规定接口和环境附属物所构成的组合体的一 个单元,它可以独立地被调度,并且不是由系统开发人员和系统最终用户而是 山第三方提供的。 综上所述我们可以得知,构件( c o m p o n e n t ) 是具有特定功能的、可重用的、 并能够独立工作或能同其它构件一起组装构造其它软件的独立的软件单元。换 句话说,构件作为一种软件单元是可以独立地制造、分发、销售、装配的。构 件的概念很广泛,它可以是需求分析和设计阶段的产品、代码、测试案例、文 档或软件开发过程中的其他产品。如构件可以是小到图形界面的按钮,大到一 硕士学位论文 m a s l lp , si i s i s 些复杂的诸如电子表格和通讯中间件之类的软件,如h t m l 这样的完整的应用 软件。 2 1 2 构件的描述 从构件本身的特征来说,构件是可重用的、自包含的、独立于具体应用的 软件对象模块。构件作为系统的一个特定的功能单位,主要由四部分组成”“: 构件标识符、构件说明、构件体、接口。把构件说明和构件体分开的原因 是考虑到同一个构件说明可以由不同的程序设计语言来实现。即使同一个构件 也可以有多个不同语言实现的构件体。构件的接口不仅要提供外部物理实现接 口,而且还要提供一个外部逻辑接口,外部逻辑接口是给用户提供一个非形式 化的该构件的功能描述,这样更能方便用户了解和使用构件。软件构件模型是 关于开发可重用软件构件和实现构件之间相互通信的一组标准的描述。由于有 了构件及构件模型的出现,使软件开发者可以通过构件的组装快速构造出所需 的应用软件,以便减少软件开发所需的经费、缩短开发周期和提高效率,并且 可以在重用已有开发成果的基础上得到高质量的、完全可靠的软件产品。 构件作为一个可以广泛复用的软件单元具有以下几个特点。3 : 自描述性:构件必须能够识别其属性、存取方法和事件,这些信息可 以使开发环境将第三方软件构件无缝的结合起来。 可定制性:允许提供一个典型的图形方式环境,软件构件的属性只能 通过控制面板来设置。 可集成性:构件必须可以被编程语言直接控制。构件也可以和脚本语 言或者与从代码级访问构件的环境连接,这个特点使得软件构件可以 在非可视化开发项目中使用。 连接机制:构件必须能产生事件或者具有让程序员从语义上实现相互 连接的其他机制。这意味着程序员可以很容易地向按钮添加代码,通 过点击按钮就可以舷晌其他构件的动作。 硕士学位论文 1 、ir r s i i ! s i s 2 1 3 构件的分类 可复用的构件放在构件库中,在一个构件库中可以包含成千上万个构件, 软件开发人员在开发一个软件系统时,可以从构件库中寻找他所需要的构件进 行软件的组装。从构件使用情况看,构成一个软件系统的构件可以分为以下几 种1 : a ) 成熟而独立的构件:这类构件隐藏了所有接口,用户只需按规定好的格 式进行使用,如d b m s ( d a t ab a s em a n a g e m e n ts y s t e m ,数据库管理系统) 系统 命令、操作系统命令等。 b ) 限制使用的构件:这一类构件提供了接口,指出了使用的前提和条件, 使用时应先对其进行测试。如类库中的类。 c ) 直接使用的构件:这类构件进行了封装或使用了接口技术,对不兼容性、 资源冲突等进行了处理,可以直接使用。目前一些软件商提供的大多数软件产 品部属于这一类。 d ) 修改可用的构件:这种构件可以进行版本替换,如果对原构件修改错误 或增加新功能,可以利用重新封装或重写接口来实现构件的替换。这种构件在 软件应用系统开发中使用的比较多。 对于第一类构件,用户只需根据说明书来挑选合适的构件。使用第二类构 件要先对其进行底层的测试、开发,确认该构件满足要求后才可使用。第三、 四类构件使用比较方便,但目前技术还不够完善,还有许多问题需要解决。 最重要的是要制订构件的标准,在这方面十分有影响、已作为事实标准的有 o l e ( o b j e c tl in ke m b e d d in g ,对象连接和嵌入) 、o p e nd o c 技术规范等。 2 2 构件复用技术 2 2 1 构件复用的条件 据有关资料显示,丌发可复用构件以及建立和维护构件库的成本是在单个 硕士学位论文 h 1 s le r s j l i s i s 工程中实现同样功能的模块的成本的1 5 至3 倍,而且复用一个构件,本身也 是有代价的。因此在开发一个构件时,必须充分考虑要丌发的构件是否具有通 用性,构件开发出来后是否被广泛的复用。构件通过复用来体现它的价值,一 个构件的复用次数越多,其价值也越大。因此软件开发人员要想开发一个有价 值的构件,就应使其所开发的构件具备以下条件: 首先应使开发的构件具有较高的通用程度,并且保证所开发的构件是有用 的、正确的,这样在开发其它软件时才能很容易复用它。 其次还应使所开发的构件,在复用时容易从构件库的众多构件中容易检索 得到且易于组装、调整和测试。 构件只有具备了以上条件,才可真正实现其价值。软件人员要想开发出一 个合格的构件,必须注意构件复用的条件。 在软件生产中根据软件复用的粒度可将复用划分为以下五种: 第一种代码和设计的拷贝。这种复用技术,可以不用花大力气去理解和 修改代码,对简单的应用比较有效。但软件复用者必须对原系统很熟悉。 第二种源代码复用。这种复用由于构件是专门为复用而开发,所以可靠 性比较高。 第三种设计和软件体系结构复用。它不仅支持高层次的复用,也支持较 低层次的复用。它可以复用较大粒度的软件制品。 第四种应用程序生成器。它主要是指复用整个软件系统的设计,包括整 体的软件体系结构、体系结构中的主要子系统、特定的数据结构和算法,它通 常针对一些成熟的领域。 第五种领域特定的软件体系结构的复用。这种技术复用的程度高,对可 复用构件的组合提供了一个通用框架。 2 2 2 构件与对象和框架的关系 1 对象的概念。 , 在现实世界中,每个实体都是对象,如,学生、汽车、电视等都是现实世 界中的对象,每个对象都有它的属性和操作,但人们不知道也不关心一个对象 硕士学位论文 1 s if i l s i i i s i s 是如何实现这些操作的,正如人们只关,t l , 电视机的功能及其操作,而不关心电 视机是如何实现其操作的一样。 在计算机系统中,对象是指一组属性以及这组属性上的专用操作的封装体。 属性通常是一些数据,有时它也可以是另一个对象。一个对象通常可由对象名、 属性和操作三部分组成“”。 2 构件与对象的区别“ 1 ) 在纯0 0 ( o b j e c t o r i e n t e d ,面向对象) 设计中,对象( 类) 、封装和 继承三者缺一不可,但对于构件可以没有继承性,只要实现封装即可。因此, 构件不是o o 中的对象,而是与对象有相类似的地方,构件居于对象类之上。 2 ) 在构件和对象的生成方式方面,0 0 中的对象生成过程,属于实例化的 过程,方法比较单一,而生成构件的方式较多。 3 ) 构件是设计的概念,与具体编程语言无关,不象o o 中的对象属于编程 中的概念,要依赖于具体的编程语言。 4 ) 在数据操作方面。在对构件操作时不允许直接操作构件中的数据,数据 真正被封装了。而对象的操作通过公共接口部分,这样数据是可能被访问操作 的。 5 ) 在软件重用方面。o o 中的对象对软件重用是通过继承实现的,构件对 软件重用不仅可以通过继承还可以通过组装时的引用来实现。 由此可见,构件与对象相比,构件具有更加灵活、方便和高效复用性。 3 框架的定义 框架( f r a m e w o r k ) 是整个或部分系统的可重用设计,表现为一组抽象构件 及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应 用骨架。总之框架复用是指领域特定的软件体系结构的复用,利用框架复用可 以提高复用的程度,但其前期投资很大。 4 框架与构件的关系 可以说框架是一个可以复用的设计构件,它规定了应用的体系结构,阐明 了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽 硕士学位论文 m a s if i l si l | l s i s 象类以及其实例之间协作的方法,它为构件复用提供了上下文( c o n t e x t ) 关系。 因此构件库的大规模重用也需要框架”。 构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技 术、软件体系结构研究和应用软件开发三者发展结合的产物。它进一步扩大了 软件复用的粒度。 从对框架的描述,可以看出框架比构件可定制性强。在某种程度上,将构 件和框架看成是两个不同但彼此协作的技术或许更好。应用框架具有领域相关 性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含 的领域知识就更加完整。框架为构件提供重用的环境,为构件处理错误、交换 数据及激活操作提供了标准的方法。 框架介于构件与设计模式之间。所谓设计模式是对在某种环境中反复出现 的问题以及解决该问题的方案的描述,它是一种比框架更抽象、更小的元素。 通常我们所说的构件指的是代码重用,而设计模式指设计重用。框架介于这两 者之间,部分代码重用、部分设计重用。 框架复用的粒度越大,其中包含的领域知识就更加完整。应用框架具有领 域相关性,构件根据框架进行复合而生成可运行的系统。 综上所述,对象、构件、框架三者均是为软件的复用而提出的技术概念。 三者之间既有联系,又有区别。多年来软件工作者一直努力探索一种能高效地 开发软件的手段,不仅寄希望在代码级上能够重复使用,而且希望在功能级、 模块或对象级、子系统级,甚至于在应用系统级上实现软件复用。随着软件界 的研究的不断发展,先后提出了对象、构件、框架复用的技术。不断地扩大了 可复用的粒度。 2 2 3 构件的接口技术 近几年来软件构件技术已成为软件开发的主流技术,构件的使用给软件界 带来了新的出路与希望。我们都知道工业界_ 丌发一个新产品时,往往使用了许 多已有的部件。软件开发者借鉴工业产品设计生产的经验,希望也能有一些专 门从事生产软件构件的企业。为了促进基于软件构件技术的企业级软件开发, 硕士学位论文 h 1 s 1f r si i i l s j s 工业界提出了若干构件模型。这些构件模型定义了丌发、使用、部署、运行和 维护软件构件所必须遵循的协议和标准,即所谓的构件接口技术。构件接口抽 象地描述每个构件的外部行为,并以此作为其它构件的使用依据。包括语法 级、语义级两层。前者刻画怎样调用一个构件的操作;后者刻画对构件操作的 期望结果。 为了实现可复用软件构件的“即插即用”,构件通过接口与外界运行环境联 系。具体说接口作用有以下几点“: 1 ) 从构件的开发和使用角度看,构件的开发者和使用者们必须就构件功能 的调用语法和语义达成致,构件接口就是定义了构件与它的使用者之间的协 议。对构件的使用者来说,构件的外部接口屏蔽了内部实现,不同内部实现的 构件只要它们的外部接口相同就可以相互替换。有了接口技术增强了构件的可 移植性。 2 ) 从构件的运行角度看,为了降低构件的复杂程度,构件设计必须考虑构 件运行的环境,所谓构件的容器就是为使构件提供些服务而建立的构件运行 环境,同时也为构件提供一组常用的服务。为了让容器和构件可以协同工作, 在它们之间必须有一套完整的协议,即构件的接口。这样的协议保证了构件的 易移植性。同时,构件运行环境的标准化也将更好地支持构件之间的互操作。 3 ) 从构件的部署和维护角度看,当构件的使用者从构件开发者那里购买了 所需的构件,还必须有一套工具来帮助部署和维护这些构件以适合特定的环 境,这些工具必须符合一定的标准,这就须要有一个接口。 构件接口标准是构件协同工作的基础,也是组件软件开发的基础,目前产 业界广泛使用的具有代表性的工业标准主要有三种,即o m g ( o b j e c t m a n a g e m e n tg r o u p ,对象管理组织) 的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 r a r c h i t e c t u r e ) 、微软公司的c o m + 和s u n 公司的e j b j 2 e e 。 2 2 4 建造可复用构件 构件是系统开发中最重要的部分,构件本身也是一种对象,所以应使用 o o d ( o b j e c to r i e n t e dd e s i g n ,面向对象设计) 的方法来设计。构件设计的好 硕士学位论文 m a sf e p s 1i i e s i s 坏直接决定了所生成软件系统的质量和效率。如何才能设计出一个好的构件 呢? 本文总结以下几条原则是设计一个好的构件的必备的条件: 可理解性:设计的构件要具有简单、清晰的界面,可以方便开发人员的 复用。 高内聚性:构件应提供相对独立的操作方法,构件之间应是松散连接的。 这样设计出的构件才能具的很好的可移植性,才能被广泛的复用。 通用性:构件的抽取应能反映特定领域中处理逻辑的共性,这样所设计 的构件才具有复用价值。 尺寸大小、复杂度适中:尺寸太大难有高质量,复杂度太高难以重用, 而尺寸太小或复杂度太低,则重用带来的好处大于管理付出的代价。所以在设 计构件时应充分考虑所设计的构件的尺寸和构件的复杂度。 所设计的构件应该具有完善的文档。 构件应有命名规则及操作和属性定义的标准。 构件名的定义必须符合约定的构件命名规则,在最大程度上反映构件的功 能、适用领域等信息。构件界面接口必须简单、明晰,具有较好的可理解性。 可以利用数据构件对变化的数据进行封装,这是构件交互和集成的基础,同时 也可以提高系统的动态调整能力。 在创建领域构件时,除了应遵循已有的设计概念和原则外,还必须考虑应 用领域的特征。例如要有标准的数据、标准的接口协议和建立程序模块,有了 这些,设计者就有了个设计的框架,符合这个框架设计出来的构件将会有更 高的复用概率。另外,当一个构件被不同的应用复用时,可能会对构件的某些 部分进行修改。为此在设计构件时,应考虑到在构件复用时可能发生变化的位 置上标识变化点,同时为变化点附加一个或多个变体,这样就形成了一个抽象 的构件。构件被复用时可根据不同的应用指定不同的变体,以适应特定应用的 需要。进步增强它的复用度。如图2 一l 所示“。 构件技术是基于软件的复用而提出的技术,同时,构件设计的主要目的也 是为了复用。构件的开发同一普通软件的开发既有相同处,又有区别。通常构 件的开发成本高于同等功能的应用软件的开发,所以一个构件只有具备了较高 的复用性,才能从日后不断地对其进行复用中,收回当初开发该构件的成本。 硕士学位论文 m a s lf r s l e s s 图2 一l 构件中的变化点 2 3 构件的组装 在工业界,开发一个新产品时,往往是使用了许多已有的部件,而不是什 么都从头开发设计。有专门从事设计、开发各部件的部门。这样,在设计一个 新产品时,可以通过部件的组装来实现。例如,汽车设计者,可以在市场中找 到合适的汽车配件,稍加修改便可以用于新设计的汽车中。避免了人们的重复 劳动。那么,在软件开发中怎样避免这种重复劳动呢? 软件复用是一条现实可 行的途径。软件生产也实行工业化的流水程序,有专门从事生产可复用构件的 商业性的制造工厂。这样当进行软件总体设计时,首先根据用户需求和实现环 境的要求,确定系统的体系结构,定义系统中的构件与构件之间的关系;在体 系结构层次上,构件接口规约对外唯一地代表该构件,所以可以从可复用构件 库中查找符合接口规约的构件,必要时还可以开发新的满足要求的构件;最后, 通过组装工具把这些构件的实现体组装成系统。这样不仅可以大大提高软件的 生产效率也可以保证软件的质量。 在基于构件复用的开发方法中,构件组装是一个非常关键而且困难的问题。 9 0 年代a d l ( a r c h i t e c t u r ed e s c r i b el a n g u a g e ,结构描述语言) 是解决构件 组装问题的主要方法。为了实现基于构件的软件复用,软件界提出了基于软件 体系结构的构件组装a b c ( a r c h it e c t u r e b a s e dc o m p o n e n tc o m p o s i t i o n ) 方 1 4 硕士学位论文 h 1 r r s i i l l s l s 法。构件组装是在软件体系结构的指导下,根据系统的需求实现对构件的组 装。这种构件组装方法是在结合了两种软件复用方法的基础上实现的。第一种 软件复用方法是,在软件体系结构中采用自顶向下的方式实现的基于构件的软 件复的方法;第二种方法是利用基于中间件的软件开发方法所提供的中问件为 基础,采用自底向上的方法实现构件组装软件系统的方法。a b c 这种构件组装 方法的主要思想就是把这两种方法相结合的一种构件组装的思想。实践证明, 使用这种方法可以有效地进行构件的组装,提高软件开发的效率。当然只有当 严格按照构件规范生产构件的制造商增多了,提供选择的构件足够丰富了,软 件业才可真正实现基于构件的软件复用。软件人士也正是努力地朝着这个目标 奋斗着。 2 4 构件化的软件开发方法 构件化的软件开发方法的基本思想是自顶向下的设计,自底向上的组装构 造。自顶向下的设计是指按照需求分析、查询、创建系统构件和组织构件。 自底向上的组装构造是指当系统构件和组织构件准备好后,通过组装平台将其 拼装成用户所需的应用系统。具体开发过程如下( 图2 2 表明了基于构件技 术的软件工程) : ( 1 ) 在可行性研究阶段和需求分析阶段就着手进行构件收集工作,这样为 下一步的设计工作做好准备工作。同时增加了开发的并行程度,这从另一个方 面提高了开发效率。在需求分析阶段主要是进行问题定义,给出需求规范说明 同时进一步进行构件的收集。 ( 2 ) 基于构件的软件设计阶段,主要任务是建立系统构件和组织构件。其 步骤依次为:根据需求规范说明确定该应用系统需要哪种系统构件及组织构 件;分别从系统构件库、组织构件库中查询,查询后可能出现下面三种情 况:( a ) 构件直接重用;( b ) 构件间接重用( 通过继承性进行修改、扩充) ;( c ) 重新创建所需的构件( 创建完毕后将其扩充到系统构件库中) ;重新创建构件 时,一般应由用户向软件制造商提供需求规范,由他们生产实现。当然,也可 由用户自己在构件规范下创建,重新创建阶段应尽量重用现有的组织构件和分 硕士学位论文 m s ie r si 】l e s i s 子、原子构件。重新创建的构件放入构件库,以备复用。 ( 3 ) 组装阶段。通过组装平台将系统构件和各种组织构件组装成应用系统 的原型,组装过程包括事件驱动构件的过程。由于组装平台上的构件都是大粒 度的,没有小粒度的构件,因此节省了组装时间,也提高了组装的可靠性。目 前构件组装的方法很多,在上一节我们介绍的a b c 构件组装方法仅是其中一种。 ( 4 ) 经上述过程构建的原型反馈给用户。若原型满足用户需求,则转到第 ( 5 ) 步,否则转到第( 1 ) 步。 ( 5 ) 运行阶段。 ( 6 ) 维护阶段。 l构件装配 上 i集成测试 图2 - 2 基于构件化的软件工程 耆 硕士学位论文 m a s ie r s1 i i s i s 3 1引言 第三章基于构件技术的s 的研究 在这信息技术日益发达的时代,管理者对于手工从事信息管理已感无所适 从。随着计算机的普及和计算机网络技术的发展,越来越多的企业单位希望用 计算机进行管理、建立企业的管理信息系统。同时使用者们对系统开发周期的 要求也越来越短,对系统的可扩展性、可修改性的要求也越来越高。当前系统 开发中采用快速原型法、使用c s 计算模型、充分利用先进的数据库管理系 统和第四代开发工具( 如p o w e r b u i l d e r ) 提供的各种特征和优点可以有效地缩 短系统开发周期,提高系统的可扩展性及可修改性,但是仍不能很好地满足企 业迅速建立m i s 系统的要求,同时由于信息技术的快速发展,人们对已有m i s 不断提出新的功能需求,另一方面各种领域的不同版本的m i s 开发使得系统开 发人员要完成大量的复杂的、重复性的工作。造成系统开发效率低下及人力、 物力、财力的浪费。 虽然各领域的m i s 系统千差万别,即使同一领域不同企业单位的管理模型 不一样、针对不同企业单位系统开发者开发的m i s 各自不同,但纵观各种各样 版本的m i s ,它们都存在许多内容和形式上的共同点。一般而言,一个m i s 系 统的核心和主要功能是完成大量数据的采集、加工、存储和传输。简单而言就 是系统分成两大部分:一是从系统外部采集数据,有效地存储在系统数据库中。 二是对数据库数据进行加工处理,向各种外部客户提供满意的数据。总之m i s 系统的重要特征之一便是处理数据量大,处理简单。 管理信息系统作为一个庞大复杂的软件系统,很适合采用以面向对象方法 为基础的软件构件及构架技术来开发。构件为m i s 系统软件开发提供了一种新 的开发模式,e e 现有的面向对象的或传统的基于模块的开发技术更为高效、灵 硕士学位论文 1 sf e r s1 is l s 活、功能强大。例如,它使得开发人员可以通过组合和重用由不同个人或团 体独立开发的二进制“模块”,极大地简化了开发工作和加快开发进度。构件 是与具体的计算机语言无关,并且与硬件也无关,而且可以在网络上运行。这 种技术为二次开发提供了更灵活的选择。针对m i s 系统的特点,采用构件技术 可以极大的提高m i s 系统软件开发效率及资源的充分共享和人力物力财力的节 省。 但是这种基于构件技术的m i s 系统的开发技术,目前还处于尝试探索阶段, 构件在m i s 系统中的应用还存在一些技术问题。例如,如何抽象出具有重用价 值的软件构件,如何从m i s 领域的特征出发,进行构件分类及如何从构件库中 检索出可复用的构件。本文从构件技术在m i s 开发中的优势、构建m i s 系统的 标准构件及如何对构件库进行管理等方面作了一些探讨。 3 2 基于构件的m l s 开发的优势 同传统开发方法开发的

温馨提示

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

最新文档

评论

0/150

提交评论