软件领域可以分为两个方面:一方面是技艺创新的大爆发;另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等。
—— 瓦茨·汉弗雷 / 软件工程的奠基人之一
上学期的这本书的全称是《构建之法 — 现代软件工程》,封面设计得很朴素,我觉得没有亮点。当我读到书中人物介绍的时候, 忽然觉得,这本书写得跟小说似的,而且语言幽默风趣,颠覆了以前教材刻板生硬、枯燥乏味的形象,相较之下,这本书显得清新脱俗。
带着学习的心态,通读了这本书的前两章,首先第一章,概论,通过阿超给儿子写的一个网站这个小故事来告诉我们软件流程应该达到很好的质量才能保证开发出来的软件的质量,从而引出软件测试。就像书上的比喻一样,从最早的纸飞机到现在的民航,就像我们开始的helloword到将来工作以后的软件公司,我们现在只能让程序能跑起来就大吉大利了,殊不知今后的一个差错,会影响一个公司,一个行业。第一章介绍了计算机科学的领域,软件工程与计算机科学的关系,软件的特性,软件工程的定义与组成部分。并且最后在结尾告诉我们,能够研发符合用户需求的软件,通过一定的软件流程,在预计的时间内发布足够好的软件,能证明所开发的软件是可以维护和继续发展的,只有做到这三点才能说是初步学会了软件工程。
第二章个人技术和流程,主要讲单元测试,回归测试,效能分析,个人软件开发流程。通过小飞和阿超的故事新出了单元测试的重要性,并且要从开始就要写单元测试,不然后期发现的bug,修复起来要更多时间。并且单元测试应该由最熟悉代码的自己来写。回归测试可以理解为,回归到以前不正常的状态,而通过效能分析工具能知道自己程序跑的速度,效能测试,分析,改进,再效能测试的流程,逐渐提高程序的效能和编程水平。