对《构建之法:现代软件工程》的认识

对《构建之法:现代软件工程》的认识

这周读了《构建之法:现代软件工程》与《软件工程实践者的研究方法》中的部分,结合大学两年多的学习,我来谈一下我所认识的软件工程。
在我以前的认知软件工程可以是一所大学的学院,或是一门专业,后来接触到一些同学在上软件工程这门课程。曾在其他书上看到软件工程是工程学的形式去设计,开发,管理,维护软件。软件所对应的我们大学所学的知识去做APP,做系统,做微信小程序。在看到《软件工程实践者的研究方法》这本书时,我认为对以前软件工程的认识有所狭隘。在书中作者把软件分为七大类:系统软件,应用软件,工程/科学软件,嵌入式软件,产品线软件,web应用软件,人工智能软件。或许换个方向,我们能发现软件工程的其它美。

第一章概论
作者介绍了软件工程的概念,软件工程的应用领域,以及软件的特殊性:复杂性,不可见性,易变性,服从性与非连续性。一款成功的软件离不开这五大特殊性。另外也介绍了软件工程与计算机科学的关系。两者联系紧密,但侧重点又有所不同。计算机理论的进展会帮助软件工程;软件工程的发展会帮助计算机科学家做更多的实验和探索。针对本章节提到的软件工程的目标,我想具体谈一下我的认识。
软件工程的目标——创造“足够好”的软件。怎样去定义一个的成功的软件,在大学的学习中,我狭隘的认为软件只要能跑起来,没有bug就是我所理解的成功。我们尽可能的避免bug。后来一位学长告诉我,在平时的学习中,一定要多接触bug,从bug中学到知识。从而以后能更好的从事这门行业。在看完这本书后,我意识到bug不仅是程序中出现的错误,还包括其更多的事情:如用户满意度,可靠性,软件流程的质量,可维护性等等,这在将来的学习和工作中将起到很大的作用。

第二章个人技术和流程
软件测试对于软件开发是一件非常重要的事情,在平时的学习中是非常有必要的。好的软件测试对软件开发可以节约很多的时间。在平时我们要更多的关注边界测试。

第三章软件工程师的成长
软件工程师对我们大三的学生看似一个遥不可及的事情。
我认为这张图非常的有用,好高骛远是这一代大学生的通病,我们都在脑子里构建大目标,却常常忽略一些知识。我们常常在网上找到一些代码,修修改改欺骗自己。重视基础才能走的更远。对《构建之法:现代软件工程》的认识

第四章 两人合作,第五章团队和流程
站在对方的角度看问题,或许困难迎刃而解。曾经接触过一些大佬,大佬常常抱怨,要是时间足够,我宁远自己开发。的确不同的人有着不同的开发习惯,这时常会带给彼此一些麻烦。这是我们就会注意到规范是多么的重要了。所以平时的学习中要注意代码的格式,注释,以及文档的编写。站在别人的角度看问题,将更加便捷团队的开发!

第六章敏捷流程
在日常的学习中注重对知识的掌握,人际间的交流,服从部门的安排,养成良好的习惯。注重团队的力量才能更加敏捷的开发软件。

第八章需求分析
好的开始是成功的前提条件。一半,充分的需求分析就是软件成功开发的。这要求我们要站在用户的角度看待问题。作为学计算机的学生,有时看别人花钱去找网上免费资源时候感觉很傻。在《软件工程实践者的研究方法》这本书中曾介绍对于开发人员来说一定要从利益相关者的角度看问题,这样才能为后来的软件开发节约必要的时间。这要求我们要尽可能的了解市场,去调研,去考察,对其他相关知识的学习。

第九章项目经理
对于此章节我想说好好学习吧,项目经理必定是有开发开发经验的程序员,当然我们平时也要对这方面进行培养。

第十章典型用户和场景
这要求我们要注重特殊的用户以及特定的功能。在需求分析的调研组中,我们一定不能忽视这些事情。要注重文档的编写,站在用户的角度看待问题。

第十一章 软件设计与实现
软件的设计就是把解决用户的需求,将现实中的问题用程序实现。图形建模和分析方法就相当的重要了,将抽象的事物实体化,从而用代码实现。软件的实现要求我们对用户需求的功能的实现。对《构建之法:现代软件工程》的认识
按照特定的流程进行软件的实现对于我们来说事半功倍。注重与团队之间的交流。

第十三章软件测试
要注重对程序开发时,我们要尽可能的测试,不要留到后期放在一起测试。要在平时去发现问题解决问题,学习一些测试方法与工具会起到事半功陪的作用。
接下来的章节,我就不一一介绍了。从这本书中我学到了很多的知识。在将来的学习和工作尽可能的将他们串联起来。注重软件的实现流程,从可行性分析,需求分析,软件的设计与实现,软件的部署到软件的维护。在平时的学习中注重流程的重要性。
问题
1,在本书在的前言部分提到了项目的实现,这学期我们将学到什么技术?做什么项目?
2,在平时的学习中,如何将学到的知识进行串联?
3,如何理解从网上下载的程序修修改改就成为自己的“微创新”?