本书以一个案例的演变模拟不断变化的用户需求,按照增量迭代的开发模式,将碎片化的功能开发、用户交互、数据处理等知识,以及软件设计、软件测试和敏捷开发的*佳实践,与软件开发的原理、技术和工具融合到设计、编码、调试及测试的构造过程。内容包括软件构造的一般原理(如模块化、增量迭代)、常用技巧(如表驱动编程、测试驱动开发)、软件设计(契约式设计、设计模式)、软件知识(如软件测试、软件复用)以及软件构造的工作要素(如编码规范、构造工具)和活动(如设计、编码、测试、交付)。本书提供配套电子课件、案例源程序、例子代码、教学参考方案等。本书面向计算机学科的本科学生,可作为“软件构造”、“Java面向对象课程设计”等课程的教材,也可作为“实用软件工程”的参考书,同时也适合学习软件开发的其他专业及爱好者参考。