1 / 239
文档名称:

《软件复用技术:在系统开发过程中考虑复用》软件工程.pdf

格式:pdf   大小:9,258KB   页数:239页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《软件复用技术:在系统开发过程中考虑复用》软件工程.pdf

上传人:Q+1243595614 2018/2/5 文件大小:9.04 MB

下载得到文件列表

《软件复用技术:在系统开发过程中考虑复用》软件工程.pdf

文档介绍

文档介绍:下载
第一部分
复用综述
下载
第 1 章
复用:一种软件模式
复用与对象技术的密切关系
设想一下,如果出现一种仅谈论对象技术而从不提及复用(re u s e)的情形,那么这将是非
常少见的。复用经常被看作为从对象技术中所寻求的最大益处之一。例如,如图 1 - 1所示,在最
近一次对象技术讨论会上,出席者们将缩短产品上市时间并将复用作为采用对象技术的头等原
因 1。对于软件组织来讲,因为软件工业的发展趋势是逐步地采用对象技术作为其主要的软件开
发方法,所以它们也在逐步地提高对复用的兴趣。许多组织已经选择使用面向对象的方法作为
它们的开发方法,因为这能使它们取得更多的复用。毫无疑问,这些组织如果想成功地利用对
象技术,就必须掌握复用。
1995年,在Boston Object World会议中的调查结果
缩短产品上市时间
增加复用
提高质量
提高生产率
减少维护成本
图1-1 采用对象技术的原因
软件复用( s o f t w a re re u s e)是一种由预先构造好的、为复用目的而设计的软件构件来建立
或者组装软件系统的过程。它的基本思想是非常简单的,即放弃那种原始的、一切从头开始的
软件开发方式,而利用复用,由公共的可复用构件来组装新的系统,这些可复用构件包括对象
类(object class)、框架(f r a m e w o r k)或者软件体系结构等。表 1 - 1列出了不同类型可复用构件
的例子。
表1-1 不同类型可复用构件的例子
在位于不同抽象层次、不同大小的软件组成部分或者构件,以及文档交付方面,不同类型可复用构件的例子包括:
—应用包
—子系统
—数据类型定义
—设计(例如,像分解视图等设计模型)
—规格说明(例如,商务模型)
4部分第一部分复用综述
下载
(续)
—代码
—文档
—测试用例和测试数据
在面向对象开发中,不同类型可复用构件的例子包括:
—应用框架(例如,一般化的设计和代码框架)
—用例(例如,利用用户/外部代理在对话框中表示系统要完成的一组相关的动作序列)
—商务对象类(例如,高层对象类)
—分析和设计模型(例如,对象模型、系统操作模型、对象交互图、类的继承层次结构)
—类定义(例如,类内部结构的描述和该类在继承树中的位置)
—基本对象类(例如,底层的类,像日期类和字符串类等)
—类库(例如,一组支持某一领域的相关类的组合,像图形用户界面和数据库等)
—方法(例如,类的服务或者类的行为)
—测试包(例如,测试用例、测试数据和预期结果)
—函数(例如,程序模块)
—系统体系结构(例如,高层设计)
—文档(例如,分析文档和设计文档)
—项目、测试和实施计划的框架(例如,建立项目计划的格式等)
复用的潜力是巨大的,因为每一个新应用系统的大部分都可以由可复用构件组装而成,但
需要的一个前提是上述可复用构件能够被预先确定、建立,并且容易被系统开发人员获取。
来自得克萨斯州 I r v i n g的G T E电话运营公司认为,复用的潜力是非常巨大的。它们计划在三
至五年的时间内,将使其应用系统的 8 0 %至9 0 %由库中可复用的对象构件组装而成 2。
对象技术许诺能按时地向客户交付节省成本的、高质量的和具有柔性的软件系统。然而,
理解到这一点是十分重要的,即只有通过复用,对象技术才能够带来上述益处。另外,我们必
须懂得使用对象技术并不会导致自动的复用。一个常见的误解是,如果我们使用了对象技术,
那么就等于我们在实施复用。其实对象技术和复用是两码事,尽管对象技术鼓励复用这种思想,
并且封装(e n c a p s u l a t i o n)和继承(i n h e r i t a n c e)也支持复用。而且,对于复用来讲,对象技术
既不是充分的也不是必要的。换句话说,对象技术并不是复用的前提条件。有许多没有使用对
象技术,而能成功地实施复用的例子。
复用是一门独立的学科,它应被看作为对象技术的一种必要的补充。有些人认为对象技术
对复用的依赖会超出问题的本质。引用 G T E电话公司体系结构方面的副总裁助理的话就是,“没
有复用的对象技术是一场最可怕的噩梦。如果在大的应用项目中不能得到大量复用的话,那么
这将是一场灾难” 3。那些将复用看作为面向对象开发过程中所产生的副产品的人,对复用所取
得的水平曾感到非常的失望。
惟有将上述两种强有力的技术结合起来,我们才能期望得到它们曾许诺过的巨大益处。问
题是如何将二者结合起来?对一个公司来讲,在软件开发的过程中,为了从对象技术和