第1章 软件工程概论 1
1.1 软件危机 1
1.2 软件工程 3
1.3 软件生命周期 4
1.4 软件过程 5
习题 8
习题解答 10
第2章 结构化分析 13
2.1 可行性研究的任务 13
2.2 可行性研究过程 13
2.3 需求分析的任务 14
2.4 与用户沟通的方法 14
2.5 分析建模与规格说明 15
2.6 实体-联系图 16
2.7 数据流图 16
2.8 数据字典 17
2.9 状态转换图 17
2.10 其他图形工具 18
2.11 验证软件需求 19
2.12 成本&效益分析 19
2.13 形式化说明技术 20
习题 21
习题解答 23
第3章 结构化设计 41
3.1 软件设计的任务 41
3.2 分析与设计的关系 42
3.3 设计原理 43
3.4 度量模块建立性的标准 45
3.5 启发规则 46
3.6 描绘软件结构的图形工具 46
3.7 面向数据流的设计方法 46
3.8 人机界面设计 48
3.9 过程设计 51
3.10 过程设计的工具 51
3.11 面向数据结构的设计方法 53
3.12 程序复杂程度的定量度量 54
习题 55
习题解答 59
第4章 结构化实现 79
4.1 编码 79
4.2 软件测试基础 80
4.3 单元测试 81
4.4 集成测试 82
4.5 白盒测试技术 84
4.6 黑盒测试技术 86
4.7 调试 88
4.8 软件可靠性 89
习题 92
习题解答 94
第5章 维护 105
5.1 软件维护的定义 105
5.2 软件维护的特点 106
5.3 软件维护过程 107
5.4 软件的可维护性 108
5.5 预防性维护 109
5.6 软件再工程过程 110
习题 111
习题解答 112
第6章 面向对象方法学引论 117
6.1 面向对象方法学概述 117
6.2 面向对象的概念 121
6.3 面向对象建模 123
6.4 对象模型 124
6.5 动态模型 126
6.6 功能模型 126
6.7 3种模型之间的关系 128
习题 129
习题解答 130
第7章 面向对象分析 137
7.1 面向对象分析的基本过程 137
7.2 需求陈述 138
7.3 建立对象模型 139
7.4 建立动态模型 142
7.5 建立功能模型 144
7.6 定义服务 144
习题 145
习题解答 146
第8章 面向对象设计 151
8.1 面向对象设计的准则 151
8.2 启发规则 152
8.3 软件重用 153
8.4 系统分解 155
8.5 设计问题域子系统 156
8.6 设计人机交互子系统 157
8.7 设计任务管理子系统 157
8.8 设计数据管理子系统 158
8.9 设计类中的服务 159
8.10 设计关联 159
8.11 设计优化 160
习题 161
习题解答 162
第9章 面向对象实现 171
9.1 程序设计语言 171
9.2 程序设计风格 172
9.3 面向对象的测试策略 173
9.4 设计测试用例 174
习题 175
习题解答 176
第10章 软件项目管理 181
10.1 估算软件规模 181
10.2 估算工作量 183
10.3 进度计划 184
10.4 人员组织 186
10.5 质量保证 188
10.6 软件配置管理 188
10.7 能力成熟模型 190
习题 191
习题解答 193
附录 199
附录A 模拟试题 199
附录B 模拟试题参考答案 206
参考文献 213