**部分 软件和模型
第1章 软件和模型
1.1 冒险的成功
1.1.1 瀑布模型的特点
1.1.2 可接受的失败
1.1.3 与工程项目的比较
1.1.4 项目失败的实例
1.2 能力成熟度模型
1.2.1 **级——初始级
1.2.2 第二级——可重复级
1.2.3 第三级——定义级
1.2.4 第四级——管理级
1.2.5 第五级——优化级
1.2.6 关键过程域
1.3 即时上市达成即时上市的方法
1.4 足够好的软件
1.5 **的程序员
1.5.1 程序员的差异
1.5.2 魔术数字28
1.5.3 真正的才能
1.6 编程心理学
1.6.1 不同的诠释
1.6.2 编码不等于软件项目
1.7 不要从经验学习
1.7.1 信念
1.7.2 从经验中学习
1.7.3 经验与实验
1.8 总结
思考与练习
参考文献
第2章 极限编程
2.1 极限编程的诞生
2.2 快速改变的软件需求
2.3 角色
2.3.1 权利和责任
2.3.2 单元测试和验收测试
2.3.3 客户
2.3.4 程序员
2.4 价值
2.5 原则
2.6 活动
2.7 12个实践
2.7.1 小版本
2.7.2 规划游戏
2.7.3 现场客户
2.7.4 隐喻
2.7.5 简单设计
2.7.6 重构
2.7.7 测试驱动开发
2.7.8 持续集成
2.7.9 结对编程
2.7.10 代码共有
2.7.11 编码标准
2.7.12 每周40小时工作制
2.8 极限编程实践的追溯
2.9 软件过程改进
2.10 总结
思考与练习
参考文献
第3章 敏捷软件开发
第4章 结对编程
第5章 群动力
第6章 重复编程
第7章 重构
第8章 测试驱动开发
第三部分 旅程结束、回到工作
第9章 极限编程的实施
第10章 极限编程的评语
附录A 测试驱动开发的形式化描述
附录B JUnit及BubbleSort实例
附录C 重构浏览器RefactorlT概览
附录D 重构实例
附录E Jester安装和应用
附录F Jcoverage安装和应用
附录G Jester和Jcoverage实例比较
附录H 参考答案