推荐序2
我们所生活的社会的数字化程度越来越高,对计算机软件的依赖也越来越强。因此,软件开发在未来社会中会愈发重要。虽然人类在工程领域已经积累了上千年的经验,但是在软件工程领域却仅有几十年的沉淀。而软件工程本身还在不断快速发展、进化中,这导致软件工程的过程、方法、工具也在不断快速演进,而各种相关图书、网络教程也非常多,给人一种层出不穷、应接不暇的感觉。因此,如何能让大量软件工程实践者尽快掌握软件工程的精髓,是一个很大的挑战。 作为清华大学计算机系本科生必修课—软件工程—的任课教师,我对上述挑战也深有体会。“软件工程”课堂上的知识点就像资深实践者或学者总结出来的软件工程的“武功秘籍”,而软件工程的“武功”需要学生们自己“练武”习得。因此在课程的实践环节中,我们与企业联合设置了大作业题目—把企业实习带入课程,由企业中经验丰富的工程师言传身教软件工程中的知识点,与助教一起指导同学们完成大作业;同时邀请各行各业的资深软件工程师在课堂上做分享,为“软件工程”课程中的知识现身说法,提供鲜活的实践案例。
这些都对帮助同学们掌握软件工程技能起到了很好的作用,但是我个人感觉还缺少一本软件工程“武功秘籍口诀”类的工具书:既言简意赅,又对软件工程生命周期中的需求、设计、编码、测试、维护有全面覆盖。这样一本书能够让软件工程师在实践过程中时不时拿出来翻阅(而不是去翻查大量大部头的图书或课件),一方面检验自己前一阶段的实践是否遵循或违背了软件工程的重要原则,另一方面为下一阶段的实践提供方向性的指导。
本书恰恰就是这样一本书。虽然书中的201个原则总结于20多年前,但是其中绝大多数原则还能很好地适用于当今这个时代。我相信,这本书一定会对中国的广大软件工程师起到很大的帮助作用,并且对推动中国软件工程行业的健康发展产生良好的影响。我在此向中国广大软件工程师们强烈推荐这本书!
最后,真诚地感谢作者Alan M.Davis和本书译者们的辛勤付出!
裴丹
清华大学计算机系长聘副教授、博士生导师
清华大学计算机系本科生必修课“软件工程”课程的任课教师