2014/9 更新: 《构建之法 - 现代软件工程》已经出版

豆瓣讨论: 

当当购买链接:

互动出版网购买链接:

亚马逊 

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程 (不信就请看 )。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划。这几年教书的过程中, 我学习了一些 ,  还有些, 也对中国大学的。近两年, 希望这个软件工程课也能实践一些创新的点子。 

这套讲义在下面的学校正式课程中运用过:

 

2007 – 2010   清华大学理论计算机科学研究中心 (姚班) 主要是大四上学期 

2009,  2012    北航计算机系  大三上学期 
2010,2011,2012 秋季   中科大-微软 计算机实验班 (微软亚洲研究院创新人才班 ) 大四上学期       

还有在北大合作的教学: 

2007 - 2009 北京大学软件学院 研究生课程 (课程名叫 - 微软软件实现技术, 我是讲师之一, 只讲了本课件的少部分内容)

 

这套讲义有这样的特点:

理论和实践相结合,讲现代理论,同时讲体现理论的工具

结构紧凑,个人项目/结对项目/团队项目紧密配合, 能在16 周讲完。

面向实战,强调做中学 (learning by doing), 项目都公开发布,用户数量和反馈是项目重要的评价标准。

讲人在软件工程中的不同角色和作用 (软件过程, 软件工具, 软件人员的技术能力和职业能力)

有丰富的材料给教师/TA 使用 (见下面的 “学生作业”)

练习量大 (其实学生工作量和国际一流大学相仿), 内容多: 教材 (3 本), 参考书 (20 本)

 

讲义内容: (标题下没有链接的会在以后补充)

 

1. 概述

  • 项目剖析 

 

2. 个人开发技术

  1. PSP: , 

  2.     (在最小的编程单元上保证正确性)  &  回归测试   (保证程序在修改的过程中原有的功能保持稳定 )

      

 

3. 两人合作

    a

    b. , 有记载的最早的结对编程发生在 1987年3月…

    c.  

 

 

4. 软件过程/方法论

  1.  

  2. 敏捷方法:  ,  ,

  3. ,  TDD, FD 

  4. 支持软件过程的工具 ()

 

5. 团队中的角色与合作

  1. 团队成员和心态  - //鹦鹉  

  2.    PM 的成长,   

  3.    Dev 的成长      

  4.  & Test 质量保证和测试, , QA 的成长

 

6. 需求

a. 和建议 

b. 

c. 目标和远景  - 反面例子

d. 计划阶段, 软件估计 () ()

e. ,  

 

7. 设计和开发 

  1. 模块API 的设计 (,  mvc/mvvm,  interface)

  2.  

 

8. 稳定阶段发布和维护

a. 

b. 

 

9. 软件和 IT 业的创新

    a. 创新的迷思  连载   () () () 

    b. 

    c. 

    d.  

    e. 如何提出 (NABC)

    f.  创新的出路 - ;  创新的招数

 

10. 软件项目的管理

  •  - 事后诸葛亮会议

  •  ()

    

 

附录参考书论文阅读

教材 (3本, 同学选择一本, 同时借阅另外两本) :

1.   Steve McConnell (ISBN 1-55615-900-5)

    中文版 斯蒂夫·迈克康奈尔 著 译者: 席相霖 等 ISBN 9787505372856

2. Steve McConnell ISBN: 9780735619678

    斯蒂夫·迈克康奈尔 ISBN: 7121022982

3. 邹欣 (ISBN: 9787121071485)

主要参考书:

     by Scott Rosenberg, ISBN: 9781400082469

    中文版《》, 译者 韩磊, ISBN: 9787121066795

其它相关博客  

 

 

 

-------

给学生布置的作业列表:

    

     

                      ()

       

     (2011)

     (2012)

     (2012)

 

-------

学生的感想:

 

 

  

  

  

  

  

  

 

 

    2012 部分北航学生的感想:

 

 

所有讲义, 作业都可以分享给教师用于教学, 只要注明引用来源即可,  不必事先取得同意。

 

欢迎反馈和意见。