第Ⅰ部分 XP入门第1章 XP简介 3
1.1 瀑布式方法 3
1.2 敏捷方法 4
1.3 XP的含义 5
1.3.1 XP的4个价值 5
1.3.2 XP的15个原则 6
1.3.3 XP的14个实践 8
1.4 其他敏捷方法 14
1.4.1 精益开发 15
1.4.2 动态系统开发方法 15
1.4.3 自适应软件开发 15
1.4.4 Crystal方法 15
1.4.5 Scrum方法 16
1.4.6 特性驱动开发 16
1.5 XP是不是最好的敏捷方法? 16
1.6 XP不适用的情形 17
1.7 小结 17
第2章 组建团队 19
2.1 XP角色和职责 19
2.1.1 客户 19
2.1.2 开发教练 20
2.1.3 业务教练 21
2.1.4 开发人员 21
2.1.5 系统工程师和业务分析员 22
2.1.6 跟踪人员 22
2.1.7 测试人员 23
2.1.8 大老板 23
2.2 团队的组建 23
2.3 XP工作环境 24
2.4 小结 25
第3章 发布规划 27
3.1 探索阶段 27
3.1.1 用户故事编写 28
3.1.2 用户故事估算 32
3.2 规划博弈 33
3.2.1 故事优先化 33
3.2.2 速度确定 33
3.2.3 用户故事选择 34
3.3 发布计划 34
3.4 小结 35
第4章 迭代规划 37
4.1 迭代速度 37
4.2 故事子集选择 37
4.3 任务确定 37
4.4 任务分配和估算 38
4.4.1 任务点和任务点速度 38
4.4.2 任务签约承担 39
4.5 迭代平衡 39
4.6 迭代计划 40
4.7 小结 40
第5章 迭代 41
5.1 迭代的含义 41
5.2 设计会话 41
5.3 站立会议 41
5.4 结对编程 42
5.5 测试、编码和重构 42
5.5.1 构建测试和重构 43
5.5.2 让客户参与 44
5.6 验收测试 44
5.7 跟踪 44
5.8 在职辅导培训 45
5.9 小结 46
第Ⅱ部分 XP工具第6章 构建环境工具:NAnt 49
6.1 NAnt的含义 49
6.2 安装NAnt 50
6.3 创建构建文件 51
6.3.1 理解构建文件 51
6.3.2 保存构建文件 54
6.3.3 测试构建文件 54
6.4 小结 55
第7章 测试环境工具:NUnit 57
7.1 NUnit的含义 57
7.2 安装NUnit 58
7.3 构建单元测试 58
7.3.1 创建测试类 59
7.3.2 创建应用程序类 61
7.3.3 与NAnt集成 62
7.3.4 运行构建文件 64
7.4 小结 64
第8章 模拟环境工具:NMock 67
8.1 NMock的含义 67
8.2 安装NMock 68
8.3 创建模拟对象 68
8.3.1 定义接口 69
8.3.2 创建类 69
8.3.3 集成NMock 75
8.3.4 运行测试 78
8.4 小结 80
第9章 自动化环境工具:CruiseControl.NET 81
9.1 CCNet的含义 81
9.2 安装CCNet 82
9.3 设置CCNet服务器 82
9.3.1 创建CCNet配置文件 82
9.3.2 启动CCNet服务器 84
9.4 设置CCTray 84
9.4.1 启动CCTray 85
9.4.2 配置CCTray 85
9.4.3 使用CCTray 87
9.5 设置Web Dashboard 88
9.5.1 安装Web Dashboard 88
9.5.2 运行Web Dashboard 92
9.6 小结 93
第10章 重构 95
10.1 Visual Studio 2005和重构 95
10.1.1 Extract Method工具 95
10.1.2 Rename工具 98
10.1.3 Encapsulate Field工具 99
10.1.4 Extract Interface工具 100
10.1.5 Promote Local Variable to Parameter工具 102
10.1.6 Remove Parameters工具 103
10.1.7 Reorder Parameters工具 104
10.2 小结 105
第Ⅲ部分 实施XP第11章 发布规划——旅程开始 109
11.1 业务问题介绍 109
11.2 故事编写 110
11.2.1 帮助客户编写故事 110
11.2.2 创建概要设计 119
11.2.3 比较故事和任务 121
11.3 故事估算 121
11.3.1 评审故事 122
11.3.2 获取全景 125
11.4 宣布速度 126
11.5 故事选择 126
11.5.1 优化故事的排列顺序 126
11.5.2 选择故事子集 127
11.5.3 细化子集选择 128
11.6 教练日志 130
11.7 小结 130
第12章 第一次迭代的迭代规划 131
12.1 故事选择 131
12.2 故事任务划分和分配 133
12.2.1 将故事分解成任务 133
12.2.2 签约承担任务 138
12.3 迭代平衡 141
12.4 教练日志 142
12.5 小结 143
第13章 第一次迭代 145
13.1 日常站立会议 145
13.2 设计会议 145
13.3 开发人员的职责:结对、测试、编码和重构 146
13.3.1 开发用户故事“Login” 146
13.3.2 开发用户故事“Browse Catalog” 162
13.3.3 开发剩余用户故事 191
13.4 其他团队成员的职责 191
13.4.1 验收测试人员 191
13.4.2 跟踪人员 192
13.4.3 客户 192
13.4.4 教练 192
13.5 教练日志 192
13.6 小结 193
第14章 第二次迭代的迭代规划 195
14.1 速度调整 195
14.2 故事选择 196
14.3 故事任务划分和分配 198
14.3.1 将故事划分为任务 198
14.3.2 签约承担任务 202
14.4 迭代平衡 205
14.5 教练日志 205
14.6 小结 205
第15章 第二次迭代 207
15.1 重构 207
15.2 设计会议 212
15.3 开发人员的职责 212
15.3.1 开发用户故事“Display Checkout Confirmation” 212
15.3.2 验收测试 267
15.3.3 开发剩余用户故事 267
15.4 教练日志 267
15.5 小结 268
附录A 准备开发环境 269
A.1 Visual Studio设置 269
A.1.1 创建Northwind解决方案 269
A.1.2 创建DataLayer项目 270
A.1.3 创建BusinessLayer项目 272
A.1.4 创建NorthwindWeb项目 273
A.1.5 创建TestLayer项目 274
A.1.6 运行单元测试 275
A.2 数据库设置 279
A.2.1 设置ODBC数据源 280
A.2.2 连接数据库 281
A.2.3 浏览数据库 282
附录B .NET C#编码规范 285
B.1 命名规范 285
B.2 缩进 287
B.3 声明 287
B.4 语句 288
B.5 注释 290
B.6 空格 290
B.7 解决方案和项目组织 291
附录C XP资源 293
C.1 网站 293
C.2 邮件列表 294
C.3 会议 294