第一部分 系统开发导论 2
第1章 从始至终——系统分析与设计概述 2
1.1 软件开发以及系统分析与设计 2
1.2 系统开发生命周期 4
1.3 落基山运动用品(RMO)介绍 4
1.4 迭代开发 6
1.5 RMO贸易展览系统的开发 7
1.5.1 项目开始前的准备工作 7
1.5.2 第一天的工作活动 8
1.5.3 第二天的工作活动 11
1.5.4 第三天的工作活动 13
1.5.5 第四天的工作活动 15
1.5.6 第五天的工作活动 19
1.5.7 第六天的工作活动 19
1.5.8 第一次迭代回顾 21
1.6 后续内容导读 21
1.6.1 第一部分:系统开发导论 21
1.6.2 第二部分:系统分析活动 22
1.6.3 第三部分:系统设计的要点 22
1.6.4 第四部分:项目和项目管理 22
1.6.5 第五部分:高级设计和部署概念 22
本章小结 23
复习题 23
第二部分 系统分析活动 26
第2章 系统需求调查 26
2.1 引言 27
2.2 RMO综合销售和市场营销系统项目 27
2.2.1 现有的RMO信息系统与架构 27
2.2.2 新综合销售和市场营销系统 28
2.3 系统分析活动 30
2.3.1 收集细节信息 30
2.3.2 定义需求 31
2.3.3 需求的优先级划分 31
2.3.4 开发用户界面对话框 31
2.3.5 与用户一起评估需求 31
2.4 什么是需求 32
2.5 模型和建模 33
2.6 利益相关者 35
2.7 信息收集技术 38
2.7.1 与用户和其他利益相关者进行访谈 38
2.7.2 分发和收集调查问卷 41
2.7.3 检查输入、输出和流程 42
2.7.4 观察和记录业务流程 43
2.7.5 研究供应商的解决方案 44
2.7.6 收集活跃的用户评论和建议 44
2.8 用活动图记录工作流 44
本章小结 47
复习题 48
问题和练习 48
扩展资源 49
第3章 用例 50
3.1 引言 51
3.2 用例和用户目标 51
3.3 用例和事件分解 52
3.3.1 事件分解技术 53
3.3.2 事件类型 54
3.3.3 定义事件 55
3.3.4 使用事件分解技术 57
3.4 用例和CRUD 58
3.5 RMO案例中的用例 59
3.6 用例图 60
3.6.1 用例、参与者和符号 61
3.6.2 开发用例图 63
本章小结 64
复习题 65
问题和练习 66
扩展资源 67
第4章 域建模 68
4.1 引言 68
4.2 问题域中的“事物” 69
4.2.1 头脑风暴法 69
4.2.2 名词技术 70
4.2.3 事物的属性 71
4.2.4 事物间的关系 72
4.3 实体-联系图 73
4.4 域模型类图 76
4.4.1 域模型类图符号 76
4.4.2 有关对象类的更复杂的问题 79
4.4.3 RMO案例的域模型类图 81
本章小结 86
复习题 86
问题和练习 87
扩展资源 88
第5章 需求模型的延伸 89
5.1 引言 90
5.2 用例描述 90
5.2.1 简单的用例描述 91
5.2.2 完全展开的用例描述 91
5.3 用例活动图 93
5.4 系统顺序图——确定输入和输出 94
5.4.1 系统顺序图符号 94
5.4.2 开发系统顺序图 97
5.5 状态机图——确定对象行为 100
5.5.1 复合状态和并发性 101
5.5.2 开发状态机图的规则 103
5.5.3 开发RMO状态机图 104
5.6 需求模型的集成 107
本章小结 108
复习题 108
问题和练习 109
扩展资源 111
第三部分 系统设计的要点 114
第6章 设计与设计活动的基本要素 114
6.1 引言 115
6.2 设计要素 115
6.2.1 什么是系统设计 116
6.2.2 设计的主要组件和层次 116
6.3 系统设计的输入和输出 118
6.4 设计活动 120
6.4.1 设计环境 121
6.4.2 设计应用程序结构和软件 122
6.4.3 设计用户界面 122
6.4.4 设计系统界面 123
6.4.5 设计数据库 124
6.4.6 设计安全和系统控制 125
6.5 如何设计环境 125
6.5.1 设计内部部署 126
6.5.2 设计外部部署 128
6.5.3 设计远程和分散的环境 134
6.5.4 RMO的企业技术结构 135
本章小结 136
复习题 137
问题和练习 137
扩展资源 138
第7章 设计用户界面和系统界面 139
7.1 引言 140
7.2 用户界面和系统界面 140
7.3 理解用户界面 141
7.4 用户界面的设计概念 144
7.4.1 提示性与可视性 144
7.4.2 一致性 145
7.4.3 快捷方式 146
7.4.4 反馈 146
7.4.5 完整的对话 146
7.4.6 错误处理 146
7.4.7 撤销动作 147
7.4.8 减轻短期记忆负担 147
7.5 从分析到用户界面设计的转换 147
7.5.1 用例和菜单层次 148
7.5.2 对话和故事板 150
7.6 用户界面设计 152
7.6.1 设计窗体和格式的指导原则 152
7.6.2 网页浏览器用户界面的附加指导原则 154
7.6.3 手持设备的附加指导原则 157
7.7 确定系统界面 158
7.8 设计系统输入 160
7.8.1 自动化输入设备 160
7.8.2 定义系统输入的细节 160
7.9 设计系统输出 161
本章小结 167
复习题 167
问题和练习 168
扩展资源 168
第四部分 项目和项目管理 170
第8章 系统开发方法 170
8.1 引言 171
8.2 系统开发生命周期 171
8.2.1 系统开发生命周期的传统预测方法 172
8.2.2 系统开发生命周期的新的自适应方法 174
8.3 支持阶段 176
8.4 方法、模型、工具和技术 176
8.4.1 方法 176
8.4.2 模型 177
8.4.3 工具 178
8.4.4 技术 178
8.5 软件构造与建模的两种方法 178
8.5.1 结构化方法 179
8.5.2 面向对象方法 182
8.6 敏捷开发 185
8.6.1 敏捷开发的理论与价值 185
8.6.2 敏捷建模原则 186
本章小结 188
复习题 188
问题和练习 189
扩展资源 190
第9章 项目计划和项目管理 191
9.1 引言 192
9.2 项目管理原则 192
9.2.1 项目管理的需求 193
9.2.2 项目经理的角色 193
9.2.3 项目管理和仪式 194
9.2.4 项目管理知识体系(PMBOK) 195
9.2.5 敏捷项目管理(APM) 196
9.3 核心过程1:确定问题并获得批准 198
9.3.1 确定问题 198
9.3.2 量化项目批准因素 201
9.3.3 评估风险和可行性分析 204
9.3.4 与客户一起评审并获得批准 206
9.4 核心过程2:计划和监控项目 206
9.4.1 建立项目环境 207
9.4.2 安排工作进度 211
9.4.3 员工与资源分配 214
9.4.4 评估工作过程 215
9.4.5 监控过程与改正错误 215
本章小结 216
复习题 217
问题和练习 218
扩展资源 220
第五部分 高级设计和部署概念 222
第10章 面向对象设计:设计原则 222
10.1 引言 223
10.2 面向对象设计:分析与实施的桥梁 223
10.2.1 面向对象程序概述 224
10.2.2 面向对象设计模型和过程 224
10.3 面向对象结构化设计 226
10.4 面向对象细节设计的基本原则 231
10.5 设计类和设计类图 235
10.5.1 设计类符号 235
10.5.2 设计类表示 236
10.5.3 开发初步的设计类图 238
10.6 用CRC卡进行细节设计 241
10.7 细节设计的基本原则 243
10.7.1 耦合 243
10.7.2 内聚 244
10.7.3 变量保护 245
10.7.4 间接 245
10.7.5 对象职责 245
本章小结 246
复习题 246
问题和练习 247
扩展资源 248
第11章 面向对象设计:用例实现 249
11.1 引言 250
11.2 多层系统的细节设计 250
11.3 用例实现和顺序图 252
11.3.1 理解顺序图 253
11.3.2 用例实现的设计流程 255
11.3.3 “创建顾客账户”用例的初步顺序图 256
11.3.4 “加入购物车”用例的初步顺序图 259
11.3.5 顺序图初步设计的指南和假设 263
11.3.6 开发多层设计 264
11.4 用协作图进行设计 268
11.5 更新和打包设计类图 269
11.5.1 包图——将主要部分结构化 270
11.5.2 三层设计的实现问题 271
11.6 设计模式 274
11.6.1 适配器 274
11.6.2 工厂 275
11.6.3 单例 276
本章小结 277
复习题 278
问题和练习 279
扩展资源 283
第12章 实现系统的可操作性 284
12.1 引言 285
12.2 测试 286
12.2.1 单元测试 287
12.2.2 集成测试 288
12.2.3 可用性测试 289
12.2.4 系统、性能和强化测试 290
12.3 部署活动 291
12.3.1 转换与初始化数据 291
12.3.2 培训用户 292
12.3.3 部署产品环境 295
12.4 计划与管理实施、测试和部署 296
12.4.1 开发顺序 296
12.4.2 源代码控制 300
12.4.3 打包、安装和部署组件 300
12.4.4 改动和版本控制 304
12.5 整体回看——再访RMO 306
12.5.1 更新或代替? 306
12.5.2 最小化风险的阶段化部署 307
12.5.3 数据库开发和数据转换 307
12.5.4 开发顺序 308
12.5.5 文档和培训 308
本章小结 308
复习题 309
问题和练习 309
扩展资源 310