有感于今天软件工程课程教学研讨所涉及的话题。
其实在多个场合和来自不同学校的老师讨论过本科或者研究生的软件工程课程,大致回想一下,有如下几个有趣之处:
(1)几乎所有人都承认软件工程课程难上;
(2)很多人都说在校学生(或者说没有工作经验/经历的同学)认识不到软件工程理论知识的重要性,上课难以听进去;
(3)很多人都说那些有工作经验/经历的同学(或者在职学生,或者在外面工作实习的学生),对课上所讲工程理论知识很有认同感;
(4)几乎所有人都认为实践训练很重要。
其实“有趣”这个词用的并不准确,我想表达的是,作为授课老师,在感性和直觉经验层次获得了这么多共识,本身已经很能说明问题了,但是似乎没有人从实证的角度来回答这些问题。不止如此,这种特征的问题在软件工程领域似乎还不少。比如:
(1)大家都认为没有丰富工作经验的人很难整理清楚需求;
(2)代码量不够的人很难做好质量控制工作。等等
这些问题的讨论可以引出几乎没有尽头的问题,动辄就会有人从管理、技术、人员、项目等多个维度来系统性分析。不管哪个维度,想说的都是软件工程有什么。翻开任意一本软件工程教材或专著,都会从这些维度展开论述。这说明这构成了这个领域的共同知识,于是就有了软件工程知识体系(Body of Knowledge),而且还专门配合知识体系定义和建议了相应的课程大纲。但凡讨论软件工程知识的系统性时,就离不开这个知识体系。我以前没搞明白,现在仍然还糊涂的是,如何应用那个知识体系来解决工程问题呢觉得,这其中还少了点什么。打个也许不恰当的比喻,知识体系好比是某套经典拳术,比如太极拳,从起式到最终收尾,一环扣一环,缺一招一式都不可以,练拳者必须严格遵守。而解决工程问题呢,就好比是搏斗,对手是工程问题。如果你是高手,对手就变得弱,于是无招胜有招,随意使用招式,哪怕是笨拙的招式,也可以很好的解决问题。但如果你的道行不够,那么对手就很难缠,你会不断的陷入沉思和被动,对手这样变化,意味着什么呢又会怎样呢用探手,还是撩腿来应对呢….
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!