《构建之法》1,2,16章读后感
这一学期,我们开设了《软件工程导论》这门课程。任课老师将《构建之法》作为了我们这门课的教材。一开始,从名字来看,以为又是一本晦涩难懂的书。但是,随着深入的阅读,越来越惊叹于作者幽默诙谐的写作风格。学*专业*一年半,第一次见将软件工程写的如此有意思的书,在充满趣味性的同时,又不乏强大的实用性。虽然有些地方由于目前自己水平所限,还没有完全理解,但在这本书的帮助下,初步了解了现代软件工程。
第一章中首先为我们解释了什么是软件及软件工程。
“软件=程序+软件工程”,而“程序=数据结构+算法”,“软件工程=软件需求分析+软件设计+软件构建+软件测试与维护”。这是书中对软件工程的定义,个人认为这个定义不是十分全面(也可能是自己理解片面,还请老师多多指教)。百度上对软件工程的定义是:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。其实“软件工程”概念从提出以来,一直都缺乏一个统一的定义,仁者见仁。比较认可的定义是:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。我觉得软件工程还要与用户联系起来,因为软件的设计与开发最终目的就是为用户带来不同的产品。让我比较赞同的观点是作者强调了“文档”在软件工程中的重要地位,文档的书写对于团队项目中的设计与架构十分重要。个人感觉就相当于一座大楼的设计图纸。
第二章中主要介绍了单元测试,回归测试,效能分析工具以及个人软件开发流程。
首先书中对单元测试的重要性强调了很多,单元测试是针对软件的最小模块进行正确性检验的测试工作。因为单元测试可以方便修复软件开发后期出现的bug。在理解单元测试这个概念的时候,我遇到了问题。可能是由于自己缺少从事大型软件开发的经验。为了更好地理解“单元测试”的概念,我在网上也查找了了许多资料。https://www.cnblogs.com/rinson/p/6520602.html这篇博客的作者结合自己的实际工作经历,详细的讲述了他对“单元测试”的理解,个人感觉讲的不错。http://www.cnblogs.com/lovesqcc/p/6411233.html这篇博客对单元测试的知识进行了梳理。还在知乎上看到推荐的一本书《单元测试知道JAVA版》,虽然薄,但内容很实在。但是原则定的都很好,是不是真的能做到?一切看起来都很美,一切听起来都对,在做的时候是不是真的落实了?因为单元测试写起来也确实比较麻烦,会拖慢项目进度。而且有些时候,单元测试也不是很必要的。不过还是一句话,得具体问题具体对待。
第十六章中讲述了IT行业的创新。
其实,一开始看到这章标题,我就有一个疑问,同时,这也是困扰我很久的一个问题。我们现在“创新不易”。因为互联网技术的发展,很多软件都已经被他人开发出,而且在用户体验,功能方面做得也十分全面且出色。所以有什么方法能够帮助我们去创新吗?在之前学校的科研国创申报的过程中,我们小组就在选题方面曾争论许久。毕竟,要创新真的很难,而我们想到的创新点,在之后的答辩过程中,老师评价为可行性不高。创新首先就是一个勇敢者的游戏,毕竟守成容易,而创新则会失去一些东西。评审会结束后,自己也在思考,所谓的创新与可执行性究竟有没有必然的联系。个人以为更重要的想法。也许你的点子现在不可行,但随着科技的发展,在将来的某一天也许就可以实现;也许现在大多数人觉得没有用,但在将来也许会成为人们生活不可分割的一部分。比如,现在的阿里彻底改变了人们的生活方式。
最后,通过此次作业,让我对软件工程有了一个全新且全面的认识,这也是最大的收获。
PS:谢谢老师读到这里,老师辛苦啦!