导读 1
《软件开发的科学与艺术》成书的原因与过程 1
《软件开发的科学与艺术》的内容 3
本书的意义 4
第1章 全球软件产业现状、趋势与挑战 5
1.1 软件产业的网络化趋势 8
1.2 软件产业的服务化趋势 11
1.3 软件产业的全球化趋势 13
1.4 网络化、服务化、全球化趋势对中国软件产业的启示 15
第2章 现代软件开发对人才的要求 19
2.1 现代软件开发概述 21
2.2 独具魅力的微软企业文化与软件开发人员的培养 23
2.3 从差别中寻找解决方案 28
2.4 扎实的基础和创新、独立的工作能力 33
2.5 主人翁精神和团队精神 34
2.6 锲而不舍、从错误中学习的精神 46
第3章 从研究到产品 51
3.1 引言 53
3.2 技术生命周期 56
3.3 案例分析 62
3.4 练习 67
3.5 间断技术 73
3.6 基本规则 83
3.7 推荐书目 87
第4章 微软的软件开发 89
4.1 概述 91
4.2 微软的产品团队 94
4.3 微软的软件开发过程 106
4.4 想法和意图批准里程碑 112
4.5 产品计划的通过里程碑 118
4.6 范围完成/第一次使用里程碑 123
4.7 发布阶段 130
第5章 软件设计之源 141
5.1 软件设计简述 143
5.2 三个困难的问题 144
5.3 设计之源 145
5.4 错误设计之源 149
5.5 基于用户情景的设计 153
第6章 项目管理 161
6.1 项目管理简述 163
6.2 什么是项目经理 164
6.3 项目经理的行政结构与工作关系 167
6.4 为什么需要项目经理 175
6.5 项目经理每天的具体工作是什么 178
6.6 做项目经理的背景要求 182
6.7 结论 187
第7章 写好代码的十个秘诀 189
7.1 简介 191
7.2 编写代码的十大秘诀 196
7.3 结束语 228
第8章 如何提高程序的性能 231
8.1 提高性能的方法 233
8.2 案例学习 234
8.3 内存 241
第9章 软件测试基础 255
9.1 概述 257
9.2 关于Bug 266
9.3 软件测试方法和辅助工具 269
9.4 相关测试文档 276
9.5 如何与项目经理及开发人员沟通 278
9.6 结束语 286
第10章 如何撰写测试文档 291
10.1 测试计划(Test Plan) 293
10.2 测试规范(Test Specification) 298
10.3 测试案例(Test Case) 301
10.4 测试报告(Test Report) 301
10.5 Bug报告(Bug Report) 302
附录A 微软亚洲研究院介绍 343
附录B 课程设计 347
编辑手记 351