书籍详情

极限编程基础、案例与实施

极限编程基础、案例与实施

作者:(美)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                  

猜您喜欢

读书导航