《极限编程基础、案例与实施》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Stewart Baird著;袁国忠译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2003
  • ISBN:711511935X
  • 页数:314 页
图书介绍:本书以循序渐进的方式阐述了极限编程的方方面面。

第一部分 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.5 RUP方法 10

1.2.4 分步交付方法 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.1 价值观 18

2.2 定义XP 18

2.2.3 行为 19

2.2.2 原则 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.6 总结 23

2.5 XP与其他开发方法的不同之处 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.1 INCIS:一个关于软件灾难的案例研究 30

3.2 使用XP控制风险 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

第4小时课程 XP开发的生命周期 39

4.1 XP项目的生命周期概述 39

4.2.1 编写用户故事 41

4.2 调查用户需求 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.3 练习 48

4.9.2 答案 48

4.9 作业 48

4.9.1 小测验 48

第二部分 XP的工作原理 49

第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.4 隐喻 63

6.3 小型发布 63

6.5 简单设计 64

6.6 测试 64

6.7 重构 65

6.8 结对编程 65

6.9 集体拥有 66

6.10 持续集成 66

6.11.2 揭露加班黑市 67

6.11.3 长期还是短期 67

6.11.1 可忍受的工作时间 67

6.11 每周工作40小时 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

第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.5 总结 81

7.6 问与答 81

7.4.2 激励小组 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.1 小测验 93

8.4.2 答案 93

8.4 作业 93

8.4.3 练习 94

第9小时课程 以迭代的方式开发软件 95

9.1 将发布划分为迭代 95

9.2 小组集思广益地讨论任务 96

第三部分 运作XP项目 97

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.1 小测验 105

9.9 作业 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.5.1 小测验 115

10.4 问与答 115

10.5 作业 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.7 问与答 124

11.6 总结 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.1 通过持续集成将构建演绎到极致 134

12.2 开始自动化构建 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.3 练习 158

13.11.2 答案 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.8.1 小测验 169

14.8 作业 169

14.7 问与答 169

14.6 总结 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.3 练习 238

18.7.2 答案 238

18.7.1 小测验 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.5 就价格达成一致 246

19.3.6 签订合同 246

19.3.4 确定后勤保障 246

19.3.3 确定资源 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.7.1 小测验 254

20.7 作业 254

20.5 总结 254

20.6 问与答 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.3 练习 271

21.10.2 答案 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.3 练习 280

22.5.2 答案 280

22.5.1 小测验 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.1 小测验 293

23.5 作业 293

23.5.3 练习 294

23.5.2 答案 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.8 作业 303

24.6 总结 303

24.7 问与答 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