第1章 软件工程的概念 1
1.1软件的概念 1
1.2软件危机及其解决思路 2
1.3软件工程 3
1.4生存周期模型 5
1.4.1软件生存周期各阶段的基本任务 5
1.4.2几种生存周期模型 6
1.4.3统一软件开发过程 8
1.4.4与模型相应的知识体系的形成 8
1.5优秀软件的属性 9
1.6内容总结 10
习题1 10
第2章 统一软件开发过程(RUP)与统一建模语言(UML) 11
2.1软件开发的几个指导原则及模型的概念 12
2.2统一软件开发过程(RUP) 13
2.2.1统一过程概述 13
2.2.2统一过程的四个工作阶段 14
2.2.3统一过程的五个核心工作流 15
2.2.4统一软件开发过程的生命周期 16
2.2.5RUP开发过程的特点 17
2.3UML概述 20
2.4UML结构 22
2.4.1UML中的事物 23
2.4.2UML中的关系 25
2.4.3用UML对系统建模 26
2.5UML中的图 28
2.5.1UML规则 28
2.5.2类图 32
2.5.3对象图 33
2.5.4用例图 33
2.5.5顺序图 35
2.5.6协作图 36
2.5.7状态图 37
2.5.8活动图 39
2.5.9构件图 41
2.5.10实施图 42
2.5.11绘制UML图 43
2.6内容总结 45
习题2 45
第3章 软件过程的管理与改进 47
3.1软件过程管理与改进概述 48
3.1.1软件过程的概念 48
3.1.2软件过程改进的实际意义 48
3.1.3软件过程建模与软件过程改进的理论与方法 49
3.1.4过程改进的模式与体系 50
3.1.5过程改进的原则和步骤 50
3.1.6过程改进活动的组织与实施 51
3.2度量软件过程 52
3.3能力成熟度模型CMM 53
3.4个体软件过程PSP 57
3.4.1个体软件过程框架 57
3.4.2个体软件过程策略和方法 58
3.5团体软件过程TSP 60
3.6内容总结 61
习题3 61
第4章 项目可行性分析与软件需求分析 62
4.1可行性研究和需求分析的任务 62
4.2项目的可行性分析 63
4.3需求分析方法 65
4.4结构化需求分析与RUP需求分析比较 72
4.5RUP获取用户需求实例 73
4.6内容总结 76
习题4 76
第5章 系统分析与设计 77
5.1几种常用的体系结构 78
5.2结构化概要设计 79
5.2.1概要设计的目的和任务 79
5.2.2概要设计的过程 80
5.2.3概要设计的工具、方法和结果 84
5.3结构化详细设计 86
5.4RUP的分析与设计 87
5.4.1RUP系统分析和设计 87
5.4.2RUP系统分析与设计实例 88
5.5结构化方法与面向对象方法特点比较 93
5.6内容总结 93
习题5 93
第6章 系统实现 94
6.1选择一种合适的程序设计语言 94
6.1.1几种不同程序设计语言的特点 95
6.1.2选择不同的程序设计语言 96
6.2编码风格——程序员个人修养 97
6.2.1程序的版式 97
6.2.2输入/输出 99
6.3程序效率 99
6.4程序的安全性 100
6.5内容总结 103
习题6 103
第7章 软件测试 104
7.1软件测试概述 105
7.1.1软件错误的根源 105
7.1.2软件测试在软件项目中的地位 106
7.1.3软件测试基础与软件测试策略 107
7.1.4测试成熟度、测试过程及测试生命周期的模型 108
7.1.5测试工具与自动测试 109
7.2软件测试的基本原理与技术 110
7.2.1白盒与黑盒原理 110
7.2.2覆盖率 110
7.2.3动态测试与静态测试 112
7.2.4程序分析技术 113
7.2.5测试分析方法与测试设计技术 113
7.2.6自动测试生命周期方法学 115
7.2.7测试工具及其分类 115
7.3需求测试与设计测试 117
7.4单元测试、集成测试与系统测试 118
7.4.1单元测试 119
7.4.2集成测试 121
7.4.3系统测试 122
7.5测试团队与角色 123
7.6内容总结 124
习题7 124
第8章 软件配置管理与软件维护 125
8.1软件配置管理 125
8.1.1软件配置项与基线 126
8.1.2软件配置管理的组织与计划 126
8.1.3软件配置管理过程 127
8.1.4配置管理工具 129
8.2软件维护 129
8.2.1软件维护的基本内容 129
8.2.2软件维护的类型 130
8.2.3软件维护代价 130
8.2.4软件维护实施 131
8.2.5程序修改 132
8.2.6软件的可维护性 133
8.2.7软件再工程 134
8.3内容总结 135
习题8 135
第9章 软件项目管理 136
9.1项目管理的常见概念 137
9.2项目计划 138
9.3项目监控 139
9.4软件质量管理 141
9.4.1软件质量的基本问题 141
9.4.2如何提高软件质量 142
9.4.3全面质量管理 143
9.5软件外包管理 143
9.6软件项目的人员管理 144
9.7项目结项管理 146
9.8内容总结 147
习题9 147
实例A 应用于个人的RUP实例——计时项目开发过程 148
实例B 需求规格说明书例 157
实例C 概要设计说明书例 167
实例D 详细设计说明书例 176
实例E 一个完整的测试计划 181
实例F 面向对象软件设计说明书例 188
实例G 综合实训 198
参考文献 200