




已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)软件复用技术研究及在tafs中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大掌坝上论文 捅要 随着计算机的普及,其应用领域也随之扩大,某些计算机的应用已经潜移 默化的改变着人们的生产和生活方式。在计算机系统中,软件是灵魂,硬件是 身体,软件控制硬件要做什么,如何去做,硬件则表现在如何接受软件的输入, 如何表现软件作用后的输出。软件和硬件是组成一个计算机系统中不可或缺的 部分,而衡量计算机的发展速度往往是按照发展最缓慢的组成部分作为参考标 准的。就目前情况看,计算机硬件始终遵循所谓的摩尔定律高速发展,而软件 生产却由于种种原因,发展比较滞后,这大大延缓了整个计算机产业的发展, 导致软件危机的出现。 软件复用是为了解决软件危机和克服开发日益复杂的软件系统而提出的一 种方法。其主要思路来源于对硬件结构化的思想,即标准化的硬件设备可以重 复生产相同功能的硬件,所有硬件通过系统总线连接起来构成一个硬件系统, 并且采用不同的硬件,可以构成不同的计算机硬件系统。通过类比而引入软件 总线的概念,使用功能通用的软件组件的实现复杂的软件系统,通过使用不同 的软件组件来建立不同的软件系统,从而构造不同的计算机系统。 软件构件技术就是基于上述思想而提出。构件技术存在许多不同的标准, 流行的有三种。它们有许多相同的共性,例如都包含接口,都是均可划分的功 能模块等。 c o m 是一种软件构件技术,也是目前应用较多的软件构件技术之一。在 w i n 3 2 平台下,c o m 已成为一个技术标准被广泛推广,而其后版本d c o m 已 支持分布式应用。本文着重说明了c o m 标准规范,c o m 接口的设计原理, 以及使用c o m 技术构建软件系统,c o m 的优势等。并通过一些c + 卜的代码的 声明给出实现c o m 细节的一些元素,如接口的实现的结构体。最后论述了怎 样使用v i s u a lc + + 开发工具开发和使用c o m 组件。同时也实现了一个基于 c o m 组件的税务稽查档案管理系统。 税务稽查档案管理系统是一套应用软件系统,它解决了通常人工搜集整理 数据带来效率低下,和寨件资料无法完整的长期保存等问题。该系统利用计算 机技术实现办公自动化和无纸化,既有利于档案资料的存放,又由于文件资料 全部挂在网上,可以最大限度的实现资源的共享和快速查找定位,效率远远超 过传统的人工操作。 税务稽查档案管理系统的设计充分体现了c o m 思想,将系统的各个部分 按功能划分,编写成c o m 组件形式,然后通过一个框架将所有功能部件组装 起来,为了提高开发效率,程序中使用了一些第三方组件,事实证明,软件开 发速度明显加快。在该系统设计过程中,笔者提出一些新的方法和框架来更完 美的实现该系统。 关键词:软件复用,软构件,c o m ,税务稽查档案管理系统 些竖竺查兰竺圭丝苎 a b s t r a c t w i t ht h et e c h n o l o g yo fc o m p u t e rs c i e n c eb e c o m i n g m o r e , p o p u l a r , i t sa p p l i c m i o nd o m a i n g e t sl a r g e r , m a n yk i n d so f a p p l i c a t i o ne x e r tas u b t l ei n f l u e n c eo nc h a n g i n go u rl i v e s ,i nc o m p u t e r s y s t e m s ,s o f t w a r ei st h es o u l ,a n dt h e nt h eh a r d w a r ei st h eb o d y s o f t w a r et e l l sh a r d w a r ew h a tt o b ed oa n dh o wt od o b u tt h eh a r d w a r ei sr e s p o n s i b l eh o wt o i n p u ta n do u t p u ta f t e rs o f t w a r e p r o c e s s i n g t h es o f t w a r ea n dh a r d w a r ei si n d i s p e n s a b l ei nt h ec o m p u t e rs y s t e m ,h o wt om e a s u r e t h et e m p oo ft h ec o m p u t e rr e s t sw i t ht h es l o w e s tt e m p oo fi t s c o m p o n e n t s h o w e v e r , t h e h a r d w a r eo fc o m p u t e ri st h er a p i dd e v e l o p m e n tf o l l o w i n gb ym o o r e sl a w , a n db e c a u s eo f v a r i o u sr e a s o n s ,d e v e l o p m e n to fs o f t w a r eh a sb e e nr a t h e rs l o wc u r r e n t l y , w h i c hs i g n i f i c a n t l y s l o w e dt h ed e v e l o p m e n to ft h ec o m p u t e ri n d u s t r y s ot h es o f t w a r ec r i s i s a p p e a r sa r o u n d p r o b l e m so f s o i t w a r ep r o d u c t i o n s o f t w a r er e u s ei sam e t h o d ,w h i c hi su s e dt os o l v et h es o r w a r ec r i s i sa n do v g q c o m e i n c r e a s i n g l yc o m p l e xs o l t w a r es y s t e m s t h eo r i g i n a li d e ac o m e sf r o mt h et h o u g h to fh a r d w a r e s t r u c t u r er e u s e ,i e t h es t a n d a r d i z e dh a r d w a r ep r o d u c t i o nc a nr e p r o d u c et h es a m ef u n c t i o n a l h a r d w a r e ,a l lh a r d w a r ec a nb ea s s e m b l e dt oc o n s t r u c tah a r d w a r es y s t e ma # g r o s st h es y s t e mb u s a n du s i n gt h ed i f f e r e n th a r d w a r ec o u l dc o n s t i t u t ed i f f e r e n tc o m p u t e rh a r d w a r es y s t e m s t ob ea n a n a l o g y , t h es o f t w a r eb u s e sa p p e a r e d ,a n dc o n s i d e rt h ep r o c e s so fd e s i g n i n gs o f t w a r et ob et h e s o f t w a r ec o m p o n e n td e s i g n ,a n da s s e m b l ed i f f e r e n tc o m p o n e n tg u nm a k i n gd i f f e r e n ts o f t w a r e s y s t e m t h et e c h n o l o g yo f t h es o f t w a r ec o m p o n e n ti sp r o p o s i n go nt h eb a s i so f t h et h o u g h ta b o v e t h e r ea r em a n yk i n d so ft h es t a n d a r d so ft h es o f t w a r ec o m p o n e n t to n l yt h r e ec a r tb ep o p u l a r n e yh a v eal o to f r e s e m b l a n c e ,s u c ha si n c l u d i n gi n t e r f a c e ,a n dc a nb ed i v i d e di n t om o d u l e se t c c o mi sa k i n do f s o a r ec o m p o n e n t t e c h n o l o g y ;i ti sa l s oo n eo f m o s tu s e f u lo f s o r w a r e c o m p o n e n tt e c h n o l o g ya tp r e s e n t i nw i n 3 2p l a t f o r m ,c o mi sw i d es p r e a dt oh eat e c h n i c a l s t a n d a r d ,a n dd c o mt oh ean e x tg e n e r a t i o no fc o mh a sa l r e a d ys u p p o r t e dd i s t r i b u t e d a p p l i c a t i o n i nt h ea r t i c l e ,i te m p h a s i z ec o ms t a n d a r d s ,t h ed e s i g np r i n c i p l eo fc o mi n t e r f a c e , u s i n gc o m t oc n n s t t g c tt h es o f t w a r es y s t e m ,a n da d v a n t a g e 研c o m ,如f u r t h e r m o r ei t p r o v i d e ds o m ee l e m e n t s ,w h i c hr e a l i z ec o m d e t a i lt h r o u g ht h es t a t e m e n to ft h ec o d eo fc + + , s u c ha st h es t r u c t u r a lb o d yo f r e a l i z a t i o no f t h ei n t e r f a c e a te n do f t h ep a p e r , i td i s c u s s e sh o wt o u s ed e s i g n i n gt o o to fv i s u a lc + + t od e s i g n a n dh o wt ou s ec o m a tt h es a m et i m et h ea u t h o r c o m p l e t e da t a f s ( t a x a u d r f i l es y s t e m ) b a s e do n c o m c o m p o n e n t s t a f si sa na p p l i c a t i o ns o f t w a r e ,i ts o l v et h el o w e re f f i c i e n c yo f m e n u a lp r o c e s s i n gd a t aa n d i n f o r m a t i o nc o m p l e t i o nb yu s i n gc o m p u t e ra u t o m a t i o ni nt h ec o n d i t i o nw i t h o u tp a p e r , a n db e c o m f o r t a b l ef o rb a c k i n gu pa n db e c a u s eo f s t o r i n gd a t ai nt h ei n t e r n e tm a k e sv e r yc o n v e n i e n tf o r 诚徵埋- l 犬字帧士论文 s e a r c h i n ga n dc a nb em o r ee f f i c i e n tt h a nm a n u a lo p e r a t i o n s w el i s et h em e t h o d sp r o v i d e db yc o mt od e s i g nt a f s ,d i v i d et h et a f sf o rp a r t so f f u n c t i o n a lm o d u l e s ,a n dr e a l i z ei ti nc o m p o n e n t s ,a n dt h e na s s e m b l ea l lf u n c t i o np a r t st h r o u g ha f r a m e 。i no r d e rt oi m p r o v et h ee f f i c i e n c yo fd e v e l o p i n g ,t a f sh a v eu s e dt h es o f t i eo f t h et h i r d p a r t s c o m p o n e n t si np r o c e d u r eo f d e s i g n i n g ,a n dt h ed e s i g n i n gp r o c e s sw i l lb em o r er a p i d i nt h e p r o c e s so fd e s i g n i n gt a r s ,t h ea u t h o r ss h o ws o m en e wm e t h o d sa n df r a f f l e st oc o m p e t et h e s y s t e m k e ”v o r d s s o t t x v a r er e u s e ,s o r w a r ec o m p o n e n t , c o m , t a r s 武擞埋上犬字坎士论文 1 总论 1 9 4 6 年2 月1 5 日,世界上第一台通用电子数字计算机“埃尼阿克”( e n i a c ) 宣告研制成功。从那以后,计算机的计算应用领域不断扩大,计算能力不断提高, 体积不断缩小,性能不断提升,价格却不断降低。目前,计算机已经渗入到人类 生产和生活的各个方面。多年来,硬件产业发展速率一直遵循著名的摩尔定律; 相比之下,对于构建计算机系统同等重要的软件来说,发展却相当缓慢。这种发 展的不平衡反过来必将影响整个产业的长足发展。如何高效的开发软件,已成为 当前必须面对的问题。 1 1 研究背景及课题来源 随着科学的发展,数据往往作为科学依据的一个客观标准。各学科对数据依 赖性不断增强,相关的数据量不断增大( 例如商业领域和统计科学) ,对大量数 据的存储、分析、处理依靠传统人力运作根本无法满足数据量日益增长的要求, 很多研究和应用领域建立以计算机为中心自动搜集、整理、分析和处理等工作。 由于通用计算机的出现,构建具有专业应用的计算机系统的主要问题往往不在于 计算机系统的硬件如何设计,丽是为这类系统生产怎样的软件。随着计算机应用 领域的不断扩大,对软件的需求也呈现空前增长。而落后的软件生产方式无法满 足迅速增长的软件需求,从而导致软件开发与维护过程中出现的一系列严重问 题,因此迫切需要改变传统的软件生产方式,提高软件产品的生产率,软件危机 ( s o f t w a r ec r i s i s ) 因此爆发。 早期出现的软件危机主要表现在:软件开发费用和进度失控。费用超支、 进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宣之计, 这样又往往严重损害了软件产品的质量。软件的可靠性差。尽管耗费了大量的 人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误 而造成的损失十分惊人。生产出来的软件难以维护。很多程序缺乏相应的文档 资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错 误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入 8 0 年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了 长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。软件 危机不仅没有消失,还有加剧之势。主要表现在:软件成本在计算机系统总成 本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自 动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需 要大量人力,软件成本随着软件规模和数量的剧增而持续上升。从美、日两国的 垦竖兰兰查兰竺圭笙兰 统计数字表明,1 9 8 5 年度软件成本大约占总成本的9 0 。软件开发生产率提 高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况 使得人类不能充分利用现代计算机硬件所能提供的巨大潜力【i - 2 1 。 本项研究受企业委托,研究税务管理的流程规范,以管理流程为核心建议一 套工作行为模型,并通过开发、设计、搜寻、归类得到一批通用性强、扩展性高 的领域组件。并利用这批组件实现一个系统税务稽查档案管理系统( t a f s ) 。 ( 注:以下简称税管系统) 1 2 所面临的实际问题 1 2 1 特定领域分析 面向特征的领域分析方法( f o d a ,f e a t u r e o r i e n t e dd o m a i na n a l y s i s m e t h o d ) ,是卡内基梅隆大学的软件工程研究所提出的,它支持对特定的应用 领域中系统共性和个性的发现、分析和文档记录。f o d a 的过程分为上下文分析 f c o n t e x t a n a l y s i s ) 、领域建模( d o m a i n m o d e l i n g ) 和构件建模( a r c h i t e c t u r e m o d e l i n g ) 三个阶段。 行业软件的设计,首先要分析该行业的业务守则,其次需要精确知道业务 流程,晟后需要对领域需求进行抽象化( 即建模过程) ,分析出整个行业的需求。 税管系统是一个数据分布式系统,其特点是需要存储的数据量大,数据分布不均 匀,数据存储不在同一地域,同时能够快速定位操作者所需的数据资源,具有查 询本机上的所有数据的能力,同时还能快速、自动搜索同一网络内的所有信息。 1 2 2 领域软件提取 领域中的对象可以通过检查代表一个领域的事件和被用来作为系统支持的 信息需求来提取,其提取过程可以利用特征模型和对象模型。对象模型提供了领 域内较为稳定的实体对象,并将通用特征和对象映射起来,使每个通用特征都存 在对应的实体对象。然后考虑每个对象所实现的特征,如果特征只是涉及到本对 象的操作,则把它定义为该对象的方法;如果涉及到其它多个对象,那么就再建 立一个过程构件用来实现这些特征,可以降低构件之间的依赖性。 1 2 3 领域软件的管理 对大量的构件进行有效的管理,是成功实现构件重用的必要保证。构件管理 的研究内容包括:构件分类、构件表示、构件库组织、人员及权限管理和用户意 见反馈等。其中,构件的合理分类是构件有效管理的基础,而在此基础之上进行 的对构件的表示则是构件管理的重要内容,是构件重用的主要依据。 n “一l 十,m a 2 强x 1 3 解决方法 特定领域构件可以从多种途径来获得。例如可以从i n t e m e t 上的现有构件库 中提取下载;可以从开发过的各种应用系统的现有构件库中提取;可以从开发过 的各种应用系统中提取、剪裁、组合而成;可以从某些商业性的软件机构购买; 当然也可以自己通过设计开发获得。获得的软件构件应该首先入库,在入库前需 要经过标识、验证和分类三个过程,以保证构件的完整与方便的管理。软件开发 时就直接从构件库中提取软件构件,并组装应用系统。构件提取需要经过检索、 定制和组合三个过程。 1 4 本文主要工作及段落组织 本文在总结前人的研究成果的基础上,并对一些新的软件复用技术规范做出 说明和解释( 主要针对w i n 3 2 平台下c o m 相关技术) ,并针对具体的应用,提 出几种新的软件复用思路和方法,并以实例( 实际的软件系统) 来验证这些方法 的可行性,并将这些方法和技术推广到d o s 平台下。 第一章说明软件危机的起因,以及目前软件开发方式的现状,并提出软件复 用方法才是解决软件危机的根本方法。 第二章概述软件复用技术的现状、其研究动态及优缺点。 第三章介绍构件技术及其相应的接口规范。 第四章介绍构建本系统所使用的c o m 技术,并对开发c o m ,使用c o m 及 c o m 原理做了进一步的阐述。 第五章介绍了税管系统的设计,并引入本人在实现系统发现的一些软件复用 技术,并给出了起原理。 第六章给出本项研究的心得体会,以及未来的工作。 武仪埋- l 大芋坝土论文 2 软件复用技术概述 2 1 软件复用的概念 目前对于软件复用还没有一个形式化的定义,许多研究人员从各自不同角度 对软件复用这个概念作了说明。b i g g e rs t a f f 和r i t c h e r 认为软件复用( s o f t w a r e r e u s c l 是在新的开发项目中使用以前已有的概念和对象。t r a c z 对软件复用定义 是:复用特别为复用目的而设计的软件的过程,这个定义认为软件复用具有事先 性,而把使用不是特别为复用目的的设计的软件称为软件挽救,把在多个应用中 使用相同的构件称作软件复用,不区分软件复用和软件挽救之间的区别。本文认 为软件复用即是将已有的软件及其有效成分用于构建新的软件或系统。它不仅是 对程序的复用,还包括对软件生产过程中所产生的其它劳动成果的复用如项目计 划书、可行性报告、需求分析、概要设计、详细设计、编码及源程序、测试用例、 文档与使用手册等等1 3 - 9 。 2 2 软件复用技术的发展 软件复用并不是一个新极念,它的首次提出可追溯至二十世纪六十年代末 期。截至目前,共经历了四个标志性的研究、发展阶段: 1 1 9 6 8 1 9 7 8 年:萌芽、潜伏期 在1 9 6 8 年德国g a r r n i s h 举行的n a t o ( 北大西洋公约组织) 软件工程会议上, d o u g hm c i l r o y 在其论文 m a s sp r o d u c es o f t w a r ec o m p o n e n t s ) ) 中提出软件复用 概念。希望通过代码复用实现软件开发的大规模生产。m c i l r o y 设想软构件可根 据它们的通用性、性能、应用平台等进行分类,使复杂的软件系统可以像硬件设 计一样,通过标准的构件进行识别、组装,这也是类构件软件复用思想的雏形, 但以后的十年,软件复用的研究并未取得实质进展。 2 1 9 7 9 1 9 8 3 年:再发现期 1 9 7 9 年l a n e r g a n 发表论文,对其在r a y t h e rm i s s i e ed i v i s o n 的一项软件复用 项目进行总结,使得软件复用技术重新引起了人们关注,l a n e r g a n 项目小组分析 了5 0 0 0 个c o b o l 源程序,发现设计和代码中有6 0 的冗余,因j 觅可标准化并 被复用。此后的几年,其他软件工程者也通过研究发现商业、金融等系统的大部 分逻辑结构和设计模式都属于编辑、维护、报表等类型的模块,可通过对这些模 块重新设计和标准化而得到较高的复用率。 3 1 9 8 3 1 9 9 4 年:发展期 1 9 8 3 年,h e db i g g e r s t u f f a 和a l a np e t i s 在美国的n e w p o r t 组织了第一次有 4 堕竖兰三奎量竺圭笙兰 关软件复用的研讨会,随后在1 9 8 4 ,1 9 8 7 年,美国i e e e t r a n s a c t i o n so ns o t t w a r e e n g i n e e r i n g 和i e e es o f t w a r e 分别出版了有关软件复用的专辑。1 9 9 1 年第一届软 件复用国际研讨会o w s r ) 在德国举行,之后在1 9 9 3 年又举行了第二次研讨会。 在此期间,欧洲实施了几个有关软件复用的重点项目,如e s f ( e u r e k as o r w a r e f a c t o r y ) ,主要目标是提供软件复用的工具支持。 4 1 9 9 4 年至今:成熟期 1 9 9 4 年的软件复用国际研讨会议改称软件复用国际会议,此时软件复用技 术己引起了计算机科学界的广泛重视,越来越多的人投入到这一技术的研究中。 面向对象技术的崛起给软件复用技术以新的希望,出现了类库、构件等新的复用 方式,微软的a c t i v e x 是其典型代表。互联网的出现以及由此引发的全球化分工 给软件复用技术的应用提供了又一次良好机遇,很多学者正着手研究网上软件类 库的实现、应用软件的网上组合生产等问题,这一切都预示着软件复用技术正逐 步走向成熟1 7 1 0 - 1 5 , 2 7 。 2 3 国内外研究现状 国际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、 基于复用的软件开发过程和复用成熟度模型等方面取得了重大成功。如:卡内 基梅隆大学的软件工程研究所( c m u s e d 提出了面向特征的领域分析方法 ( f e a t u r e - - o r i e n t e dd o m a i n a n a l y s i sm e t h o d - - f o d a ) ,并将该方法成功地运用于美 国空军运动控制等领域。美国军方与政府资助的项目中,已建立了若干构侔库系 统,如:c a r d s 、a s s e t 、d s r s 等。s t a r s 项目组于1 9 9 2 年提交了 a l o a f ( a s s e sl i b r a r yo p e na r c h i t e c t u r ef r a m e w o r k ) 开放体系结构的构件库框架 v e r s i o n1 2 。这一报告体现了a l o a f 对可复用构件库系统的认识,并就此实现 了a l o a f 规约作为该参考模型的实例。c a l d i e r i 和b a s i l i 提出了基于复用的 软件开发过程。i b m 和l o r a l f e d e r a l s y s t e m 公司研究出了复用成熟度模型【l ”j 。 国外大型软件公司在所提供的集成开发环境中也蕴含有软件复用技术,为 开发者提供了使用方便、性能可靠的软件构件。例如,m i c r o s o f t 公司的系列可 视化产品v i s u a ls t u d i o 系列产品、e s r i 公司的m a p o b j e c t s 、i n t e r g r a p h 公司的 g e o m e d i a 等。 在国内,杨美清院士主持的国家重点科技攻关项目青鸟工程,重点研究了 软件的工业化生产流程和软件复用的相关技术,开发软件工业化生产系统青 鸟软件生产线系统,即基于构件构架模式的软件开发技术及系统,为软件开发 提供从组织、管理、技术及支撑等方面的整体解决方案,推行软件工业化生产模 式,促进软件产业规模的形成。制定了符合国情、国际兼容的青鸟构件标准规范。 武汉理工大学坝j 论文 作为研究成果之一青鸟工程开发了基于异构平台、具有多信息源接v i 的应用系统 集成( 组装) 环境青鸟i i i 型( j b 3 ) 系统。青鸟i i i 型系统研制的目标是针对软 件工业化生产的需求,完善并初步实现青鸟软件生产线的思想,制定软件工业化 生产标准和规范,他们已将该技术应用于桂林百货大楼、北京前门商场等p o s 系 统【1 8 。2 引。 软件复用技术现己在国内应用于许多领域,如小型探测卫星系统软件的可 复用性结构设计,它不仅缩短了开发周期,节省了大量的人力和财力,而且使得 当需要在卫星上采用一种新技术或改变原系统结构时,不会出现整个星载软件系 统的大量改动或重新设计。又如“基于构件技术的商业d d s ”,应用了软件复用 思想,开发了“保本保利分析商品适销率分析”等商业d d s 构件,取得了 令人满意的效果。 i n t e m e t 的广泛传播,提供了一种比较标准的方法连接地理分散的实体。 i n t e r n e t 用户众多,方便快捷,交互性好,费用低,功能强大,给软件构件工业 提供了机遇,随着i n t e m e t 的发展,软件产业的发展形态也发生了变化,基于 计算机网络的软件产业,己从封闭的自给自足软件开发方式,逐渐演变为基于软 件复用的开发模式。目前,在美、同等国家已产生通过电子商务将构件取出、整 合、组装,从而形成应用软件系统的软件开发产业。国内由于种种原因,在这方 面进展缓慢。在再利用、组装、加工、构筑标准构件市场等方面还有待进一步发 展。 展望未来,软件复用技术和活动将变得系统化和规范化,会出现更多的组 织使用复用技术,产生可支持复用和领域( d o m a i n ) 分析的软件开发环境和c a s e 工具,涌现特定领域的可复用软件构件工厂,形成了支持领域或领域间复用软件 的开发标准等。软件复用技术的广泛采用将促进软件产业的变革,使软件产业真 正走向工程化、工业化的发展轨道。软件复用将造成软件产业的合理分工,专业 化的构件生产将成为独立的产业而存在,软件系统的开发将由软件系统集成商通 过购买商用构件,集成组装而成。可以预计,在不远的将来,可复用技术将为软 件开发带来革命性的变化 2 4 粕】。 2 4 软件复用的分类 根据抽象、选择、实例化和集成,可将软件复用方法分成8 类:高级语言形 式,设计和代码整理形式,源代码构件形式,软件模式形式,应用生成器形式, 甚高级语言形式,转换系统形式,以及软件体系结构形式。 高级语言中可复用的对象是汇编语言模式,高级语言是抽象规范,其对应的 汇编语言部分是抽象实现。 6 设计和代码整理形式:可复用对象是源代码片断,代码整理是从已存在的软 件代码系统中整块地进行拷贝,设计整理是拷贝大块代码后,仅保留设计的全局 样本,而删除许多内部细节。 源代码构件形式通过构造可复用库来实现这种形式的软件复用。可复用库要 提供描述复用构件的行为的抽象规范说明,还要提供分类和检索可复用构件的模 式。可复用构件方法在专有领域,如数学分析中的1 m s l 数学库,卓有成效,但 在通用领域收效甚微。原因在于数学库能采用一字检索,即一字抽象规范形式, 如s 玳来描述正弦函数。 软件模式是可复用软件构件的形式化扩充。软件模式复用对象是算法和数据 结构,软件模式的抽象规范是算法或数据结构的形式化描述,而抽象实现对应于 模式初始化时产生的源代码。 应用程序生成器复用完整的系统设计,如专家系统生成器,编译器的编译器, 面向结构的编辑器的生成器等。 甚高级语言即为可执行的规范语言它适合于通用软件开发,而应用程序生 成器适合于特定领域。 转换系统复用方法的关键在于软件开发者只需维护和提供系统的规范说明, 而不用维护和提供实现:对规范进行修改时,常可复用以前的大部分历史开发信 息。 可复用的软件体系结构是指大粒度的软件框架,以及软件系统全局的结构设 计。如在不同的领域实例化并且复用数据库子系统;将不同的词法分析器、语法 分析器和代码生成插入到一个编译器框架中;专家系统中的基于规则和黑板的结 构:示波器的设计框架等都是可复用的软件体系结构的实例【l ”。 软件复用可以从多个角度进行考察,根据复用的对象,可分为产品复用和过 程复用。产品复用指对软件开发过程中生成的各种产品( 需求规约、设计、程序、 测试计划和数据等) 构件的复用,这涉及可复用构件的建造( 从现有系统中获取 及有目的的生产) 及可复用构件的使用( 对知识性资源的参考和对程序代码级资 源的复合组装) 两个方面,通过专业性的构件开发和基于构件复用的系统集成实 现软件的工业化生产。过程复用指通过采用自动化技术,复用关于软件系统生成 或变换的知识,从而使得可以从需求描述出发。通过生成或变换,自动生成最终 所需的系统,应用生成器、程序变换器和可执行规约语言均是过程复用的例子。 完全通用的过程复用意味着软件生产的自动化,这在目前还是不现实的想法,因 此过程复用难度大、投资大、不易实施。当前过程复用的实践大多和领域相关, 如特定领域的应用生成器。过程复用是非常理想的软件复用方式,但在目前技术 发展水平下,仍是难以企及的目标,产品复用成为主要的研究课题。 7 根据对可复用产品的了解程度,可以分为黑盒复用和白盒复用【2 蛆0 1 。黑盒复 用方式是指复用者不必了解各个构件的内部原理和实现方法,即该方式对复用者 是不透明的。复用者只需了解其对外的接口。构件的实现方法被封装在其内部, 复用者不能也不必了解。黑盒复用方式的优点在于,使复用者只需将注意力集中 于整个程序的构架及各个构件的选择,无须考虑构件的内部结构,从而大大提高 了程序的生产效率。缺点是当复用者发现某个构件不完全符合组装要求,又无相 应的可替换构件时,无法对其直接进行修改。白盒复用方式是指复用者必需了解 各个构件的内部原理和实现方法,应比较熟练地掌握编制该构件的程序语言。白 盒复用般适用于构件的界面设计不完善,或构件间的耦合较多的情况复用者 用程序语言将各个构件连接成应用程序,必要时还需修改一些构件以使它们符合 实际需要。这种方式就好像将各个构件用编程语言粘在一起似的,因此也可称为 “粘合”。这种复用方式比较灵活,但对组装者的要求水平较高,并且经过复用 者修改的构件缺乏严格的测试,稳定性和可靠性不能被保证。另外这种方式的生 产效率远远低于黑盒复用方式。 依据复用的组织方式,可将复用区分为系统化的( 或有计划的) 复用和个别的 ( 或“机会主义的”1 复用。 2 5 软件复用技术的优点 采用软件复用技术有以下几个优点p l j : ( 1 ) 高软件生产率,减少开发时间和费用; ( 2 ) 提高软件质量,开发出来的软件可靠性高; ( 3 ) 降低开发风险; ( 钔简化软件开发流程,使得软件开发易于管理; ( 5 1 降低维护的难度、工作量和费用,且有可能延长运行期以提高软件系统 的效益; ( 6 ) 共享有关关键系统的知识,便于学习系统结构和建立好的系统,促进软 件开发过程的标准化; ( 7 ) 易于提供文档资料等。 i b m 的r e u s et e c h n o l o g ys u p p o r tc e n t e r 采用软件复用技术后取得较好的效 果,一些项目可节约数百万美元;东芝公司在其电力系统应用中,把软件复用率 从1 9 7 9 年的1 3 提高到1 9 8 5 年的4 8 ,生产率提高了5 7 瑞典的 n o b e l t e c h s v s t e m s 决定把嵌入式的舰船应用系统的开发作为一个系列而不是单 独应用来开发,结果获得了7 0 的复用率,生产率提高了一倍,仅在一个系统中 节省的费用就达2 0 0 0 万美元。 璺竖竺:查量竖圭堕兰 采用软件复用技术对软件质量也有很大的提高,l e n z 等人报告在功能测试 时,每行平均错误数比不使用技术的少9 倍,在部件和系统测试时大约要少4 5 倍。s c h a c h 认为软件复用除了能降低开发费用外,也能大幅降低维护的费用, 在维护阶段节省的费用几乎是开发阶段的两倍。 2 6 软件复用的意义 通常情况下,应用软件系统的开发过程包含以下几个阶段【32 】:需求分析、 设计、编码、测试、维护等。当每个应用系统的开发都是从头开始时,在系统开 发过程中就必然存在大量的重复劳动,如:用户需求获取的重复、需求分析和设 计的重复、编码的重复、测试的重复和文档工作的重复等。 探讨应用系统的本质,可以发现其中通常包含三类成分【3 5 】:通用基本构 件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它 们可以存在于各种应用系统中;领域共性构件:是应用系统所属领域的共性构 成成分,它们存在于该领域的各个应用系统中:应用专用构件:是每个应用系 统的特有构成成分。 应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的 开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过 去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、 测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。 通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了 包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效 率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误, 从而提高了软件的质量。 2 7 本章小结 软件复用技术发展到今天已经逐渐成熟起来,目前利用第三方类库开发应用 程序已经逐渐成熟起来,相信不久将来,软件也真正的能像硬件插件一样,能够 通过各个功能部件组装实现,而程序员无需为编码和测试耗费太多时间和精力, 仅将精力集中于在需求和过程分析。本章详细论述了软件复用提出的时间背景以 及未来预期。 9 武汉理工人学硕士论文 3 软件复用关键技术软件构件技术 软件构件技术( s o r w a r ec o m p o n e n tt e c h n o l o g y ) 是支持基于构件的软件复用 的核心技术。基于构件的软件开发是当前软件开发的发展趋势,利用构件组装成 为一个系统与从头到尾写代码“写”成一个系统相比,它的高效率是可想而知的, 但其效率的发挥必须有大量的“构件群”来支持,而这些“构件群”要想在具体 的应用领域中发挥作用必须要有一个高效的构件库管理这些种类繁多的构件。 3 1 构件的概念 软件构件技术是支持软件复用的核心技术。构件技术以面向对象技术为基 础,并很好的发展了面向对象技术。它的目的是将对象、包括用户界面、对外接 口等属性以及对象的功能实现封装成一个规范的、标准的、可以方便地被构件容 器所操纵和使用的整体,使其称为一个通用、高效的软件部件。 构件由可复用的二迸制形式的软件块组成( 与源代码不同) ,这些软件块可 以用相当小的精力插入到来自其他开发商的系统中,从而独立于使用它们的应用 程序和用于创建它们的编程语言之外。例如,一个基于构件的架构可以将多个开 发商的拼写检查构件插入到另一个开发商的字处理应用程序中去。这样就为最终 用户带来了许多方便。 3 2 构件的分类 构件的分类方法有很多,如青鸟工程开发的m i s 构件库中将构件分为三级: 零级、一级、二级类库。其中,零级类库是由基本数据结构和其相关的算法封装 在一起而形成的基本的数据结构类;一级类库包括应用软件常用的、具有通用功 能的一些构件类,二级类库是针对不同应用行业的专用构件类库。这种分类方法 基本上是按照自底向上的方法分类的【2 ,t “。 下面将详细的按照自顶向下、自底向上组装的思想对构件进行分类。它将构 件分为四类:系统构件、组织构件、分子构件和原子构件。 n ) 系统构件和组织构件 系统构件是指系统总体框架构件,类似于微机中的主板。系统构件的开发必 须在定规范下进行,这种规范类似于硬件中总线的概念,因此可称其为软件总 线。软件总线规范不仅是系统构件的开发规范。而且包括嵌入到系统构件中的子 构件的开发规范。对每一应用领域一般需要开发个系统构件,并将系统构件存 放到系统构件库中,系统构件应主要由软件制造商在一定的软件总线规范下开 1 0 一些坚型兰查兰竺主堡兰 发。系统构件属于软件体系结构层次上的抽象,属于最高层次上的软件复用抽象, 因此其复用性最好。 组织构件是嵌入到系统构件中的子构件,类似于微机主板上的插板。一个和 几个组织构件可完成个特定的任务。系统构件负责协调各个组织构件的工作, 从而构成整个应用系统。组织构件一般是一个已调试成功的软件子系统,它是按 一定的软件总线规范开发的,不同构件制造商开发的组织构件可兼容在一种系统 构件下工作。随着加入软件总线规范的构件制造商的增加,开发人员可选择的组 织构件资源也会大大增加。每个系统构件对应一个组织构件库,而所有系统构件 所公用的组织构件构成公共组织构件库,如图形界面组织构件库就是一种公用组 织库。系统构件和组织构件一般都具有可继承性。通过系统构件和组织构件这两 类构件的合理组装,就可形成新的应用系统。 ( 2 ) 分子构件和原子构件 分子构件和原子构件是构成系统构件、组织构件的子构件,它们可类比于微 机硬件结构中的集成电路芯片( i c ) 。其中,分子构件又可复用原子构件,通过原 子构件组装而成。原子构件是最小粒度的构件,它不能通过复用方式构造,一般 包括一些最基本的数据结构以及与相关算法封装在一起的基本类。 系统构件和组织构件可复用分子构件、构件只能参与系统构件、从不同的角 度出发,组织构件的组装,原予构件构造自己,而分子构件和原子但不参与最后 新的应用系统的组装。还可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 活动策划专员工作总结
- 气管切开的患者如何护理
- 护理人的初心和使命
- 酒店客房年终总结报告
- 根尖周炎护理查房
- (2024版)苏教版三年级上册数学3.1数据的收集(1)课件
- 零售药店工作总结
- 音乐老师工作汇报
- 护理培训质量检查记录
- 事业单位安全培训课程课件
- 储罐区的安全题库及答案解析
- 交大入党测试题及答案
- 培训如何开早会的课件
- 2025年河北沧州市中心医院、沧州博施康养集团公开招聘辅助岗工作人员113名考试参考试题及答案解析
- 消防员抗洪抢险知识培训课件
- 历年时事政治试题及答案
- 摄像基础培训课件
- 低钾血症课件
- 志愿者个人汇报
- 2025年西安银行竞聘面试题目及答案
- 《跨境电商(B2C)操作实务》高职跨境电商全套教学课件
评论
0/150
提交评论