首页>参考读物>计算机科学与技术>综合

软件复用技术:在系统开发过程中考虑复用
作者 : (美)Carma McClure
译者 : 廖泰安 安志远 沈升源
出版日期 : 2003-02-01
ISBN : 7-111-11576-7
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 244
开本 : 16开
原书名 : Software Reuse Techniques: Adding Reuse to the Systems Development Process
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

软件复用是过去20年关于软件的最重要的概念。软件复用可以极大地降低软件开发的成本和复杂性。但是只有极少数的组织领悟了复用的潜在能力。人们忽略了什么呢?是将复用融入软件开发生命周期的技术。

  本书填补了这一空白。在这本书中,世界最著名的复用方面的专家对于面向对象的、基于构件的、可支持互联网的软件应用开发,给出了从计划到维护,一步步实现复用的指南。Carma
McClure在以下方面将她特有的咨询经验凝聚到实际的解决方案中:
  ◆有效地复用已存在的构件
  ◆按照复用的思想建立新的构件
  ◆识别最可能被复用的构件
  ◆复用的计划和指导就绪审计
  ◆识别应用的“系列”以提供它们自身的复用
  ◆建立可用的复用库/目录
  ◆管理复用
  本书阐述了复用如何改变软件开发过程,以及在复用的组织机构中的分工。不仅说明了如何复用源码,而且还说明了如何复用需求说明、设计、测试脚本、项目计划、文档、对象框架和其他方面,并通过案例研究详细介绍了16种不同的复用技术。成功地实现复用的组织在成本和质量方面已经取得了巨大的利益。复用正在发挥作用——你可以使它发挥作用。本书包括了这些技术和相关的验证。

图书特色

Carma McClure 博士是 Research at Extended Intelligence 公司的副总裁,这是一家提供支持软件复用的方法、工具和培训服务的以芝加哥为基地的咨询公司。作为世界知名的顾问和讲师,她已经出版了9本书,并入选 Byte 杂志在个人计算机方面世界上最有影响的领导者。在此之前她是美国西北大学凯洛格管理学院 (Kellogg School of Management, Northwestern University) 的教授,现在她负责主持IEEE复用标准委员会的软件复用生命周期过程工作组。   有关作者的进一步情况可查阅网站 http: //www.reusability.com。

图书前言

