第1章 软件工程师概述 1
1.1 计算机系统 1
1.2 软件工程师 3
1.3 其他相关的工程师 4
1.4 软件工程师所应具备的能力 7
第2章 公司组织中的软件工程师 12
2.1 与软件工程师直接相关的各种职业 12
2.2 公司的规模和软件工程师的立场 15
2.3 软件工程师与营销人员的关系 20
2.4 软件工程师和法律的关系 23
2.5 软件工程师和财务的关系 27
第3章 软件工程师的整体工作概述 31
3.1 三种典型的系统开发方法 31
3.2 调查客户的现状,理解需求 34
3.3 概要的提案 37
3.4 系统构筑和软件工程师的作用 40
3.5 交货及交货后的维护 43
第4章 系统设计的重点 45
4.1 在考虑费用的同时设计系统 45
4.2 决定开发系统的概要 49
4.3 组成项目团队 52
4.4 制作设计文档 55
第5章 文档设计 56
5.1 文档的种类 56
5.2 各类文档的设计 58
第6章 需求分析及文档化 78
6.1 需求分析的重要性 78
6.2 需求分析的概要 82
6.3 需求分析工作的步骤 89
6.4 需求分析的技术和工具 118
第7章 软件工程师的演讲技巧 130
7.1 演讲的必要性 130
7.2 实际演讲 133
7.3 接受反馈意见 135
第8章 作为项目经理的软件工程师 140
8.1 计划管理的方法 140
8.2 系统开发团队各成员的作用 143
8.3 系统设计中的必要发想 146
8.4 考虑用户外部接口 148
8.5 开发系统 150
8.6 将系统分割开发成子系统 151
8.7 测试系统 152
8.8 验证和解决系统的问题点 156
第9章 客户的纳货和验收·系统移交运行·维护团队 160
9.1 验证系统 160
9.2 系统的交货日与运行日 163
9.3 向运转团队移交系统 166
第10章 高级软件工程师的目标 170
10.1 磨炼作为软件工程师的技术力 170
10.2 开发更好的系统 172
10.3 项目管理注意事项 174
10.4 对高级软件工程师的期待 177
10.5 满足客户需求的软件 180
10.6 软件开发阶段的客户满足 182
10.7 在使用软件时使客户满足 185
10.8 在软件运转维护方面使客户满足 188
10.9 公司内的利害关系人员对软件工程师的期待 191
10.10 在软件开发中起到自己的作用 194
10.11 与客户的交涉技巧 196
附录A Rational Rose 200
参考文献 213