描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121364013丛书名: 海军新军事变革丛书
内容简介
本书主要介绍了软件升级及维护发展的*实践方法。书中每章对于软件升级中特定的主题都给出了清晰的解释和分析,作者先从基本概念讲起,然后深入详细地讲解了软件升级的各个重要方面。这本书是软件工程师、信息技术专业人员和软件工程专业的研究生必备之书。
目 录
第1 章 基本概念及导论 ……………………………………………………………………….. 1
1.1 演化与维护 ……………………………………………………………………………… 1
1.2 软件演化模型与过程 ……………………………………………………………….. 6
1.3 再工程 …………………………………………………………………………………….. 8
1.4 遗留系统 …………………………………………………………………………………. 9
1.5 影响分析 ………………………………………………………………………………… 11
1.6 重构 ……………………………………………………………………………………….. 11
1.7 程序理解 ……………………………………………………………………………….. 12
1.8 软件复用 ……………………………………………………………………………….. 13
1.9 本书总体概述 ………………………………………………………………………… 14
1.10 参考文献 ……………………………………………………………………………………….. 17
第2 章 软件维护和演化的分类法 ……………………………………………………….. 24
2.1 概要 ………………………………………………………………………………………. 24
2.2 维护概念的类别 …………………………………………………………………….. 35
2.3 软件系统的演化 …………………………………………………………………….. 41
2.4 基于COTS 系统的维护 ………………………………………………………….. 57
2.5 总结 ………………………………………………………………………………………. 65
2.6 文献综述 ……………………………………………………………………………………….. 67
2.7 参考文献 ……………………………………………………………………………………….. 70
第3 章 演化和维护模型 ……………………………………………………………………… 76
3.1 概要 ………………………………………………………………………………………. 76
3.2 面向复用的模型 …………………………………………………………………….. 77
3.3 闭源软件的分阶段模型 ………………………………………………………….. 80
3.4 免费开源软件的分阶段模型 ……………………………………………………. 83
3.5 变更微周期模型 …………………………………………………………………….. 84
3.6 IEEE/EIA 维护过程 ………………………………………………………………… 86
3.7 ISO/IEC 14764 维护过程 ………………………………………………………… 94
3.8 软件配置管理 ………………………………………………………………………. 105
3.9 变更请求工作流 …………………………………………………………………… 113
3.10 总结 …………………………………………………………………………………… 119
3.11 文献综述 ……………………………………………………………………………………… 120
3.12 参考文献 ……………………………………………………………………………………… 123
第4 章 再工程 ………………………………………………………………………………….. 126
4.1 概要 …………………………………………………………………………………….. 126
4.2 再工程的概念 ………………………………………………………………………. 127
4.3 软件再工程的通用模型 ………………………………………………………… 130
4.4 再工程过程 ………………………………………………………………………….. 136
4.5 代码逆向工程 ………………………………………………………………………. 144
4.6 用于逆向工程的技术 ……………………………………………………………. 147
4.7 反编译与逆向工程 ……………………………………………………………….. 154
4.8 数据逆向工程 ………………………………………………………………………. 155
4.9 逆向工程工具 ………………………………………………………………………. 160
4.10 总结 …………………………………………………………………………………… 164
4.11文献综述 ……………………………………………………………………………………… 166
4.12 参考文献 ……………………………………………………………………………………… 169
第5 章 遗留信息系统 ……………………………………………………………………….. 177
5.1 概要 …………………………………………………………………………………….. 177
5.2 包装 …………………………………………………………………………………….. 178
5.3 迁移 …………………………………………………………………………………….. 185
5.4 迁移规划 ……………………………………………………………………………… 186
5.5 迁移方法 ……………………………………………………………………………… 192
5.6 总结 …………………………………………………………………………………….. 206
5.7 文献综述 ……………………………………………………………………………………… 207
5.8 参考文献 ……………………………………………………………………………………… 208
第6 章 影响分析 ……………………………………………………………………………….. 211
6.1 概要 ……………………………………………………………………………………… 211
6.2 影响分析过程 ………………………………………………………………………. 213
6.3 基于依赖的影响分析 ……………………………………………………………. 222
6.4 波及效应 ……………………………………………………………………………… 225
6.5 变更传播模型 ………………………………………………………………………. 230
6.6 总结 …………………………………………………………………………………….. 234
6.7 文献综述 ……………………………………………………………………………………… 236
6.8 参考文献 ……………………………………………………………………………………… 238
第7 章 重构 …………………………………………………………………………………….. 242
7.1 概要 …………………………………………………………………………………….. 242
7.2 重构过程中的活动 ……………………………………………………………….. 244
7.3 重构的形式化 ………………………………………………………………………. 251
7.4 其他重构的例子 …………………………………………………………………… 257
7.5 软件重组的准备工作 ……………………………………………………………. 259
7.6 总结 …………………………………………………………………………………….. 268
7.7 文献综述 ……………………………………………………………………………………… 269
7.8 参考文献 ……………………….
1.1 演化与维护 ……………………………………………………………………………… 1
1.2 软件演化模型与过程 ……………………………………………………………….. 6
1.3 再工程 …………………………………………………………………………………….. 8
1.4 遗留系统 …………………………………………………………………………………. 9
1.5 影响分析 ………………………………………………………………………………… 11
1.6 重构 ……………………………………………………………………………………….. 11
1.7 程序理解 ……………………………………………………………………………….. 12
1.8 软件复用 ……………………………………………………………………………….. 13
1.9 本书总体概述 ………………………………………………………………………… 14
1.10 参考文献 ……………………………………………………………………………………….. 17
第2 章 软件维护和演化的分类法 ……………………………………………………….. 24
2.1 概要 ………………………………………………………………………………………. 24
2.2 维护概念的类别 …………………………………………………………………….. 35
2.3 软件系统的演化 …………………………………………………………………….. 41
2.4 基于COTS 系统的维护 ………………………………………………………….. 57
2.5 总结 ………………………………………………………………………………………. 65
2.6 文献综述 ……………………………………………………………………………………….. 67
2.7 参考文献 ……………………………………………………………………………………….. 70
第3 章 演化和维护模型 ……………………………………………………………………… 76
3.1 概要 ………………………………………………………………………………………. 76
3.2 面向复用的模型 …………………………………………………………………….. 77
3.3 闭源软件的分阶段模型 ………………………………………………………….. 80
3.4 免费开源软件的分阶段模型 ……………………………………………………. 83
3.5 变更微周期模型 …………………………………………………………………….. 84
3.6 IEEE/EIA 维护过程 ………………………………………………………………… 86
3.7 ISO/IEC 14764 维护过程 ………………………………………………………… 94
3.8 软件配置管理 ………………………………………………………………………. 105
3.9 变更请求工作流 …………………………………………………………………… 113
3.10 总结 …………………………………………………………………………………… 119
3.11 文献综述 ……………………………………………………………………………………… 120
3.12 参考文献 ……………………………………………………………………………………… 123
第4 章 再工程 ………………………………………………………………………………….. 126
4.1 概要 …………………………………………………………………………………….. 126
4.2 再工程的概念 ………………………………………………………………………. 127
4.3 软件再工程的通用模型 ………………………………………………………… 130
4.4 再工程过程 ………………………………………………………………………….. 136
4.5 代码逆向工程 ………………………………………………………………………. 144
4.6 用于逆向工程的技术 ……………………………………………………………. 147
4.7 反编译与逆向工程 ……………………………………………………………….. 154
4.8 数据逆向工程 ………………………………………………………………………. 155
4.9 逆向工程工具 ………………………………………………………………………. 160
4.10 总结 …………………………………………………………………………………… 164
4.11文献综述 ……………………………………………………………………………………… 166
4.12 参考文献 ……………………………………………………………………………………… 169
第5 章 遗留信息系统 ……………………………………………………………………….. 177
5.1 概要 …………………………………………………………………………………….. 177
5.2 包装 …………………………………………………………………………………….. 178
5.3 迁移 …………………………………………………………………………………….. 185
5.4 迁移规划 ……………………………………………………………………………… 186
5.5 迁移方法 ……………………………………………………………………………… 192
5.6 总结 …………………………………………………………………………………….. 206
5.7 文献综述 ……………………………………………………………………………………… 207
5.8 参考文献 ……………………………………………………………………………………… 208
第6 章 影响分析 ……………………………………………………………………………….. 211
6.1 概要 ……………………………………………………………………………………… 211
6.2 影响分析过程 ………………………………………………………………………. 213
6.3 基于依赖的影响分析 ……………………………………………………………. 222
6.4 波及效应 ……………………………………………………………………………… 225
6.5 变更传播模型 ………………………………………………………………………. 230
6.6 总结 …………………………………………………………………………………….. 234
6.7 文献综述 ……………………………………………………………………………………… 236
6.8 参考文献 ……………………………………………………………………………………… 238
第7 章 重构 …………………………………………………………………………………….. 242
7.1 概要 …………………………………………………………………………………….. 242
7.2 重构过程中的活动 ……………………………………………………………….. 244
7.3 重构的形式化 ………………………………………………………………………. 251
7.4 其他重构的例子 …………………………………………………………………… 257
7.5 软件重组的准备工作 ……………………………………………………………. 259
7.6 总结 …………………………………………………………………………………….. 268
7.7 文献综述 ……………………………………………………………………………………… 269
7.8 参考文献 ……………………….
前 言
前言
人们已经见证了计算机软件业30 年的成长。在21 世纪,这个行业正致力于修复现有软件应用程序的问题,并为其增加新的功能。事实上,和实际的软件开发相比,软件维护的资源花费会更多。
软件开发与维护的失衡正在为软件外包企业提供新的商业机会。人们对软件演化和维护(Software Evolution And Maintenance,SEAM)的方法研究和工具开发产生了极大的兴趣。
20 世纪90 年代,软件行业规模很小,学术界只为专业院校的本科学生开设一门名为“软件工程”的综合性课程,该课程主要介绍有关软件开发和维护方面的基础理论知识。虽然几十年来软件维护已成为经典软件工程文献的一部分,但软件维护并没有被广泛纳入高等院校的教育课程。一些高等院校已经开始为软件工程提供一种教育方案,包括四门课程:需求规约、软件设计、软件测试与质量保证、软件演化与维护。此外,一些高等院校的本科与研究生课程已经引入了与软件工程相关的课程。
我们对软件演化和维护这一主题的调查表明,这一领域有大量的工作成果,包括研究论文、技术报告和工作组的报告等。此外,有许多优秀的书籍,专注于软件维护和演化过程。
然而,目前没有任何一本书能全面地提供相关素材。没有一本内容全面的教科书来阐述软件演化和维护方面的问题,为教师的教学和学生的学习带来了一些困难。例如,教师准备讲课时需要参考许多资料。因此,教师需要花费较多的时间,而学生也无法获得相应的知识。我们的目标是为学生和教师引入覆盖软件演化开发基础和业界广泛使用的维护实践活动的一套全面的教学用书。我们希望为学生提供一本涵盖软件演化与维护大部分主题、内容详尽的教科书,使学生掌握其中的内容,能够处理SEAM 问题。
本书主要介绍软件演化模型基础和通用的维护实践方法。本书可以作为软件工程、计算机科学和计算机工程专业学生的指导用书,也可以作为计算机行业从业人员的参考书。
读完这本书,读者会对以下主题有深入的了解:
??软件演化规律及控制手段。
??演化和维护模型,包括维护商业货架系统。
??迁移遗留信息系统的再工程技术和过程。
??影响分析和变更传播技术。
??程序理解和重构。
??复用和领域工程模型。
每章都有实例讨论,论述针对软件演化过程中某一主题的清晰知识。首先解释主题的基本概念,为理解提供基础,然后扩展内容,深入讨论重要环节。
这本书由几个独立的SEAM 主题有机组合而成。第1 章~第3 章提供关于主题的基本知识。第4 章介绍了再工程、逆向工程和数据逆向工程的基本概念。第5 章讨论了系统再工程之后的迁移。第6 章介绍影响分析的过程与波及效应。第7 章~第9 章分别介绍重构、程序理解、复用和领域工程的基本概念与模型。
这本书可以作为SEAM 入门课程的教科书。如果本书在SEAM 入门课程中使用,最好涵盖所有章节。如果本书作为软件工程课程的推荐教材,以下部分可以帮助学生掌握软件演化与维护的基本概念。
??第1 章:全部
??第2 章:2.1、2.3
??第3 章:3.1、3.2、3.3、3.4、3.5、3.8
??第4 章:4.1、4.2
??第5 章:5.1、5.2
??第6 章:全部
??第7 章:7.1、7.2
??第8 章:8.1、8.2
??第9 章:9.1
人们已经见证了计算机软件业30 年的成长。在21 世纪,这个行业正致力于修复现有软件应用程序的问题,并为其增加新的功能。事实上,和实际的软件开发相比,软件维护的资源花费会更多。
软件开发与维护的失衡正在为软件外包企业提供新的商业机会。人们对软件演化和维护(Software Evolution And Maintenance,SEAM)的方法研究和工具开发产生了极大的兴趣。
20 世纪90 年代,软件行业规模很小,学术界只为专业院校的本科学生开设一门名为“软件工程”的综合性课程,该课程主要介绍有关软件开发和维护方面的基础理论知识。虽然几十年来软件维护已成为经典软件工程文献的一部分,但软件维护并没有被广泛纳入高等院校的教育课程。一些高等院校已经开始为软件工程提供一种教育方案,包括四门课程:需求规约、软件设计、软件测试与质量保证、软件演化与维护。此外,一些高等院校的本科与研究生课程已经引入了与软件工程相关的课程。
我们对软件演化和维护这一主题的调查表明,这一领域有大量的工作成果,包括研究论文、技术报告和工作组的报告等。此外,有许多优秀的书籍,专注于软件维护和演化过程。
然而,目前没有任何一本书能全面地提供相关素材。没有一本内容全面的教科书来阐述软件演化和维护方面的问题,为教师的教学和学生的学习带来了一些困难。例如,教师准备讲课时需要参考许多资料。因此,教师需要花费较多的时间,而学生也无法获得相应的知识。我们的目标是为学生和教师引入覆盖软件演化开发基础和业界广泛使用的维护实践活动的一套全面的教学用书。我们希望为学生提供一本涵盖软件演化与维护大部分主题、内容详尽的教科书,使学生掌握其中的内容,能够处理SEAM 问题。
本书主要介绍软件演化模型基础和通用的维护实践方法。本书可以作为软件工程、计算机科学和计算机工程专业学生的指导用书,也可以作为计算机行业从业人员的参考书。
读完这本书,读者会对以下主题有深入的了解:
??软件演化规律及控制手段。
??演化和维护模型,包括维护商业货架系统。
??迁移遗留信息系统的再工程技术和过程。
??影响分析和变更传播技术。
??程序理解和重构。
??复用和领域工程模型。
每章都有实例讨论,论述针对软件演化过程中某一主题的清晰知识。首先解释主题的基本概念,为理解提供基础,然后扩展内容,深入讨论重要环节。
这本书由几个独立的SEAM 主题有机组合而成。第1 章~第3 章提供关于主题的基本知识。第4 章介绍了再工程、逆向工程和数据逆向工程的基本概念。第5 章讨论了系统再工程之后的迁移。第6 章介绍影响分析的过程与波及效应。第7 章~第9 章分别介绍重构、程序理解、复用和领域工程的基本概念与模型。
这本书可以作为SEAM 入门课程的教科书。如果本书在SEAM 入门课程中使用,最好涵盖所有章节。如果本书作为软件工程课程的推荐教材,以下部分可以帮助学生掌握软件演化与维护的基本概念。
??第1 章:全部
??第2 章:2.1、2.3
??第3 章:3.1、3.2、3.3、3.4、3.5、3.8
??第4 章:4.1、4.2
??第5 章:5.1、5.2
??第6 章:全部
??第7 章:7.1、7.2
??第8 章:8.1、8.2
??第9 章:9.1
评论
还没有评论。