软件浪费
“不浪费则不会匮乏”历来不是软件开发者的座右铭。相反,人们提倡将在大多数软件项目中的浪费作为同类系统开发哲学的一部分。传统的软件开发把从头开始建立每个新系统看作为用户/客户服务的最好方法,而不注意和关心“软件的重复创建”出现的次数。
不必要的重复创建和在大多数软件项目中出现的资源的巨大浪费,一直没有引起人们充分的重视。无数软件项目耗费大量资源去开发的软件构件和已经存在的那些软件构件非常相似。软件的浪费是普遍存在的,因为不同的软件系统看上去相似多于差异。对软件系统的比较分析表明,通常,在多个系统中,系统功能的60%到70%是相同的。
除非进行特殊的评估,否则无论使用何种技术或建立何种应用系统,软件浪费都将继续出现。最近出现的新技术,例如软件自动化、面向对象技术和客户/服务器技术都没有改变这个事实。然而,这些新技术具有更容易从软件相似性中获得效益的优点。一些软件的相似性被预先定义并建立在软件工具中(例如在代码生成器中可复用代码的模式);另一些被建立为可复用构件,存放在软件复用库中,从而可用于开发新系统。
因为一般的软件系统是由相似的部分组成的,所以每个新的软件系统的大部分能够并将由预先定义的可复用构件组装而成。尽管软件复用常常被忽略,但它确实是解决过去几十年的软件危机问题的最好答案。
可复用构件
可复用构件可能是程序源代码,但复用更大的效益常常来自于更广泛和更高层的复用。软件需求说明、设计、测试脚本、项目计划、文档、对象框架和子程序都是可复用构件类型的例子。通常,可复用构件将产生任何可交付的软件项目。
在可复用构件类型列表中最重要的是可复用大纲,它能辅助生成各类项目文档、报告和计划。因为这些大纲能以字处理模板形式提供,所以能够快速和容易地建立它们,并且可以在复用目录中得到。其效益是不仅节省了时间,而且确保了公司标准的执行和保持了跨软件开发过程和系统的一致性。这使系统具有更高的质量,它们更易理解、维护和复用。除此之外,这类可复用构件不会影响系统开发者的创作欲望,因为文档制作不是他们乐意做的事情。这些大纲中的许多部分,可能已经存在于开发组织的某些部门中并能由所有软件开发组应用。
其他两类软件构件在可复用构件价值列表中也是重要的,它们是设计构件和测试构件。
设计构件是重要的,因为最大程度地利用复用的最好地方是在设计时期。设计构件是比编码更高级的抽象,它们不涉及特定的实现,所以更易移植和更易复用。而且,因为设计是比编码更昂贵的开发任务,复用设计可能比复用编码更能节约成本。除此之外,如果在设计和编码实现之间有某些可追溯性的话,在设计级的复用可以促成在编码级的复用。可追溯性可以由CASE工具自动地处理。关注设计构件可以解决在用不同程序设计语言编写的构件之间的差异和不相容等问题。
测试构件,诸如测试数据、测试脚本、测试用例和测试计划,也被认为是非常重要的。在某些情况下,尽管由于语言和工具不同,代码不能被复用,但测试构件可能是可复用的。复用测试构件能确保系统具有更高的测试覆盖率,其结果是得到更可靠、更可维护的系统。因为测试和设计一样是非常昂贵的任务,复用测试构件能节省大量的项目时间和资源。
复用效益
抓住复用机会能使软件生产率、质量和成本得到巨大改善。运用复用能得到的主要效益是:
提高软件生产率
缩短软件开发时间
以更少的人员去开发软件
人员、工具和方法更易于从一个项目转移到另一个项目
降低软件成本
生产更高质量的软件
改善软件系统的交互性
提供竞争优势
复用障碍
尽管复用的思想很简单,但它的实现却并不简单。今天,大多数的美国公司还没有规范的复用程序。尽管复用有和程序设计本身同样长的历史,它是保留着被认可的正确实施的好想法的软件技术,但是,和大多数好的意向一样,复用还没有真正地付诸实施。
多数软件开发者和他们的管理层关于复用的态度是,如果他们知道如何以高性价比、低风险和适宜的形式实现它,他们将实施复用。问题是他们使用的大多数软件方法学不包括复用。这些方法学没有明确的定义何时、何地和如何作为开发过程的一部分实施复用。进而,他们既不理解项目团队、用户和管理层的复用角色和职责,也不理解支持复用需要的工具。
本书的目的
本书是关于复用的。然而,它不是软件复用定义和度量概念的泛泛讨论,而是实际开展复用工作的详细说明。本书的目的是填补如何实现软件复用细节方面的空白。它是一本详细指南,一步步教导读者将复用加入到软件开发过程中(包括面向对象和传统结构化/非面向对象的过程两者),并获得复用能提供的最大效益。
本书是为任何有软件开发背景并且想学习如何实施复用驱动软件开发的专业人员准备的。
系统开发者和维护者能使用本书学习复用如何改变和简化创建和维护软件系统的工作,以及如何实施复用特有的技术。
软件方法学专家担负着选择和定义所在公司软件生命周期方法学和软件标准的重任,他们能使用本书了解支持复用的软件生命周期方法具有哪些特征。通过了解,他们将能选择为复用提供最好支持的方法学并能扩展他们公司现行的方法以支持复用。
数据库/数据仓库管理组能以本书为指南,建立一个具有分类模式的复用库/复用目录,以及建立可复用构件的验证过程。
软件项目管理者能使用本书学习如何将复用分解为项目调度、资源需求、软件生产率和质量管理,以及人力管理等因素。
软件培训者和教育者能使用本书为软件管理者和技术人员制定软件复用课程的内容。
最后,正在打算进行复用的起步工作的公司能使用本书定义和实现规范的、特定的复用程序,它覆盖了软件组、商务单位,也许最终是整个企业。
本书的结构
本书分为4个基本部分:
(1) 复用综述
(2) 复用管理技术
(3) 应用者复用技术
(4) 生产者复用技术
综述包括三章。第1章是概述,用一些公司复用的成功案例介绍了复用的情况。这些案例不仅说明了这些公司如何实施复用,而且为读者提供了有价值的复用教训和实际实施复用的宝贵建议。第1章的目的是引起读者学习更多关于如何应用复用的兴趣和激励公司认真考虑采用复用软件开发模式。
第2章开始将读者的注意力引入复用的细节。在这一章中,探讨了复用如何改变软件过程的一般问题。向读者说明复用思想和复用任务影响软件过程的地方。例如,在战略系统规划中加入战略复用计划,在系统设计评审和检查中加入复用检查。
读者将明白遵循复用模式意味着软件生命周期过程必须以复用开始,以复用结束,并且在中间的所有阶段包含复用。本章说明了三个特性,软件过程必须使这三个特性支持复用。这些特性是:
(1) 影响软件开发做出判断的复用主题。
(2) 拓宽开发的视野,从一次一个系统到多次一组相关系统所需的复用需求。
(3) 复用视图,将软件开发过程分为应用者和生产者复用两个方面。
第3章继续说明复用如何改变软件生命周期的过程,但是将读者引向细节。复用专门的技术填补了如何实施复用细节的空白。因为复用是一种不同的软件模式,复用的实施者必须掌握这些复用技术。在本书中,总共定义了16种复用技术。
本书将复用技术分为三个范畴:
(1) 管理技术,它们在公司复用程序级和系统开发项目级上辅助管理复用的实施。
(2) 应用者技术,它们在如何使用可复用构件构造软件系统和他们相关的交付方面辅助开发者。
(3) 生产者技术,它们辅助识别、建立和包装用于复用的软件构件。
除非读者理解在软件过程环境中的何处应用复用技术,否则复用技术的价值很有限。在第3章中给出了每种复用技术的简单介绍,并说明了每种技术适用于软件生命周期的哪个阶段。
本书的第二、三、四部分包含本书的主体和如何实施复用的主要内容。它包含了16章,其中的每一章都对一种复用技术进行了详细的、一步步的规程说明。本书最后的术语表指明了在“复用范畴”中这些术语如何被定义。例如,术语“领域”在复用技术中就有和在数据库技术中不同的含义。
每项技术综合介绍了业界复用专家的思想和经验。包括在每章结尾的参考文献为读者提供了这些专家发表的文章。在本书中介绍的许多技术已被工业界测试过,它们已由一些公司在实际中应用。只要可能的话,关于如何使用该技术的实例都将包含在技术说明中。
本书的结束语提醒读者正确地开展工作以实现复用,因为复用能获得效益,这些努力是值得的。
致谢
我将感谢Lucent Technologies,俄勒冈州的Blue Cross/Blue Shield,DST Systems公司,GTE Telephone Operations,Sprint和UPS公司,他们帮助我发展和应用了本书中介绍的一些复用思想和技术,并且允许我采访他们的软件管理者和员工,以学习他们复用的进取精神。
我还想感谢在1996摩根镇软件复用研究会中我工作组中的成员,他们帮助我发展了在第2章中介绍的软件过程的概念。感谢新西兰惠灵顿市维多利亚大学的Robert Biddle、Fidelity Investments的Cyrille Cobe、JP Morgan的Darrell Femandes、Texas Instruments的Ronnie Hardaway和D誂nn Hunt、西弗吉尼亚大学的Rich Kurnik、Asset的Gitika Magoon-Dalla、Reuse公司的Ruben Prieto-Diaz、Prologic公司的Jay Reddy、Nortel的Don Seto、以前在 DST Systems公司工作的Steve Shortt、Lockheed的Frank Svoboda和Texas Instruments的Kevin Terry。
特别要感谢Jeanne Follman、Mary Trimble、Kay Paine和Leissa Shahrak,感谢他们的评论和贡献。
最后,我想感谢Extended Intelligence公司的总裁William McClure,是他鼓励我写了这本书。


