已阅读5页,还剩81页未读, 继续免费阅读
(计算机应用技术专业论文)基于软件复用的商业供应链系统dssa的建模.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 当前,软件复用成为解决软件危机的有效方法,其研究主要集中在 基础设旌模型( 如c o m d c o m ,c o r b a ,e j b ) ,构件的研制,构件库的建 立和管理,软件体系结构等方面。经过大量的软件复用的实践表明,对 所有系统都适用的软件体系结构的复用难度很大,不容易实现。同时, 特定领域因其领域特性的相同或相近,使得特定领域的软件复用成为可 能,并取得了长足的进展,它包含了领域知识,领域需求,领域模型, 系统设计,文档化等多方面的复用。自上而下地进行领域分析,建立领 域模型,通过领域设计实现面向特定领域的软件体系结构,是更有效, 更具有重大意义的软件复用途径。 本课题详细研究了领域内成熟的应用系统,如中国佳软协力商霸、 浪潮国强商务软件、北京万能g o e a s ye r p 企业资源计划管理系统等,运 用面向特征的领域分析方法f o d a ,分析商业领域供应链系统的共同点 和一系列应用系统的差异,建立领域模型。提炼满足商业供应链系统的 软件体系结构d s s a ,并对以上模型进行详细的描述。 课题把得到的复用产品应用于太工天成医药企业供应链管理系统的 开发实践。在开发过程中利用领域模型获得当前系统的需求,然后基于 这些需求与d s s a 之间的可追踪性,由d s s a 构造出系统特定的结构, 按照d s s a 包含的构件及构件互连的规则,利用已有的领域构件,快速 开发出应用系统。课题综合对比现有的软件开发过程优缺点,希望能够 探索一种基于软件体系结构的自上而下的应用系统开发过程,设计的复 用产品一商业供应链领域模型和d s s a 具有需求、设计层次的复用价值, 从而提高软件开发的成功率和效率。 关键词:软件复用软件体系结构d s s af o d a a b s 1 1 r a :i c u r r e n t l ys o f t w a r er u s ei sb e c o m i n ga ne f f e c t i v em e t h o df o rs o l v i n g s o f t w a r ec r i s i s ,a n di tf o c u s0 1 1b a s i cm o d e i ( c o m d c o m ,c o r b a ,e j b ) , d e v e l o p i n gc o m p o n e n t ,e s t a b l i s h i n ga n dm a n a g ec o m p o n e n tl i b r a r y ,s o f t w a r e a r c h i t e c t u r ea n ds oo n l a r g en u m b e ro fp r a c t i c ei ns o f t w a r er e u s ei n d i c a t e s t h a ti ti sd i f f i c u l tt oo b t a i nt h es o r w a r ea r c h i t e c t u r ea d a p t i n gt oa l lt h e a p p l i c a t i o ns y s t e m sf o ri t sh i g hr e u s e a tt h es a n l et i m e ,i ti sp o s s i b l ef o rt h e s o f t w a r er e u s ei ns p e c i f i cd o m a i nb e c a u s eo f t h es r l n es p e c i a l i t yo f ad o m a i n r e c e n t l yd o m a i ne n g i n e e r i n gg e t sg r e a tp r o g r e s s ,a n di ti n c l u d e st h er e u s eo f d o m a i nk n o w l e d g e ,d o m a i nr e q u i r e m e n t ,d o m a i nm o d e l i n g ,d o c u m e n t i n ga n d s oo n i ti sam o r ee f f i c i e n ta n di m p o r t a n tm e t h o do fs o f t w a r er e u s eb y r e u s i n gd s s a w ei n v e s t i g a t e ss o m em a t u r ea p p l i c a t i o ns y s t e m si nt h ed o m a i ni nd e t a i l , s u c ha sj u s t s o f t c h i n a 、g b e r p 、g o e a s ye r pa n da n a l y z et h ec o m m o n a n dd i f f e r e n c eo fac l a s so fa p p l i c a t i o ns y s t e m sb yu s i n gf o d a b yt h i s p r o c e s s ,w ec a ne s t a b l i s hd o m a i nm o d e la n da b s t r a c td s s as a t i s f i e dt h e f u n c t i o no f b u s i n e s se n t e r p r i s es c ma n dd e s c r i b et h e mi nd e t a i l w ea p p l yt h e s er e u s ep r o d u c t st ot h ed e v e l o p m e n to fm e d i c i n ee n t e r p r i s e s c m i nt h e p r o c e s s ,s y s t e ma n a l y s t c a na c q u i r et h er e q u i r e m e n to f a p p l i c a t i o ne n g i n e e r i n gb yd o m a i nm o d e la sd e v e l o p i n gi t ,a n dt h e n c o n s t r u c t st h es y s t e m s a r c h i t e c t u r eb a s e do nt h et r a c e a b i l i t yb e t w e e n r e q u i r e m e n ta n dd s s a t h r o u g ht h e s es t e p sp r o g r a m m e r sc a r ld e v e l o pt h e a p p l i c a t i o ns y s t e mq u i c k l y c o m p a r e dt 0t h ed e v e l o p m e n tm e t h o dc u r r e n t l y , i ti se x p e c t e dt os e a r c ha f t e rad e v e l o p m e n tm e t h o do f a p p l i c a t i o ns y s t e mt h a t i sf r o mt o pt ob o t t o mb a s e do ns o f t w a r ef e u s e t h er e u s ep r o d u c t s ( d o m a i n m o d e la n dd s s a ) h a v et h ev a l u eo fr e q u i r e m e n tr e u s ea n d d e s i g nr e u s ea n d w ec a i li m p r o v et h ee f f i c i e n c yo f d e v e l o p m e n t k e y w o r d :s o f t w a r er e u s e s o f t w a r ea r c h i t e c t u r ed s s af o d a 太嚣理工大学颂士研兜生毕业论文 第一章软件复用技术概论 1 1 软件复用的背景和目的 众所周知,应用软件系统韵一般开发模式如圈i - i 所示 圉 卜艇 圈卜i 应用系统开发模式 这种传统软件开发过程总是从头开始,每个应用系统的开发均涉及 大量的重复劳动,其中包括:用户需求获取的重复,需求分析、设计的 重复,编码实现的璧复、测试工作的重复、文档工作的重复等等。而且, 经过这种传统开发过程开发出扮软件系统不可避免的带有先天的弱点: 不可靠、缺乏安全牲、性能下降、易出错、难以升级维护,实践证明有 7 3 的软件项目被建遮、越资、取消或失败。随着社会生产力的提高,过 去4 0 年中,计算机硬件的性能跨越了8 个重要蛉阶段,而开发软件的能 力及技术却未能与硬侮韵发展保持同步,由此引发了较件危机。 软件危机被定义为:不断增加饷为大系统制造可靠软件的困难度, 软件系统的规模和燮袭牲不断增长;对软件的需求增长超过供应( 开发、 演化和维护) 能力:软件开发人员极度短缺、开发效率和软件质量不能 满足用户的需求,壤终筵缓经济和社会的发展。 自从1 9 6 8 年正彗:提出软件复用( s o , w a r e r e u s e ) 的概念以来,软件复 甩已有了近三十年的发展历程,复用的对象也从早期的代码复用扩展到 对软件开发过程中一切有价值的信息的复用,包括需求、需求规约、设 计、源代码、测试计划等。近三十年的实践证明,软件复用可以有效地 提高软件的质量和生产率,是解决当前“软件危机”的一条比较现实可 行的途径。 软件复用包括秀发可复用软件构件藕基于可复用构件的开发两个生 命周期。这两个生命厨期与传绕的软件开发过程有着很大的不同,主要 体现在生命周期的各个阶段中,均以软件复用为中心,以可复用的软件 太原理工大学硕士研究生毕业论文 构件库为基础,构件( c o m p o n e n t ) 的制作与复用相互衔接,从而将软件复 用的思想充分贯彻到软件开发过程的各个阶段中。基于复用的软件开发 主张应用系统的开发不再采用一切“从零开始”的模式,而要充分利用 过去应用开发中积累的知识和经验。“1 随着社会信息化程度的提高,i t 技术已经深入到社会生活的方方面 面,而软件作为i t 技术应用的核心,其重要性也日渐突出。无论是生产 制造、电子商务,还是服务咨询领域,软件都己成为担当重任的核心力 量,互联网和软件已成为推动新经济发展的重要基础。那么,在新经济 环境下,企业对软件的应用提出了哪些新的要求呢? ”高质量、高速度和 无处不在”,这是r a t i o n a l 公司副总裁j i m c l u c h e y 先生的回答。他认为, 在传统经济下,企业对软件的要求主要是全功能和高质量:而现在,随 着竞争的加剧和客户需求的多样化,企业对软件的更新速度提出了更高 的要求,过去年更新一次的软件,现在可能是半年、三个月、甚至一 个月就必须更新。另一方面,软件从过去主要用于提高生产效率、加强 内部管理逐渐成为帮助企业获得更大效益的工具,也成为人们工作和生 活中不可缺少的元素。这种变化使软件开发面临新的挑战:如何快速且 高质量地开发出满足不同需求的软件? 传统的软件开发方法在这时已显 得无能为力了,建立更好的软件开发环境,引入新的软件开发方法,开 发和采用可复用的软件构件成为解决这一问题的最佳方法。软件复用和 软件构件开发已经成为互联网时代软件开发的大趋势。 有人预测:到2 0 0 3 年至少7 0 的新应用程序将会由商业化的可复用 构件构成,这些构件( 包括基础构件和应用程序体系结构) 加快了产品 的开发速度和企业的应变能力。以设计模式,软件体系结构和商业构件 形式出现的软件构件可以通过复用显著的提升开发品质和生产力,复用 反过来也可以显著的降低成本和缩短软件开发周期。未来大量的应用程 序的开发必将依存于一个开放的便利构件选择和装配的软件体系结构。 使用软件复用技术还可以减少软件开发活动中大量的重复性工作,这样 就能够提高软件开发生产率,减低开发成本,缩短开发周期。同时,由 于构件大都经过严格的质量认证,荠在实际运行环境中得到检验,因此, 查墨穗螽毽鎏塑墅避兰兰! 堂茎 构件的复用有助于改善软件质量。此外,大量使用构件,应用系统的灵 活性和标准化程度也能得到提高。 1 2 基本的软件复用概念 软件复甩魄概念胍产生至今,有许多复用技术的研究成果和成功的 复用实践活动,但是复用技术在整体上对软件产业的影响却不尽如人意, 这其中有技术方面和非技术方面的种种因素,而技术上的不成熟是一个 主要原因。近十几年来,面向对象技术的出现并逐步成为主流技术,为 软件复用提供了基本翦技术支持,使得软件复用重新成了软件研究的热 点,被视为解决软件危机,提离软件生产效率和质量豹一条现实可行的 途径。 1 2 1 软件复用术语定义 软件复用可以有熬地节省软件开发成本,提高软件质量。本节介绍 一些在本文赢面愚裂触复甩豹基本术语和概念,以便加强对软件复用的 理解。 软件复用:在一个新的语境( c o n t e x t ) 中( 同一系统的其它地方或 另一个系统中) 使用已有的软件构件。具体包含三个方面的含义: 重复使丽“为了复用目的而设计、开发的软件”的过程。 开发可复厝软件构件和基于可复用构件的开发。 一项甍杂的系统工程,涉及组织、管理、过程、技术、方 法、工具等方方面面。” 软件生命周期( s o i t w a r el i f ec y c l e ) :软件系统在开发和配置时所经 历的一系列阶段。尽管不同项目在具体阶段上会有所差别,但通 常都会包括下列阶段:需求分析、设计、编码、测试和维护。 软锋复用成熟发模型( r e u s e m a t u r i t y m o d e l ) :软件开发单位复用 水平层次的度量。开发单位面向复用的过程改善是实现成功复用 的重要因素,这个概念类似于s e i 的c m m ( c a p a b i l i t ym a t u r i t y m o d e l ) 。例如:l e t a lf e d e r a ls y s t e m 公司的p , a m m 分级为: 初始级一偶尔的开发过程复用 一1 太原理工大学硕士研究生毕业论文 基本级一在项目级上定义的开发过程复用 系统化级一标准的开发过程复用 面向领域级一大规模的子系统复用 软件制造级一可配置的生成器及d s s a 可复用软件构件一软件系统中一切可以被明确标识和复用的软 件实体;它可以是需求分析、设计、代码、测试数据或软件开发 过程的其它产品。 复用者一在自己开发的项目中复用软件构件的个人或组织。 可复用构件库( c o m p o n e n tl i b r a r y ) 一可复用软件构件的集合,包 括向用户提供构件时所需的过程和功能。”1 1 2 2 软件复用的优越性 探讨应用系统的本质,可以发现其中通常包含三类成分: 通用基本构件:是特定与计算机系统的构成成分,如基本的数据 结构、用户界面元素等,它们可以存在于各种应用系统中。 领域共性构件:应用系统所属领域的共性构成成分,它们存在于 该领域的各个应用系统中。 应用专用构件:应用系统的特有构成成分。”1 应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。 通过软件复用,在应用系统中可以充分地利用已有的开发成果,提高软 件开发的效率。同时,通过复用高质量的已有开发成果,避免了重新开 发可能引入的错误,从而提高了软件的质量。具体来说,其优越性可以 归纳为下列五个方面: ( 1 ) 提高生产率:软件复用最明显的好处在于提高生产率,从而减少 开发代价。生产率的提高不仅体现在代码开发阶段,在分析、设计及测 试阶段同样可以利用复用来节省开销。用可复用的构件构造系统还可以 提高系统的性能和可靠性,因为可复用构件经过了高度优化,并且在实 践中经受过检验。 ( 2 ) 减少维护代价:这是软件复用另一个重要的优越性。由于使用经 过检验的构件,减少了可能的错误,同时软件中需要维护的部分也减少 4 太菲理工太学颈士研究生毕业论文 了。例如,要对多个具有公共图形用户界面的系统进行维护时,对界面 的修改只需要一次,而不是在每个系统中分蹦进行修改。 ( 3 ) 提高互操作性:软件复用一个更为专业化的好处在于提高了系统 间的互撩_ 怍性。通过使甩接口的同一个实现,系统将更为有效地实现与 其它系统之闯的互操作。例如,若多个通讯系统都采用同一个软件包来 实现x 2 5 协议,那么它们之间豹交互将更为方便。 ( 4 ) 支持快速原型。复用的另一个好处在于对快速原型的支持,即可 以快速构造出系统可操作的模型,以羲褥甩户对系统功能的反馈。利用 可复用鞫件摩可以快速有效缝构造出应阐程序的原型。 幅) 减多培铺l 开销。复闱的最后一个好处在于减少培训开销,即雇员 在然悉新任务时所需的非正式的开锖。如同硬件工程师使用相同的集成 电路块设计不同类型韵系统,软件工程癖也将使用一个可复用构件库, 其中的构传都蹩他们所熟悉和 秀避韵。 1 2 _ 3 软件复用的类型 为软傣囊用进行简单豹分类比较圈难,因为软件复用技术很多,一 袢复用技术可以包括多种复用形式。比如说:框架( f r a m e w o r k ) 既可以 包灏西弋礴缀复用,也可以包括橇计缀爨腮。这样,按照不同韵角度就会 有不嗣鹪凳凌方法,下面藏目魏国内绋班:较流行的分类加以介绍。 按照软件复用新应用韵领螭花嗣,可以把复用划分为两种:横向复 甩静纵向复耀。”。 横扁复用是指复用不尾应需领域书韵软件元素,例如数据结构、 分类算法、人机界面构件等。标准涵数库是一种典型的原始的横向复 用机制 纵向复用是指在一类具有较多公共性的应用领域之间进行软件复 用。因为在两个截然不同的应用领域之问实施软件复用非常困难,潜 力不大所以纵向复用方备霉毒瞩目,并成为软件复用技术真正具有推 广价值的研究领域。纵自复用活动的主要包括以下几个步骤: 首先进行领域分析。根据应用领域的特征及相似性预测构件的可 复用牲。 e 太原理工大学硕士研究生毕业论文 然后进行构件的开发。一旦确认了构件的复用价值即可进行构 件的开发并对具有复用价值的构件进行一般化,以便它们能够适 应新的类似的应用领域。 最后,构件及其文档即可进入构件库,成为可供后续项目使用的 可复用资源。 软件复用按照复用级别和抽象程度的高低,可以划分为: 代码的复用:包括目标代码和源代码的复用。其中目标代码的复用 级别最低,历史也最久,当前大部分编程语言的运行支持系统都提 供了连接( l i n k ) 、绑定( b i n d i n g ) 等功能来支持这种复用。源代 码的复用级别略高于目标代码的复用,程序员在编程时把一些想复 用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码 不匹配的错误。想大规模的实现源程序的复用只有依靠含有大量可 复用构件的构件库。如对象链接及嵌入技术,既支持在源程序级定 义构件并用以构造新的系统,又使这些构件在目标代码的级别上仍 然是一些独立的可复用构件,能够在运行时被灵活的组合为各种不 同的应用。 设计的复用:设计结果比源程序的抽象级别更高。因此它的复用受 实现环境的影响较少,从而使可复用构件被复用的机会更多,并且 所需的修改更少。这种复用有三种途径,第一种途径是从现有系统 的设计结果中提取一些可复用的设计构件,并把这些构件应用于新 系统的设计;第二种途径是把一个现有系统的全部设计文档在新的 软硬件平台上重新实现,也就是把一个设计运用于多个具体的实 现:第三种途径是独立于任何具体的应用,有计划地开发些可复 用的设计构件。 分析的复用:这是比设计结果更高级别的复用,可复用的分析构件 是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设 计技术及实现条件的影响很少,所以可复用的机会更大。复用的途 径也有三种,即从现有系统的分析结果中提取可复用构件用于新系 统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台 一6 一 太原理工夫学硕研究生毕业论文 和其它实现条件的多项设计;独立于具体应用,专门开发一些可复 用的分析构件。 测试信息的复用:主要包括测试用例的复用和测试过程信息的复 用。前者是把一个软件的铡试用例在新的软件测试中使用,或者在 软件做出修改耐在新韵一轮测试中使用。后者是在测试过程中通过 软件工具自动地记录溅试豹过程信息,包括测试员的每一个操作、 输入参数、溺j 目t 用倒及运行环境等一切信惠。 由于软件生产过程主要是正向过程,即大部分软件的生产过程是使 软件产品从抽象级别较高的形态向抽象级别较低的形态演化,所以较高 级别的复用容易带动较低级别的复用,因而复用的级别越高,可得到的 回报也越大,因此分析结果和设计结果在目前很受重视。用户可购买生 产商的分析件和设计件,自己设计或编程,掌握系统 自勺剪裁、扩充、维 护、演化等活动。 按照软件复用的手段可以把它划分为组装式复用和生成式复用: 组装复用( c o m p o s i t i o a a l ) 又叫产品复用,是指复用已有的软件构 件,通过构件集成得到新系统。组装式方法利用库中的底层构件自 底向上地开发系统,关键是要解决构件的分类和检索技术,以及开 发出一个自动化系统以支持组装过程。 生成复用( g e n e r a t i v e ) 又叫过程复用,指复用已有的软件开发过程, 使用可复用的瘟用生成嚣来自动或半自动生成所需系统。生成式方 法是特定于应厨领域的,它采用标准的镶域软件体系结构模型和一 致的构件接口,目的是根据一个适当的参数规约生成新的系统。( 目 前在商业软件中使用的第四代生成语言可以被认为是生成式复用 的一个例子。) 这种方法在成熟的领域中非常有效,但在开发初始 模型时需要很大的努力。 按照复用的方式可以划分为黑盒复用和白盒复用: 黑盒复用是指原样复用,对已有的构件不需作任何修改,直接进 行复用,这是理想的复用方式。 白盒复用指已有构件并不能完全符合用户需求,需要根据用户需 太原理工大学硕士研究生毕业论文 求进行适应性修改后才能使用。而在大多数应用的组装过程中, 构件的适应性修改是必需的。 构件既可以原样复用,也可能需要修改。一般来说,可复用构件应 设计得比较有弹性,例如可以设计成参数化的构件,但为了满足复用者 的需求,适当的修改也是必要的。易修改性( 软件构件易于修改的能力) 是可复用软件中尤为重要的性质,但是在构件的通用性与性能之间常常 存在折衷,设计通用和灵活的构件常常包括为了支持通用性而增加的额 外开销。 1 3 系统化的软件复用 1 3 1 个别的软件复用和系统化的软件复用 目前,在软件系统的开发中,存在着两种不同复用方式:系统化复 用和个别的软件复用。系统化的软件复用是指在构建系统时,有意识有 计划的进行构件的复用,在软件开发周期的各个阶段主动的寻找复用产 品和复用机会,从而提高软件开发的效率,这是真正意义上的软件复用。 而个别复用指的是零星的、随机性的构件复用。本文所探讨和主张的是 系统化的软件复用过程。 1 3 2 系统化复用成功的因素 成功实现系统化复用的关键因素主要包括:软件构件技术( s o f t w a r e c o m p o n e n t ) 、领域工程( d o m m ne n g i n e e r i n g ) 、软件构架( s o t t w a r e a r c h i t e c t u r e ) 、软件再工程( s o i l w a r er e e n g i n e e r i n g ) 、开放系统( o p e n s y s t e m ) 、软件过程( s o t t w a r ep r o c e s s ) 、c a s e 技术等以及其它非技术因素。 这些因素相互联系,相互影响,共同影响系统化软件复用的实现。“1 ( 1 ) 软件构件技术 构件是指应用系统中可以明确辨识的构成成分。而可复用构件是指 具有相对独立的功能和可复用价值的构件,它应具备以下属性: 有用性( u s e f u l n e s s ) :构件必须提供有用的功能。 可用性( y s a b i l i t y ) :构件必须易于理解和使用。 一8 查璺墨兰查兰璧主要塞生兰些丝塞 质量( 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 ) :构件应能在不同的硬件运行平台和软件 环境中工作。 随着软件复用技术的发展和实践,构件的概念已不再局限于源代码 构件,向外延伸到了需求、系统和软件的需求规钧、系统和软件的体系 结构、文档、测试计划、测试案例以及其它对开发活动有用的信息。这 些信息都可以称为可复用软件构件。软件构件技术是支持软件复用的核 心技术,近几年来迅速发展并受到高度重视。其主要研究内容包括: 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; 鞫 件模型;研究辫件的本质特征及梅件问的关系; 构件摇述语言:以构件摸鍪为基础,解决构件的精确描述、理解及 纽装海题; 构件分类写检索:研究构件分类策略、组织模式及检索策略,建立 构件摩管理系统,支持构件的有效管理; 构件笺合缎装:在构件模型韵基础上研究构件组装机制,包括源代 、羁缀豹组裴和基予构件对象互操作性的运行缓组装; 标准化:鞫舞模墅韵标准化和构件库系统的标准化。”。 ( 2 ) 软件体系结构 软件俸系结构悬对系统整体结构设计的规划,包括全局组织与控制 结构、构传趣通讯、同步和数据访问的协议,设计元素间的功能分配, 物理分布,设计元素集成,伸缩牲和性能等。1 研究软件体系结构对于进行商效的软件工程具有菲常重要的意义: 通过对软件体系结构的研究,有利于发现不同系统在较高级别上的共同 特性;获得正确的软件体系结构对于进行正确的系统设计非常关键:对 各种软件体系结构的深入了解,使得软件工程师可以根据一些原则在不 同韵软件体系结构之阃做出选择;从软件体系结构羽层次上表示系统, 有利于系统较高级:j j 皤性质的描述和分析。特别重要豹是,在基于复用的 一9 , 太原理工大学硕士研究生毕业论文 软件开发中,为复用而开发的软件体系结构可以作为一种大粒度的、抽 象级别较高的软件构件进行复用,而且体系结构还为构件的组装提供基 础和上下文,对于成功的复用具有非常重要的意义。 软件体系结构研究如何快速、可靠地用可复用构件构造系统的方式, 着重于软件系统自身的整体结构和构件问的互联。其主要研究方向包括: 软件体系结构原理和风格; 软件体系结构的描述和规约; 特定领域软件体系结构; 构件向软件体系结构的集成机制。” ( 3 ) 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备 基础的过程,它覆盖了建立可复用软件构件的所有活动,包括三个主要 的阶段:领域分析;领域设计;领域实现。其软件产品包括:领域模型、 领域体系结构、领域特定的语言、代码生成器和代码构件等。“ 对所有系统都适用的软件体系结构的复用会大大增加复用的难度, 由此使得领域工程的研究得以迅速的发展。领域工程的实施是基于以下 事实:同一领域中的系统的需求和功能必然具有显著的共性。通过领域 工程,可以产生领域模型等大粒度的、具有一定一般性的构件,而且可 以使用领域模型将该领域的其它可复用构件组织起来,从而增加复用的 机会。同时,领域模型还随着应用的深入,新技术的采用不断更新。 显而易见,自上而下地进行领域分析。建立领域模型,通过领域设 计建立面向特定领域的软件体系结构,是更有效、更具意义的软件复用 途径。这样,人们在开发新的系统中就不必总是重复创造已经创造过的 东西,而是可以在软件开发的高层次上复用已有的成果,大大提高软件 开发的成功率和效率。 ( 4 ) 软件再工程 软件复用中的一些问题是与现实系统密切相关的,如:现有系统如 何适应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、 1 0 太最理王太冁士研兜生毕业论文 可复用的系统体系结构并提炼出可复用的软件构件? 现存大量的遗产软 件系统由于技术的发展,正逐赣退出使用,如何对这些系统进行挖掘、 整理,得到有用的软件构件? 已有的软件构件随着时间的流逝会逐渐变 得不可使霜,如何对它们进行维护,延长其使用寿命,充分利用这些可 复用构件? 软件再工程正是解决这些拇题的主要技术手段。 软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起 来,将现存系统重新构造为新婚形式。再工程的基础是系统理解,包括 对运行系统、源代码、设计、分祈、文档等的全面理解。但在很多情况 下,由于各类文档的丢失,只能黠源代码进行理解。印程序理解。 ( 5 ) 软件过程 敬件过程又称为软件生存属期过程是一个将用户需求转化为软件 系统所需要的活动的集合。一个窿好定义的软件过程对软件开发的质量 和效率有着重要影响。当前。软件过程研究以及企业的软件过程改善已 成为软件王程界的热点,并已出觏了一些实用的过程楼型标准,如c m m 等。 要强调的是,基于复甩静牵艇粹开发过程和传统的一切从头开始的软 件开发过程有着本质性的不同,探讨适用_ 于软件复甩筋软件过程是一个 迫切雪勺闯题。目前比较成熟、流行的软件开发过程有:基于构件的软 件开发过程c b s d ( c o m p o n e n t - l 撕e ds o f t w a r ed e v e l o p m e n t ) ;r a t i o n a l 公 司搀出的甩例驱动的、以软件橼鳍构为中心的、反复迭代和增量的统 一软件开发过程。“ ( 6 ) 开放系统 开放系统技术的萋本原则是鑫系统的开发中使用接口标准,同时使 用符合接口标准的实现。这些为系统开发中的设计决策,特别是为系统 的演化提供了一个稳定的基础,同时,也为系统闯的互操作提供了保证。 开放系统技术具有在保持蘩绕效搴羽葡提下降低开发成本、缩短开发周 期的可能。对于稳定的接口标准钧依赖,使得开发系统更容易适应技术 的进步。当葡,以解决异构环境申的互操作为目标的分布对象技术是开 太原理工太学硕士研究生毕业论文 放系统技术中新的主流技术。 开放系统技术为软件复用提供了良好的支持。特别是分布对象技术 使得符合接口标准的构件可以方便的以“即插即用”的方式组装到系统 中,实现黑盒复用。这样,在符合接口标准的前提下,构件就可以独立 地进行开发,从而形成独立的构件制造业。 ( 7 ) c a s e 技术 随着软件工程的思想的日益深入人心,以计算机辅助开发软件为目 标的c a s e ( c o m p u t e ra i d c ds o f t w a r ee n g i n e e r i n g ) 技术逐渐为软件开发人 员所接受,c a s e 工具和c a s e 环境得到越来越广泛的应用。c a s e 技术对 软件工程的很多方面,如分析、设计、代码生成、测试、配置管理、再 工程、软件过程、项目管理等,都可以提供有力的自动或半自动支持。 c a s e 技术的应用,可以帮助软件开发人员控制软件开发中的复杂性,有 利于提高软件开发的效率和质量。 软件复用同样需要c a s e 技术的支持。c a s e 技术中与软件复用相关 的主要研究内容包括:在面向复用的软件开发中,可复用构件的抽取、 描述、分类和存储;在基于复用的软件开发中,可复用构件的检索、提 取和组装;可复用构件的度量等。 ( 8 ) 非技术因素 除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如: 机构组织如何适应复用的需要;管理方法如何适应复用的需要:开发人 员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产 权问题;保守商业秘密的问题:复用前期投入的经济考虑;标准化问题 等等。这些都是软件复用成功实施所要解决的社会问题。 1 3 3 实现软件复用的困难 在早期人们曾希望,通过软件复用可使软件生产力和软件产品的质 量得到根本性的提高,就象计算机硬件或其它行业的生产那样,通过对 。已有技术工艺和零部件的复甩而大规模、大批量地生产质量稳定的产 太藤饔芏菇学颟壬研绳生毕业语文 品。现在看来,这一目标还远未达到。究其原因,软件复用的困难包括 技术医索、人的因素、管理因素、教育因素、法律因索等。本节将从这 些因素出发,探讨软件复用被认为特掰困难的一些深层原因。 ( 1 ) 技术因素。 构件与应用系统之间韵差异:一些开发者开发的构件,要做到在 被勇一些人开发的系统中使阑时正好合适,从内容要4 对外接口都恰好相 符,或者作很少的修改,这不是一件简单韵事;构件要达到一定的数量, 考德支持霄鬏的餐用,而大量构件钧获薅需要有搬高豹投入和长期的积 累;发现食用构件的豳难,当构件达弼较大鹃数量讨,使用者要从中找 到一个自已_ 懋婪的构件,并断定它确实是自己需要的,不是一件轻而易 举韵事;基于复用的软件开发方法和软件过程是一个新的研究实践领域, 需要一些新的理论、技术及支持环境,目前这方蘅韵研究成果和实践经 验裸不够充分。 不赣撼裔的复用要求:软件复用所关注的焦点总是随着软件开发 水警! 自勺_ 箍鬻丽土升封蔓j 离钓糖繁层次。在使用机器语言或汇编语言编程 的时代,一些需通过大量的编程工作才能解决的问题,拿到现在条件下 胃 墨写不多船托行程序就能解决。诸如库函数的调用、源程序的编译与 遘揍、网缮高凰协议豹使甩、系统调用和宏定义、头交件的弓 用、l 语句麴嵌a 、瓣程序包含等等,无不含豢对已有的低层软件的复用。但 是当人们在较低的抽象层次上所关注盼复嗣阎题都一个个地得到解决 时,开发人员就把这些解决办法看作理所当然的基本开发手段。他们要 在瓣的屡次上面临更复杂的软件开发任务,所以总是感到仍然有大量 的闷题需要自已动手解决。复尉技术的进步似乎永远不能满足水涨船高 的复翔追求,较低屡次上的复用所带来的好处很快就被较高层次上的问 鼹所掩盏,甚至不再被看释复用。例如,一个用当前的高级语言编写的 程亭,通遭编译系统、函数痒等基础敬件的支特,对二进制代码的复用 哥以说达到了1 0 0 ;但因为它宠全是人工编写的,所以又可以说它的 复用比例为零。如此明显的反羞,正是由于考虑阎题的抽象层次不同而 引起的。这种情况在其它工业产品生产中是不太常见的。 太原理工大学硕士研究生毕业论文 识别复用机会:识别复用机会是一个主要的技术问题。软件工程 师可能知道类似的软件已经编写过,但如何找到它是一个问题。复用库 有助于解决这个问题。当找到个构件时,可能很难判断它是否真的满 足自己的需求,要进行修改也是很困难的。不少看上去可复用的软件实 际上是不可复用的,因为它可能有不适当的接口、隐含的依赖、不可改 变的功能限制等,或者仅仅是由于它难于理解而使得复用者宁愿重新开 始开发。n a t o 的软件复用标准有助于避免这些问题。 领域的广阔性:尽管人们常说的“软件领域”是指软件自身的研 究与开发所涉及的问题范围,但是软件所要解决的问题,即软件的应用 领域则是十分广阔的。在当今的世界,几乎找不到哪个领域不可以成为 软件的应用领域。当然,一个软件通常只解决一个应用领域的闷题,但 是软件作为一个总体概念,则面临现代文明社会的几乎每一个领域。这 种情况是其它工业产品的生产所难以比拟的。软件应用领域的广阔性造 成了软件的多样性,而不同应用领域的软件之间的差别是相当大的。这 种情况使软件开发者很难构造出对各种软件都通用的大批可复用构件。 ( 2 ) 人的因素。 软件开发是一种创造性工作,开发者常常不愿复用别人的软件。软 件工程师喜欢创造性的劳动,复用软件时就会感到创造性的消失。有效 的管理、鼓励以及培训等措施有助于让工程师们将创造性的视角转向更 大的“构造块”一可复用软件构件。 ( 3 ) 管理因素 在软件生产的管理中,从以往沿习了一些与复用的目标很不协调的 制度与政策,对软件开发行为进行评价和度量总是很困难的,怎样才算 是一个“好”软件? 评价的标准很多。已经有一些比较有效的管理性方 法,但在复用环境中这些传统的度量方法还需要修改,在这方面几乎没 有什么经验。另外,不是在项目开始时自觉她向着造就可复用构件的方 向努力,而是在它完成之后,看看是否能从中找到一些可复用构件。这 些弊端妨碍了复用水平的提高和复用规模的扩大。 ( 4 ) 教育因素 太鞭避工太学碗士矾究生毕业论文 在软件科学技术的教育与培训中,缺乏关于软件复用的内容,很少 有这方面的专门教材及课程,即使在其它教材及课程中提到软件复用, 其篇幅及内容也相当薄弱。 ( 5 ) 法律因素 在法律上还存在一些闷题,例如,一个可复用构件在某个应用系统 中出现了锚误,丽构件盼开发者和应用系统的开发者不是一个厂商,那 么责任应该由谁负? 此外,在版权、政府政策等方面也存在一些悬而未 决的问题。另外,软件产品是一种精神产品,它的产生几乎完全是人脑 思维的结果,它的价值,也几乎完全在于其中所凝结豹思想:它的物质 载体的制造过程与价值含爨都燕徽不足邀的。物矮产品的生产受到人类 制造能力的鼹利,软件却没有这种限制,只要入的大脑能想到的问题, 都可能要求软件去解决,人脑霹胀思考的问题豹复杂性,远远超出了人 袭能错4 造静魏质产晶熊复杂性,因而使软件的复用更为困难。 以上讨论韵是软件复甩钓一些根本牲困难。分析这些困难的目的, 不是想得i 羹i 一种悲溉鹃结论,认为软件复用没有前途,而是要说明以下 几点见解: 要实事求是她估量软僻复用的前景。软件复用技术的每一个进步,都 会使较件生产力和较髂震蠢褥劐提赢。但是不能指望神话般的奇迹出 现。至少在可预见酶来来若千年内,一般的软件生产还不能象组装一 台计算机那样达到“鼢插即用”的程度,除非在极狭窄的特定应用领 域中才有这种可能。 公正地评价复用技术的研究与实践所取得的成绩。不能完全按批量生 产的硬件产品的复用程度来衡量软件复用,因为它们之间的类比本来 就不太准确:此外,不能只从一个静止的时刻看软件开发中复用部分 与人工开发部分的比例,还要从历史上进行纵向的比较,看当前的软 件生产与以往相比有多少提高获益子软件复用。 把软件复甩的研究重点,转向解决各个特定应用领域的软件复用问 题。这将比面对所有领域构涟通用的可复甩构件更有可能取得成绩。 本课题即是研究特定领域豹软件复用问题,探索基于复用的领域应用 太原理工大学硕士研究生毕业论文 系统的开发过程。 1 4 面向对象方法与软件复用的关系 1 4 1 面向对象方法对软件复用的支持 支持软件复用是人们对面向对象方法寄托的主要希望之一,也是这 种方法受到广泛重视的主要原因之一。面向对象方法之所以特别有利于 软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。“” 面向对象方法从面向对象的编程发展到面向对象的分析与设计,使 这种方法支持软件复用的固有特征能够从软件生命周期的前期阶段就开 始发挥作用,从而使面向对象方法对软件复用的支持达到了较高的级别。 与其它软件工程方法相比,面向对象方法的一个重要优点是,它可以在 整个软件生命周期达到概念、原则、术语及表示法的高度一致。这种一 致性使得各个系统成分尽管在不同的开发与演化阶段有不同的形态,但 可具有贯穿整个软件生命周期的良好映射。这一优点使面向对象方法不 但能在各个级别支持软件复用,而且能对各个级别的复用形成统一的、 高效的支持,达到良好的全局效果。做到这一点的必要条件是,从面向 对象软件开发的前期阶段就把支持软件复用作为一个重点问题来考虑。 运用面向对象的分析方法所定义的对象类具有适合作为可复用构件的许 多特征,其结果对问题域的良好映射,使同类系统的开发者容易从问题 出发,在已有的结果中发现不同粒度的可复用构件。支持软件复用的面 向对象概念与原则是:对象与类、抽象、封装、继承与一般一特殊结构、 聚合与整体一部分结构、粒度控制、多态性。以下分别加以讨论。 对象与类:面向对象方法用对象来描述问题域中的事物,并用对象类 作为同种对象的抽象表示。类是系统的基本构成单位,它很符合可复 用构件所应具备的那些特性:完整性对象类所包含的属性与服务 完整地表达了需要关心的事物静态特征和动态特征。独立性类与 它外部的事物之间有明确的界限和较少的接口。可标识性类的命 名与问题域中的事物概念吻合。一般性对象类是对实际事物的映 射,软件开发者髓意发挥的余地很小。当其它系统中遇到同类事物时, 用同样的对象类进行描述的可能性很大。 抽象:面向对象方法同样也使用了抽象的基本原贝蛙。抽象意味着忽略 事物的某些差异而提取其共同特征。这一原则也正是定义可复用构件 时所需遵循的。一个软件构件只有体现某种程度的抽象才能具有一般 性,才能被用于细节互异的多个系统。 封装:蕊向对象方法的封装原则把对象的属性与服务结合为一个完整 的实体,屏蔽了对象的内部细节,对外则保留有限韵接口。因此,它 使对象类具有完整性、独立性等有益于复用的性质。 继承与一般一特殊结构:通过继承形成的一般特殊结构体现了不同层 次的抽象。其中的类适应于不同的复用范围。低层钓类含有较多的信 息;高层的类可在更广的范圈内复用。根据这一原理,在一个具体系 统的开发中可以制造一些对同一领域豹其它系统都可复用的一般类 构件。疆承也是使用可复用构件的一种有效方式:如果一个可复用构 件只是从一般意义上描述了某种事物或解决了某个闯题,但缺乏某些 具体细节,可以把它作为一般类使用,通过对它的继承而定义系统中 的特殊类。 聚合与整体一部分结构:一个庞大的软件构件能被复用的机会将是很 小的。但是其中的某些局部霹能宥很强的可复用性运用聚合原则, 可以把一个难于复用的大的较件成分处理为由若干部分对象构成的 整体对象,使其中的某些部分对象成为可复用性较强豹构件。从构件 使用者的角度看,聚合也是实现复用的一种有效方式。 粒度控翻:在面向对象方法中运用的比对象和类粒度更大的概念,无 论采用“主题”、“子系统”、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五官护理的质量控制
- 叙事护理:护理实践中的跨文化沟通
- led课程设计心得
- vb课程设计 健身
- 交通闸施工方案(3篇)
- 喜迎年会活动方案策划(3篇)
- 庙会活动团建策划方案(3篇)
- 平原过年活动策划方案(3篇)
- 外墙施工方案图片(3篇)
- C++图书管理系统实现课程设计
- AIGC发展研究4.0版本
- DB32∕T 4331-2022 临床冠脉定量血流分数(QFR)检查技术规范
- 眼睑炎护理查房
- TCHES65-2022生态护坡预制混凝土装配式护岸技术规程
- 项目3-识别与检测电容器
- 二氧化碳排放计算方法与案例分析
- 美的微波炉EG823LC3-NS1说明书
- 老年骨折术后谵妄护理
- 大健康趋势下的干细胞技术发展与应用
- DB6107∕T 70-2025 汉中市学校食堂食品安全管理规范
- 河南专升本高等数学2012-2021年真题和答案解析
评论
0/150
提交评论