书籍详情
极限编程基础、案例与实施
作者:(美)Stewart Baird著;袁国忠译
出版社:人民邮电出版社
出版时间:2003-01-01
ISBN:9787115119353
定价:¥38.00
购买这本书可以去
内容简介
极限编程(XP)是一种全新的轻量级软件开发方法,近年来已得到从大型咨询公司到小型软件工作室的认可。本书以循序渐进的方式阐述了极限编程的方方面面。“我深信,本书将引导您成功地应用XP并使其适用于您的项目。希望在软件开发中取得成功的人都应阅读本书。”StewartBaird是一名独立咨询人员,主要从事软件开发、领导和写作等工作。创办自己的公司之前,他受聘于新西兰的KPMGConsulting公司,担任XP(极限编程)实现的首席传教士。他曾在美国和新西兰介绍和教授XP,当前则忙于帮助客户使用XP和其他敏捷技术实现他们的解决方案。本书分七部分,共24章。第一部分介绍XP的基本知识,包括XP的起源、特征及其要应对的软件开发方面的挑战;第二部分阐述了XP项目的生命周期、XP小组中的角色以及XP实践;第三部分介绍如何运作XP项目,包括领导XP项目、规划发布和迭代、通过用户故事收集客户需求、实施结对编程等;第四部分介绍XP工具,包括开发工具、单元测试工具、构建工具等;第五部分阐述了如何实施XP,包括如何成功地推销XP以及XP案例研究等;第六部分阐述了重构技术、敏捷建模技术、其他敏捷开发方法以及如何突破XP的局限等内容;第七部分是附录,列举了一些与XP相关的参考资料和网上资源。本书适用于项目经理和开发人员阅读。通过阅读本书,项目经理将对XP的运作方式有充分的认识;而开发人员则可快速、全面地掌握XP。
作者简介
Stewart Baird是一名独立公司咨询人员,主要从事软件开发、领导和写作等工作。创办自己的公司之前,他受聘于新西兰的KPMG Consulting公司,担任XP实现的首席传教士。他曾在美国和新西兰介绍和教授XP,当前则忙于帮助客户使用XP和其他敏捷技术实现他们的解决方案。虽然在最近的职业生涯中主要使用的是Microsoft工具,但他却是开放源代码的坚定倡导者。最初,他从业于航空电子设备和嵌入系统领域,20世纪80年代末,他遇开爱上了C语言,不久后便开始编写IBNOS/2操作系统的应用程序,从那以后,他再没有回头,一直从事软件开发工作。他曾在美国、英国、新西兰、澳大利亚和德国居住和工作过,因此写作和交谈时措词怪异。现在他和家从居住在新西兰惠灵顿的郊外。读者可通过他的公司GDS同他联系。
目录
第一部分 XP基础 1
第1小时课程 初识XP 3
1.1 软件开发概述 3
1.1.1 软件工程的进展 5
1.1.2 个人计算机革命 6
1.1.3 有控制地快速地构建应用程序 6
1.1.4 Internet时代的软件开发 7
1.2 软件开发方法 7
1.2.1 编码-修复方法 7
1.2.2 瀑布式方法 8
1.2.3 进化式原型化方法 9
1.2.4 分步交付方法 10
1.2.5 RUP方法 10
1.2.6 MSF方法 11
1.3 使用敏捷方法解决软件开发悖论 12
1.4 XP如何交付高质量的软件 13
1.5 各种开发方法之比较 13
1.6 总结 14
1.7 问与答 14
1.8 作业 15
1.8.1 小测验 15
1.8.2 答案 15
1.8.3 练习 15
第2小时课程 XP概述 17
2.1 第一个XP项目 17
2.2 定义XP 18
2.2.1 价值观 18
2.2.2 原则 19
2.2.3 行为 19
2.2.4 实践 20
2.3 XP的关键特征 21
2.3.1 明确的反馈 21
2.3.2 逐步规划 21
2.3.3 时间安排灵活 22
2.3.4 自动化测试 22
2.3.5 口头交流 22
2.3.6 进化式设计 22
2.4 XP的极端方面 22
2.5 XP与其他开发方法的不同之处 23
2.6 总结 23
2.7 问与答 24
2.8 作业 25
2.8.1 小测验 25
2.8.2 答案 25
2.8.3 练习 25
第3小时课程 使用XP解决软件开发中的问题 27
3.1 揭示软件开发中的问题 27
3.1.1 软件开发危机 27
3.1.2 死亡之旅 28
3.1.3 项目中的4个控制变量 29
3.2 使用XP控制风险 30
3.2.1 INCIS:一个关于软件灾难的案例研究 30
3.2.2 使用XP避免灾难 31
3.3 使用XP提高质量 31
3.4 使用XP管理变化 33
3.5 总结 35
3.6 问与答 35
3.7 作业 36
3.7.1 小测验 36
3.7.2 答案 36
3.7.3 练习 36
第二部分 XP的工作原理 49
第4小时课程 XP开发的生命周期 39
4.1 XP项目的生命周期概述 39
4.2 调查用户需求 41
4.2.1 编写用户故事 41
4.2.2 估算和发现 42
4.3 制定项目计划 43
4.4 将发布划分为迭代 44
4.4.1 迭代过程 44
4.4.2 度量生产量 45
4.4.3 开发和测试 45
4.5 将软件部署到生产环境中 45
4.6 发布后维护系统 46
4.7 总结 47
4.8 问与答 47
4.9 作业 48
4.9.1 小测验 48
4.9.2 答案 48
4.9.3 练习 48
第5小时课程 XP小组中的角色 49
5.1 XP角色如何协同工作 49
5.1.1 协作的重要性 49
5.1.2 作为一个团队来解决问题 50
5.1.3 权利和职责 51
5.2 客户 52
5.3 指导XP小组 53
5.4 开发人员 54
5.4.1 日常工作 54
5.4.2 将XP实践同开发人员的工作对应起来 55
5.5 测试人员 56
5.6 跟踪人员 56
5.7 经理 57
5.8 其他XP角色 57
5.9 总结 58
5.10 问与答 58
5.11 作业 58
5.11.1 小测验 59
5.11.2 答案 59
5.11.3 练习 59
第6小时课程 XP实践 61
6.1 XP实践如何协同工作 61
6.2 计划游戏 62
6.3 小型发布 63
6.4 隐喻 63
6.5 简单设计 64
6.6 测试 64
6.7 重构 65
6.8 结对编程 65
6.9 集体拥有 66
6.10 持续集成 66
6.11 每周工作40小时 67
6.11.1 可忍受的工作时间 67
6.11.2 揭露加班黑市 67
6.11.3 长期还是短期 67
6.12 现场客户 68
6.13 编码标准 69
6.13.1 编码标准的方方面面 69
6.13.2 到哪里去了解编码标准 69
6.14 总结 70
6.15 问与答 70
6.16 作业 71
6.16.1 小测验 71
6.16.2 答案 71
6.16.3 练习 72
第三部分 运作XP项目 97
第7小时课程 指导XP项目 75
7.1 使用XP价值观来运作项目 75
7.2 信任小组 76
7.3 领导XP小组 76
7.3.1 做一名受小组拥戴的领导 77
7.3.2 不应容忍的行为 77
7.3.3 您是哪种类型的领导 78
7.4 组建小组 79
7.4.1 营造小组文化 79
7.4.2 激励小组 81
7.5 总结 81
7.6 问与答 81
7.7 作业 82
7.7.1 小测验 82
7.7.2 答案 83
7.7.3 练习 83
第8小时课程 规划XP中的软件发布 85
8.1 软件发布基础 85
8.1.1 确定项目的范围 86
8.1.2 发布规划 87
8.2 总结 92
8.3 问与答 92
8.4 作业 93
8.4.1 小测验 93
8.4.2 答案 93
8.4.3 练习 94
第9小时课程 以迭代的方式开发软件 95
9.1 将发布划分为迭代 95
9.2 小组集思广益地讨论任务 96
9.3 承担工作 98
9.4 编写验收测试 98
9.5 跟踪和指导迭代 100
9.5.1 处理延迟的情况 102
9.5.2 控制迭代的方向 102
9.5.3 度量和控制速度 103
9.5.4 常务会议 103
9.6 结束迭代 104
9.7 总结 104
9.8 问与答 104
9.9 作业 105
9.9.1 小测验 105
9.9.2 答案 106
9.9.3 练习 106
第10小时课程 以用户故事的方式收集客户需求 107
10.1 编写第一个用户故事 107
10.1.1 选择用于编写用户故事的工具 109
10.1.2 用于收集客户需求的用户故事范例 112
10.2 用户故事变体 112
10.2.1 用户故事和用例之比较 113
10.2.2 转换功能规范 113
10.2.3 使用用户故事设计原型 114
10.3 总结 114
10.4 问与答 115
10.5 作业 115
10.5.1 小测验 115
10.5.2 答案 116
10.5.3 练习 116
第11小时课程 以结对编程的方式开发软件 117
11.1 养成结对编程的习惯 117
11.2 营造物理空间 118
11.3 结对编程的代价和好处 120
11.3.1 通过结对编程提高开发人员的士气 121
11.3.2 程序员的看法 122
11.4 驳斥对结对编程的非难 122
11.5 使结对编程适合于您 123
11.6 总结 124
11.7 问与答 124
11.8 作业 125
11.8.1 小测验 125
11.8.2 答案 126
11.8.3 练习 126
第四部分 使用XP工具 127
第12小时课程 以XP方式集成系统 129
12.1 集成周期 129
12.1.1 提供产品 130
12.1.2 每天构建软件 131
12.1.3 定义良好的构建 132
12.1.4 确保源代码的安全 133
12.2 开始自动化构建 134
12.2.1 通过持续集成将构建演绎到极致 134
12.2.2 消除集成障碍 135
12.3 总结 136
12.4 问与答 136
12.5 作业 137
12.5.1 小测验 137
12.5.2 答案 137
12.5.3 练习 137
第13小时课程 使用XP开发工具 139
13.1 搜集XP工具集 139
13.2 使用xUnit测试框架来测试软件 140
13.3 使用工具跟踪缺陷 143
13.4 使用基于纸张的工具 144
13.5 提高代码速度的软件工具 145
13.6 源代码控制工具 146
13.7 检查代码质量的工具 147
13.8 利用集成开发环境 149
13.8.1 IBM的VisualAge for Java 149
13.8.2 Microsoft的Visual Studio.NET 152
13.8.3 其他集成开发环境 155
13.9 总结 156
13.10 问与答 156
13.11 作业 157
13.11.1 小测验 157
13.11.2 答案 158
13.11.3 练习 158
第14小时课程 Java单元测试工具 159
14.1 再谈测试先行 159
14.2 JUnit简介 160
14.3 安装JUnit 161
14.4 编写第一个JUnit测试 165
14.5 测试方面的难题 168
14.5.1 用户界面 168
14.5.2 基于Web的系统 168
14.5.3 数据库 168
14.6 总结 169
14.7 问与答 169
14.8 作业 169
14.8.1 小测验 169
14.8.2 答案 170
14.8.3 练习 170
第15小时课程 Microsoft单元测试工具 171
15.1 Microsoft COM和.NET 171
15.1.1 Microsoft COM 171
15.1.2 Microsoft.NET 172
15.2 建立.NET环境 173
15.2.1 下载并安装.NET 173
15.2.2 安装并运行.NET测试框架 173
15.3 编写第一个NUnit测试 174
15.3.1 用于NUnit测试的范例用户故事 174
15.3.2 创建范例应用程序 175
15.3.3 为Rugby类创建单元测试 176
15.3.4 使用NUnit进行调试 183
15.3.5 从命令行运行NUnit 184
15.4 总结 185
15.5 问与答 185
15.6 作业 186
15.6.1 小测验 186
15.6.2 答案 187
15.6.3 练习 187
第16小时课程 软件开发自动化 189
16.1 使用Ant实现自动化构建 189
16.1.1 安装Ant 190
16.1.2 Ant命令选项 191
16.2 Ant构建文件 192
16.2.1 project标记 194
16.2.2 target标记 194
16.2.3 任务 195
16.2.4 属性 195
16.3 使用Ant构建HelloWorld程序 196
16.4 在Microsoft平台上自动化构建 198
16.5 总结 200
16.6 问与答 200
16.7 作业 201
16.7.1 小测验 201
16.7.2 答案 201
16.7.3 练习 202
第17小时课程 充分利用Ant来自动化XP项目 203
17.1 使用Ant来自动化单元测试 203
17.1.1 使用Ant建立数据库 204
17.1.2 通过Ant运行JUnit测试 213
17.1.3 使用Ant以Email的方式发送测试报告 218
17.2 在.NET平台上自动化构建 221
17.3 总结 224
17.4 问与答 225
17.5 作业 225
17.5.1 小测验 225
17.5.2 答案 226
17.5.3 练习 226
第五部分 实施XP 227
第18小时课程 在组织中实施XP 229
18.1 技术接纳曲线 229
18.2 XP实施指南 230
18.2.1 解决最严重的问题 231
18.2.2 针对项目修正XP 233
18.2.3 创造物理环境 233
18.3 避开陷阱 235
18.4 评估XP实施情况 236
18.5 总结 237
18.6 问与答 237
18.7 作业 237
18.7.1 小测验 238
18.7.2 答案 238
18.7.3 练习 238
第19小时课程 成功地推销XP 239
19.1 在内部推销XP 239
19.1.1 如何向开发人员推销XP 239
19.1.2 赢得结队编程之战 241
19.2 说服管理人员 242
19.3 如何向客户推销XP 243
19.3.1 确定问题 244
19.3.2 确定解决方案 245
19.3.3 确定资源 246
19.3.4 确定后勤保障 246
19.3.5 就价格达成一致 246
19.3.6 签订合同 246
19.4 总结 247
19.5 问与答 247
19.6 作业 247
19.6.1 小测验 247
19.6.2 答案 248
19.6.3 练习 248
第20小时课程 XP案例研究 249
20.1 案例研究:确保推销方法和交付方法相称的重要性 249
20.2 案例研究:中途采用XP的后果 250
20.3 案例研究:独立软件厂商采用XP 252
20.4 案例研究:在大型项目中采用XP 253
20.5 总结 254
20.6 问与答 254
20.7 作业 254
20.7.1 小测验 254
20.7.2 答案 255
20.7.3 练习 255
第六部分 扩大XP的应用范围及其他高级主题 257
第21小时课程 再谈重构技术 259
21.1 为何需要重构 259
21.2 何时重构 260
21.3 重构面临的挑战 261
21.4 重构思想 261
21.4.1 提取(extract)方法 261
21.4.2 将幻数变为符号常量 263
21.4.3 内联临时变量 264
21.4.4 使用断言 265
21.4.5 用显式方法替代参数 266
21.4.6 重构小结 267
21.5 养成重构的习惯 268
21.6 重构除代码外的其他东西 268
21.7 有关重构技术的资源 269
21.8 总结 270
21.9 问与答 270
21.10 作业 270
21.10.1 小测验 270
21.10.2 答案 271
21.10.3 练习 271
第22小时课程 突破XP的局限 273
22.1 如何将XP用于大型项目 273
22.1.1 划分功能小组 274
22.1.2 扩展结对编程 276
22.1.3 规划游戏 276
22.1.4 没有现场客户 277
22.2 虚拟小组工具 278
22.3 总结 279
22.4 问与答 279
22.5 作业 279
22.5.1 小测验 280
22.5.2 答案 280
22.5.3 练习 280
第23小时课程 在XP中使用敏捷建模技术 281
23.1 敏捷建模技术简介 281
23.1.1 AM的价值观 282
23.1.2 AM的核心原则 283
23.1.3 AM的辅助原则 283
23.1.4 AM的核心实践 284
23.1.5 AM的辅助实践 285
23.1.6 XP与AM之比较 286
23.2 AM使用范例 287
23.3 总结 292
23.4 问与答 292
23.5 作业 293
23.5.1 小测验 293
23.5.2 答案 294
23.5.3 练习 294
第24小时课程 其他敏捷开发方法 295
24.1 敏捷开发方法 295
24.1.1 敏捷宣言 296
24.1.2 敏捷原则 296
24.1.3 敏捷软件开发的平衡术 296
24.2 Scrum方法 297
24.3 动态系统开发方法 299
24.4 特性驱动的开发 301
24.5 创建自己的敏捷方法 302
24.6 总结 303
24.7 问与答 303
24.8 作业 303
24.8.1 小测验 304
24.8.2 答案 304
24.8.3 练习 304
第七部分 附录 305
附录A 参考资料 307
附录B 网上资源 311
B.1 极限编程链接 311
B.2 与XP相关的链接 312
B.3 XP工具链接 312
B.4 敏捷方法链接 312
第1小时课程 初识XP 3
1.1 软件开发概述 3
1.1.1 软件工程的进展 5
1.1.2 个人计算机革命 6
1.1.3 有控制地快速地构建应用程序 6
1.1.4 Internet时代的软件开发 7
1.2 软件开发方法 7
1.2.1 编码-修复方法 7
1.2.2 瀑布式方法 8
1.2.3 进化式原型化方法 9
1.2.4 分步交付方法 10
1.2.5 RUP方法 10
1.2.6 MSF方法 11
1.3 使用敏捷方法解决软件开发悖论 12
1.4 XP如何交付高质量的软件 13
1.5 各种开发方法之比较 13
1.6 总结 14
1.7 问与答 14
1.8 作业 15
1.8.1 小测验 15
1.8.2 答案 15
1.8.3 练习 15
第2小时课程 XP概述 17
2.1 第一个XP项目 17
2.2 定义XP 18
2.2.1 价值观 18
2.2.2 原则 19
2.2.3 行为 19
2.2.4 实践 20
2.3 XP的关键特征 21
2.3.1 明确的反馈 21
2.3.2 逐步规划 21
2.3.3 时间安排灵活 22
2.3.4 自动化测试 22
2.3.5 口头交流 22
2.3.6 进化式设计 22
2.4 XP的极端方面 22
2.5 XP与其他开发方法的不同之处 23
2.6 总结 23
2.7 问与答 24
2.8 作业 25
2.8.1 小测验 25
2.8.2 答案 25
2.8.3 练习 25
第3小时课程 使用XP解决软件开发中的问题 27
3.1 揭示软件开发中的问题 27
3.1.1 软件开发危机 27
3.1.2 死亡之旅 28
3.1.3 项目中的4个控制变量 29
3.2 使用XP控制风险 30
3.2.1 INCIS:一个关于软件灾难的案例研究 30
3.2.2 使用XP避免灾难 31
3.3 使用XP提高质量 31
3.4 使用XP管理变化 33
3.5 总结 35
3.6 问与答 35
3.7 作业 36
3.7.1 小测验 36
3.7.2 答案 36
3.7.3 练习 36
第二部分 XP的工作原理 49
第4小时课程 XP开发的生命周期 39
4.1 XP项目的生命周期概述 39
4.2 调查用户需求 41
4.2.1 编写用户故事 41
4.2.2 估算和发现 42
4.3 制定项目计划 43
4.4 将发布划分为迭代 44
4.4.1 迭代过程 44
4.4.2 度量生产量 45
4.4.3 开发和测试 45
4.5 将软件部署到生产环境中 45
4.6 发布后维护系统 46
4.7 总结 47
4.8 问与答 47
4.9 作业 48
4.9.1 小测验 48
4.9.2 答案 48
4.9.3 练习 48
第5小时课程 XP小组中的角色 49
5.1 XP角色如何协同工作 49
5.1.1 协作的重要性 49
5.1.2 作为一个团队来解决问题 50
5.1.3 权利和职责 51
5.2 客户 52
5.3 指导XP小组 53
5.4 开发人员 54
5.4.1 日常工作 54
5.4.2 将XP实践同开发人员的工作对应起来 55
5.5 测试人员 56
5.6 跟踪人员 56
5.7 经理 57
5.8 其他XP角色 57
5.9 总结 58
5.10 问与答 58
5.11 作业 58
5.11.1 小测验 59
5.11.2 答案 59
5.11.3 练习 59
第6小时课程 XP实践 61
6.1 XP实践如何协同工作 61
6.2 计划游戏 62
6.3 小型发布 63
6.4 隐喻 63
6.5 简单设计 64
6.6 测试 64
6.7 重构 65
6.8 结对编程 65
6.9 集体拥有 66
6.10 持续集成 66
6.11 每周工作40小时 67
6.11.1 可忍受的工作时间 67
6.11.2 揭露加班黑市 67
6.11.3 长期还是短期 67
6.12 现场客户 68
6.13 编码标准 69
6.13.1 编码标准的方方面面 69
6.13.2 到哪里去了解编码标准 69
6.14 总结 70
6.15 问与答 70
6.16 作业 71
6.16.1 小测验 71
6.16.2 答案 71
6.16.3 练习 72
第三部分 运作XP项目 97
第7小时课程 指导XP项目 75
7.1 使用XP价值观来运作项目 75
7.2 信任小组 76
7.3 领导XP小组 76
7.3.1 做一名受小组拥戴的领导 77
7.3.2 不应容忍的行为 77
7.3.3 您是哪种类型的领导 78
7.4 组建小组 79
7.4.1 营造小组文化 79
7.4.2 激励小组 81
7.5 总结 81
7.6 问与答 81
7.7 作业 82
7.7.1 小测验 82
7.7.2 答案 83
7.7.3 练习 83
第8小时课程 规划XP中的软件发布 85
8.1 软件发布基础 85
8.1.1 确定项目的范围 86
8.1.2 发布规划 87
8.2 总结 92
8.3 问与答 92
8.4 作业 93
8.4.1 小测验 93
8.4.2 答案 93
8.4.3 练习 94
第9小时课程 以迭代的方式开发软件 95
9.1 将发布划分为迭代 95
9.2 小组集思广益地讨论任务 96
9.3 承担工作 98
9.4 编写验收测试 98
9.5 跟踪和指导迭代 100
9.5.1 处理延迟的情况 102
9.5.2 控制迭代的方向 102
9.5.3 度量和控制速度 103
9.5.4 常务会议 103
9.6 结束迭代 104
9.7 总结 104
9.8 问与答 104
9.9 作业 105
9.9.1 小测验 105
9.9.2 答案 106
9.9.3 练习 106
第10小时课程 以用户故事的方式收集客户需求 107
10.1 编写第一个用户故事 107
10.1.1 选择用于编写用户故事的工具 109
10.1.2 用于收集客户需求的用户故事范例 112
10.2 用户故事变体 112
10.2.1 用户故事和用例之比较 113
10.2.2 转换功能规范 113
10.2.3 使用用户故事设计原型 114
10.3 总结 114
10.4 问与答 115
10.5 作业 115
10.5.1 小测验 115
10.5.2 答案 116
10.5.3 练习 116
第11小时课程 以结对编程的方式开发软件 117
11.1 养成结对编程的习惯 117
11.2 营造物理空间 118
11.3 结对编程的代价和好处 120
11.3.1 通过结对编程提高开发人员的士气 121
11.3.2 程序员的看法 122
11.4 驳斥对结对编程的非难 122
11.5 使结对编程适合于您 123
11.6 总结 124
11.7 问与答 124
11.8 作业 125
11.8.1 小测验 125
11.8.2 答案 126
11.8.3 练习 126
第四部分 使用XP工具 127
第12小时课程 以XP方式集成系统 129
12.1 集成周期 129
12.1.1 提供产品 130
12.1.2 每天构建软件 131
12.1.3 定义良好的构建 132
12.1.4 确保源代码的安全 133
12.2 开始自动化构建 134
12.2.1 通过持续集成将构建演绎到极致 134
12.2.2 消除集成障碍 135
12.3 总结 136
12.4 问与答 136
12.5 作业 137
12.5.1 小测验 137
12.5.2 答案 137
12.5.3 练习 137
第13小时课程 使用XP开发工具 139
13.1 搜集XP工具集 139
13.2 使用xUnit测试框架来测试软件 140
13.3 使用工具跟踪缺陷 143
13.4 使用基于纸张的工具 144
13.5 提高代码速度的软件工具 145
13.6 源代码控制工具 146
13.7 检查代码质量的工具 147
13.8 利用集成开发环境 149
13.8.1 IBM的VisualAge for Java 149
13.8.2 Microsoft的Visual Studio.NET 152
13.8.3 其他集成开发环境 155
13.9 总结 156
13.10 问与答 156
13.11 作业 157
13.11.1 小测验 157
13.11.2 答案 158
13.11.3 练习 158
第14小时课程 Java单元测试工具 159
14.1 再谈测试先行 159
14.2 JUnit简介 160
14.3 安装JUnit 161
14.4 编写第一个JUnit测试 165
14.5 测试方面的难题 168
14.5.1 用户界面 168
14.5.2 基于Web的系统 168
14.5.3 数据库 168
14.6 总结 169
14.7 问与答 169
14.8 作业 169
14.8.1 小测验 169
14.8.2 答案 170
14.8.3 练习 170
第15小时课程 Microsoft单元测试工具 171
15.1 Microsoft COM和.NET 171
15.1.1 Microsoft COM 171
15.1.2 Microsoft.NET 172
15.2 建立.NET环境 173
15.2.1 下载并安装.NET 173
15.2.2 安装并运行.NET测试框架 173
15.3 编写第一个NUnit测试 174
15.3.1 用于NUnit测试的范例用户故事 174
15.3.2 创建范例应用程序 175
15.3.3 为Rugby类创建单元测试 176
15.3.4 使用NUnit进行调试 183
15.3.5 从命令行运行NUnit 184
15.4 总结 185
15.5 问与答 185
15.6 作业 186
15.6.1 小测验 186
15.6.2 答案 187
15.6.3 练习 187
第16小时课程 软件开发自动化 189
16.1 使用Ant实现自动化构建 189
16.1.1 安装Ant 190
16.1.2 Ant命令选项 191
16.2 Ant构建文件 192
16.2.1 project标记 194
16.2.2 target标记 194
16.2.3 任务 195
16.2.4 属性 195
16.3 使用Ant构建HelloWorld程序 196
16.4 在Microsoft平台上自动化构建 198
16.5 总结 200
16.6 问与答 200
16.7 作业 201
16.7.1 小测验 201
16.7.2 答案 201
16.7.3 练习 202
第17小时课程 充分利用Ant来自动化XP项目 203
17.1 使用Ant来自动化单元测试 203
17.1.1 使用Ant建立数据库 204
17.1.2 通过Ant运行JUnit测试 213
17.1.3 使用Ant以Email的方式发送测试报告 218
17.2 在.NET平台上自动化构建 221
17.3 总结 224
17.4 问与答 225
17.5 作业 225
17.5.1 小测验 225
17.5.2 答案 226
17.5.3 练习 226
第五部分 实施XP 227
第18小时课程 在组织中实施XP 229
18.1 技术接纳曲线 229
18.2 XP实施指南 230
18.2.1 解决最严重的问题 231
18.2.2 针对项目修正XP 233
18.2.3 创造物理环境 233
18.3 避开陷阱 235
18.4 评估XP实施情况 236
18.5 总结 237
18.6 问与答 237
18.7 作业 237
18.7.1 小测验 238
18.7.2 答案 238
18.7.3 练习 238
第19小时课程 成功地推销XP 239
19.1 在内部推销XP 239
19.1.1 如何向开发人员推销XP 239
19.1.2 赢得结队编程之战 241
19.2 说服管理人员 242
19.3 如何向客户推销XP 243
19.3.1 确定问题 244
19.3.2 确定解决方案 245
19.3.3 确定资源 246
19.3.4 确定后勤保障 246
19.3.5 就价格达成一致 246
19.3.6 签订合同 246
19.4 总结 247
19.5 问与答 247
19.6 作业 247
19.6.1 小测验 247
19.6.2 答案 248
19.6.3 练习 248
第20小时课程 XP案例研究 249
20.1 案例研究:确保推销方法和交付方法相称的重要性 249
20.2 案例研究:中途采用XP的后果 250
20.3 案例研究:独立软件厂商采用XP 252
20.4 案例研究:在大型项目中采用XP 253
20.5 总结 254
20.6 问与答 254
20.7 作业 254
20.7.1 小测验 254
20.7.2 答案 255
20.7.3 练习 255
第六部分 扩大XP的应用范围及其他高级主题 257
第21小时课程 再谈重构技术 259
21.1 为何需要重构 259
21.2 何时重构 260
21.3 重构面临的挑战 261
21.4 重构思想 261
21.4.1 提取(extract)方法 261
21.4.2 将幻数变为符号常量 263
21.4.3 内联临时变量 264
21.4.4 使用断言 265
21.4.5 用显式方法替代参数 266
21.4.6 重构小结 267
21.5 养成重构的习惯 268
21.6 重构除代码外的其他东西 268
21.7 有关重构技术的资源 269
21.8 总结 270
21.9 问与答 270
21.10 作业 270
21.10.1 小测验 270
21.10.2 答案 271
21.10.3 练习 271
第22小时课程 突破XP的局限 273
22.1 如何将XP用于大型项目 273
22.1.1 划分功能小组 274
22.1.2 扩展结对编程 276
22.1.3 规划游戏 276
22.1.4 没有现场客户 277
22.2 虚拟小组工具 278
22.3 总结 279
22.4 问与答 279
22.5 作业 279
22.5.1 小测验 280
22.5.2 答案 280
22.5.3 练习 280
第23小时课程 在XP中使用敏捷建模技术 281
23.1 敏捷建模技术简介 281
23.1.1 AM的价值观 282
23.1.2 AM的核心原则 283
23.1.3 AM的辅助原则 283
23.1.4 AM的核心实践 284
23.1.5 AM的辅助实践 285
23.1.6 XP与AM之比较 286
23.2 AM使用范例 287
23.3 总结 292
23.4 问与答 292
23.5 作业 293
23.5.1 小测验 293
23.5.2 答案 294
23.5.3 练习 294
第24小时课程 其他敏捷开发方法 295
24.1 敏捷开发方法 295
24.1.1 敏捷宣言 296
24.1.2 敏捷原则 296
24.1.3 敏捷软件开发的平衡术 296
24.2 Scrum方法 297
24.3 动态系统开发方法 299
24.4 特性驱动的开发 301
24.5 创建自己的敏捷方法 302
24.6 总结 303
24.7 问与答 303
24.8 作业 303
24.8.1 小测验 304
24.8.2 答案 304
24.8.3 练习 304
第七部分 附录 305
附录A 参考资料 307
附录B 网上资源 311
B.1 极限编程链接 311
B.2 与XP相关的链接 312
B.3 XP工具链接 312
B.4 敏捷方法链接 312
猜您喜欢