Carma McClure
McClure博士的e-mail地址是:73733.2037@compuserve
McClure博士的网址是:http://www.reusability.com

作者简介

(美)Carma McClure:暂无简介

译者简介

廖泰安 安志远 沈升源:暂无简介

译者序

正如本书作者所指出的,复用和程序设计本身具有同样长的历史。程序设计中的宏、过程、函数、子程序,以及对象类和软件包等都是软件复用的形式。近年来,软件复用作为一种新技术之所以越来越引起人们的重视,是因为人们认识到要想提高软件的生产效率,解决软件危机问题,软件复用是一个重要途径。软件复用的潜力还远远没有发挥出来,软件不仅可以在代码级复用,而且可以在系统的需求分析、软件设计、编码、测试以及形成文档等各个开发阶段和各个层次上实现复用。因此有必要将复用融入到软件开发生命周期过程中,使复用从单项技术或开发人员的自发行为,变成系统技术和有组织的开发过程。本书从软件开发方法学的角度介绍了在软件生命周期过程中如何考虑复用的具体规程。本书虽然写于1997年,在科技高速发展,特别是计算机技术日新月异的今天,它没有包含数据挖掘、知识管理等最新技术,但其介绍的基本内容,特别是结合实践对技术规程的具体说明,对复用的实施仍然有很强的指导作用。
软件是知识的表达。大家一定不会忘记牛顿的名言,“如果我比别人看得更远些,那是因为我站在巨人们的肩上”。人们正是通过世代的继承和积累,才不断丰富了人类的知识宝库,软件复用归根到底是知识的复用,它不但符合人们的认识规律,而且作为人脑的辅助工具必将大大促进知识的积累和发展的过程。
由于译者水平的限制,译文中难免有错误和不妥之处,欢迎广大读者批评指正。

