第1章 概述 1
1.1 软件工程 1
1.1.1 软件工程的定义 1
1.1.2 软件工程的目标 2
1.1.3 软件工程过程 3
1.1.4 软件工程的原则 3
1.2 UML简介 4
1.3 案例描述 6
总结 7
思考与练习 8
第2章 软件项目管理 9
2.1 项目管理概述 9
2.1.1 项目管理定义 9
2.1.2 项目管理的组成部分 10
2.1.3 工期的计算公式 11
2.1.4 WBS 11
2.2 Microsoft Project项目管理软件的使用 12
2.2.1 编制项目计划 12
2.2.2 编制项目的时间计划 12
2.2.3 编制项目的资源计划 21
2.2.4 编制项目的成本计划 24
2.2.5 项目监控管理 26
总结 32
思考与练习 33
第3章 软件系统开发方法 36
3.1 软件开发生命周期 36
3.2 软件开发模型 37
3.2.1 瀑布模型 38
3.2.2 演化模型 39
3.2.3 螺旋模型 41
3.2.4 增量模型 42
3.3 传统软件开发方法 44
3.4 面向对象软件开发技术 45
3.4.1 面向对象的基本概念 45
3.4.2 面向对象的开发 50
3.5 RUP统一软件开发过程 51
3.5.1 RUP的生命周期 51
3.5.2 RUP的核心工作流程 54
3.6 敏捷软件开发技术 56
3.6.1 敏捷开发技术基本概念 57
3.6.2 极限编程 59
总结 64
思考与练习 64
第4章 建立用例模型 65
4.1 需求获取 65
4.2 分析需求 67
4.3 用例在需求分析中的使用 68
4.4 识别参与者 69
4.5 确定用例 70
4.6 用例的粒度 71
4.7 用例间的关系 72
4.8 用例描述 74
4.9 用例建模 78
总结 81
思考与练习 81
第5章 建立分析模型 82
5.1 对象、类和对象、类的UML表示 82
5.2 确定关键抽象 83
5.3 类之间的关系及其UML表示 85
5.3.1 关联 85
5.3.2 依赖 88
5.3.3 泛化 89
5.3.4 聚合 90
5.3.5 组合 91
5.4 建立领域模型 92
5.5 分布模式的选择与应用 93
5.6 构建分析类 94
5.7 交互图 97
5.7.1 顺序图 97
5.7.2 协作图 99
5.8 职责分配 100
5.9 定义类的属性 102
5.10 分析模型 103
总结 104
思考与练习 104
第6章 数据库建模 106
6.1 从业务需求创建数据模型的流程 106
6.2 定义数据需求 107
6.3 定义概念模型 109
6.4 设计逻辑数据模型 110
6.5 设计物理数据模型 112
6.6 数据模型的优化与发布 114
总结 115
思考与练习 115
第7章 建立设计模型 117
7.1 设计模式的选择与应用 117
7.1.1 Facade(门面)模式 119
7.1.2 Adapter(适配器)模式 120
7.1.3 Factory(工厂)模式 123
7.2 构建设计类 129
7.2.1 从分析类生成设计类 129
7.2.2 确定类的大小 131
7.3 详细设计类 132
7.3.1 设计公用类 132
7.3.2 设计类接口 132
7.3.3 设计属性和操作 133
7.4 设计类间关系 140
7.4.1 设计继承 140
7.4.2 设计聚合/组合 141
7.4.3 设计关联 142
7.5 活动图 143
7.6 状态图 146
7.7 设计模型顺序图 148
7.8 设计模型的分包 149
7.9 逻辑视图到构件视图的映射 152
总结 160
思考与练习 161
第8章 系统架构设计 162
8.1 业务架构 162
8.2 业务架构分析 163
8.2.1 客户服务系统业务架构分析 164
8.2.2 客户服务系统子模块划分 165
8.3 软件架构 168
8.4 软件架构设计 169
8.5 软件架构与框架 174
8.6 软件架构的“4+1”视图模型 175
8.7 组件图 176
8.8 部署图 178
总结 180
思考与练习 180
第9章 软件测试 181
9.1 基本概念 181
9.1.1 软件测试的必要性 181
9.1.2 软件测试的目的 183
9.1.3 软件缺陷定义 183
9.1.4 测试用例 184
9.1.5 软件测试的原则 185
9.2 测试方法 189
9.2.1 白盒测试 189
9.2.2 黑盒测试 200
9.3 测试过程 210
9.3.1 软件测试过程模型介绍 210
9.3.2 单元测试 213
9.3.3 集成测试 221
9.3.4 确认测试 224
9.3.5 系统测试 227
9.3.6 验收测试 229
总结 231
思考与练习 232
附录A 用户界面设计 234
A.1 UI设计师的工作 234
A.2 用户界面的设计原则 235
A.3 用户界面的设计流程 236
A.4 客户服务系统界面设计 237
附录B Java语言的编码规范 239
B.1 导言 239
B.2 格式 239
B.3 命名规则 242
B.4 变量 243
B.5 注释 243
B.6 编码 246
附录C 软件工程文档 248
C.1 用户需求说明书模板 248
C.2 软件需求规格说明书模板 249
C.3 概要设计说明书模板 251
C.4 软件设计说明书模板 254
参考文献 256