图书前言

本书是什么,不是什么

本书是给软件学院软件工程专业高年级或研究生的“软件工程”课程配套的实践书,它是一个动手的“脚本”,是更适合在“机房”里、对照着屏幕“操作”的书。基本上不是仅仅在课堂上讲,在图书馆里看的书。

如果在“软件工程”课程之外,专门开有“软件工程实训”课程(软件学院暑期通常为高年级或研究生专门开设此类课程),则可以直接使用本教程。如果并非实训课程,则作者给任课教师以下建议: 以理论为主、实践为辅的,可选作者已出版的《现代软件工程》(机械工业出版社,2008年8月)为主教材,本书为实践辅导教材。

既然本书只是一个“脚本”,因此,在不同的导演(老师)和不同的演员(学生)手中,当然会产生出完全不同的效果。本书作者使用此讲稿,已经在本科高年级和研究生中讲过4次,每次也都有新的变化。因此,本书只是提出一些思路,任课教师不必受本书的约束,这也是作者所希望的。

本书如何取舍

IEEE的《软件工程知识体系指南(SWEBOK 2004)》有11个知识领域、PMI的《项目管理知识体系指南2008第4版(PMBOK 2008)》定义了9个知识领域、42个过程,CMM/CMMI有5级,软件质量过程有6个关键活动……软件工程涉及内容包罗万象,必须进行适当的裁剪。取舍的原则只能是根据实训条件(包括时间)和学生可接受程度。

本书有何新意

有关“软件工程”的实践教程,图书云集,著者众多。作者跻身其中,若无一点新意,很怕滥竽充数,自取其辱。

“案例教学”方式已少新意;采用VSTS平台也算不上太多创新;若能将学生的项目实践活动真正按照一个规范(并非书本上的规范,而是业界流行,下同)的软件工程过程模式进行,并在规范的软件过程管理工具和平台的支撑与控制下完成,使学生在完成项目开发的同时,甚至项目开发目标都在其次,更重要的是能够真实、具体地体验一遍现代软件工程的开发管理过程,这才算有点新意,这样,才能算得上是“软件工程”的项目实训(重点是“实”)。

作者的另一个目的,就是把“软件工程”课程的教学看成是一个项目(某个学期、某位老师上某门课,应该可以算是一个项目)。希望通过尝试,通过成功或失败的实际案例,从课程目标设置、过程设计、内容安排,直至成果检验,提出一个教学项目的“目标与过程管理”的可行方案。希望(至少在这门课上)从此不要再搞那些无作用的“督导”、无聊的“网评”了吧!

如果做不到这些,可能我们都无颜站在讲台上教学生什么软件工程了,用“作坊”的方式能教出“现代软件工程”的能手?我不相信。

是为前言。

张家浩

2011年2月于南京百合果园