图书目录

第1章  复用:一种软件模式 3
1.1  复用与对象技术的密切关系 3
1.2  复用的经验 5
1.2.1  延续到第二个系统 5
1.2.2  越大越好 5
1.2.3  对复用进行投资 6
1.2.4  复用不是偶然的 6
1.2.5  非正式的复用 6
1.2.6  复用技术是一门学科 7
1.2.7  从业务处理开始实施复用 8
1.2.8  复用驱动的软件开发过程 8
1.2.9  复用的代价 9
1.2.10  类库管理 11
1.2.11  几个好的超大类 11
1.2.12  在领域级别内尝试复用 11
1.2.13  复用的重组 12
1.3  如何成功地实施复用 12
1.4  参考文献 13
第2章  在过程中复用 14
2.1  复用驱动的方法是目前缺少的关键
部分 14
2.2  复用是如何改变软件过程的 15
2.2.1  复用主题 15
2.2.2  复用要求 16
2.2.3  复用视图 17
2.3  渐进式地改变 19
2.4  复用在哪些地方适合于软件过程 19
2.5  扩展战略系统规划并包含复用 20
2.6  扩展系统生命周期并包含复用 22
2.6.1  首先应该作为一个复用应用者 22
2.6.2  应用者复用微型生命周期 22
2.6.3  复用驱动的项目评审 23
2.6.4  复用项目计划 24
2.6.5  最终的复用评价 24
2.7  在系统生命周期中引入生产者复用 25
2.7.1  领域工程 27
2.7.2  将领域工程置于软件过程中 29
2.8  考查复用驱动软件过程 32
2.9  总结 32
2.10  参考文献 33
第3章  复用技术综述 34
3.1  在软件方法中加入复用技术 34
3.2  管理技术 34
3.2.1  公司级复用管理技术 34
3.2.2  项目级复用管理技术 36
3.3  应用者复用技术 37
3.4  生产者复用技术 38
3.5  复用技术介绍 40
第二部分  复用管理技术
第4章  复用就绪评估 45
4.1  概述 45
4.2  目的 45
4.3  基本原理 45
4.4  关键问题 45
4.5  推荐的工具 46
4.6  实例 46
4.7  规程 49
4.8  参考文献 70
第5章  建立公司复用计划 72
5.1  概述 72
5.2  目的 72
5.3  基本原理 72
5.4  关键问题 72
5.5  推荐的工具 73
5.6  实例 73
5.7  规程 75
5.8  参考文献 84
第6章  复用的组织 85
6.1  概述 85
6.2  目的 85
6.3  基本原理 85
6.4  关键问题 85
6.5  实例 86
6.6  规程 87
6.7  参考文献 98
第7章  推广复用 99
7.1  概述 99
7.2  目的 99
7.3  基本原理 99
7.4  关键问题 99
7.5  推荐的工具 100
7.6  实例 100
7.7  规程 103
7.8  参考文献 108
第8章  建立项目复用计划 110
8.1  概述 110
8.2  目的 110
8.3  基本原理 110
8.4  关键问题 110
8.5  推荐工具 111
8.6  规程 111
8.7  参考文献 115
第9章  复用成本/效益分析 116
9.1  概述 116
9.2  目的 116
9.3  基本原理 116
9.4  关键问题 116
9.5  推荐的工具 117
9.6  实例 117
9.7  规程 117
9.8  参考文献 122
第10章  项目复用评估 124
10.1  概述 124
10.2  目的 124
10.3  基本原理 124
10.4  关键问题 125
10.5  推荐的工具 125
10.6  规程 125
10.7  参考文献 129
第11章  复用成本/效益跟踪 130
11.1  概述 130
11.2  目的 130
11.3  基本原理 130
11.4  关键问题 130
11.5  推荐的工具 131
11.6  规程 131
11.7  参考文献 135
第三部分  应用者复用技术
第12章  选择应用包 139
12.1  概述 139
12.2  目的 139
12.3  原理 139
12.4  关键问题 139
12.5  推荐的工具 139
12.6  实例 140
12.7  规程 141
12.8  参考文献 145
第13章  选择可复用构件 146
13.1  概述 146
13.2  目的 146
13.3  原理 146
13.4  关键问题 146
13.5  推荐的工具 146
13.6  规程 147
13.7  参考文献 155
第14章  冗余检查 156
14.1  概述 156
14.2  目的 156
14.3  原理 156
14.4  关键问题 156
14.5  推荐的工具 157
14.6  实例 157
14.7  规程 159
14.8  参考文献 162
第15章  标识候选的可复用构件 163
15.1  概述 163
15.2  目的 163
15.3  原理 163
15.4  关键问题 163
15.5  推荐的工具 164
15.6  实例 164
15.7  规程 166
15.8  参考文献 170
第四部分  生产者复用技术
第16章  建立复用库 173
16.1  概述 173
16.2  目的 173
16.3  基本原理 173
16.4  关键问题 174
16.5  推荐的工具 174
16.6  实例 174
16.7  规程 176
16.8  参考文献 190
第17章  配置管理 191
17.1  概述 191
17.2  目的 191
17.3  基本原理 191
17.4  关键问题 192
17.5  实例 192
17.6  规程 193
第18章  建立可复用构件 200
18.1  概述 200
18.2  目的 200
18.3  基本原理 201
18.4  关键问题 201
18.5  实例 201
18.6  规程 202
18.7  参考文献 212
第19章  领域分析 215
19.1  概述 215
19.2  目的 216
19.3  基本原理 217
19.4  关键问题 218
19.5  推荐的工具 219
19.6  实例 220
19.7  规程 224
19.8  参考文献 231
术语表 234
后记 24

教学资源推荐
作者: 王卫红 李晓明 编著
作者: 郭晓平 朱鸣华 编著
作者: 宋宜斌、邱秀芹、潘庆先、刘霄 编著
作者: 王柯柯 主编 崔英志 黄丽丰 崔贯勋 刘恒洋 编著
参考读物推荐