《构建之法》这本书主要是以“做中学”为授课方式,它不是只教给我们一些理论性的书本知识,而是让我们在完成一个个的项目时,真正掌握编程的精义,拥有熟练地编写代码的能力。
首先,我们先要确定在这门课上我们和老师的关系,即健身教练和健身学员的关系。因为这样的关系一旦确定。就要求我们每个学生,都是想学好软件工程这门课,而教练即我们的老师,就要根据我们每个学生的不同,制定合适的计划来指导我们的学习。
我们每个学软件工程的人几乎都知道“程序=数据结构+算法”。而概论这一章告诉我们软件=程序+软件工程。同时它通过写一个程序员老爸由给儿子编了一个简单地程序而引发了一场“学案”。这告诉我们一个复杂的软件工程不但要有合适的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序之间的关系,编译参数,链接参数等。同时一个好的软件还应该有一个良好的商业模式,这样才能保障软件能够得到充分的利益。
同时,这一章还介绍了软件开发的不同阶段。其中包括玩具阶段,业余爱好阶段,探索阶段,产业阶段。通过纸飞机到现在的航天技术,生动形象的展示这几个不同的阶段。
接着,它告诉我们软件工程是什么,即系统的,有序的,可量化的方法应用到软件开发,运营和维护过程,而且其中包括软件需求分析,设计,构建,测试和维护等诸多领域。同时软件工程与许多学科都有密切关联。
软件的特殊性:1.复杂性2.不可见性3.易变性4.服从性5.非延续性。这些特殊性让编好一个软件变得极其困难,但又为软件提供了特殊的魅力。
软件工程与计算机科学虽然有很多关联,但却有着不同的侧重点,计算机科学主要偏理论一点,它的与实践相关的部分,都和数据及其他学科有关。而软件工程则离不开“人”,它与人的行为和需求密切相关。
软件工程的目标——创造“足够好”的软件,之所以说是足够好,是因为几乎没有软件是没有bug的,我们不能将一个软件做的完美,只能尽力将其做的足够好,这样就可以发布了。
第2章主要讲了个人技术和流程。
首先它为我们介绍了如何用VSTS写单元测试,经过查阅资料,我知道了VSTS的一些知识,它的全称是Visual Studio Team System,是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工具,VSTS使得整个开发团队拥有更好的沟通与合作,并且保证了更好的质量。为我们带来了他的全生命周期管理工具Visual Studio 2005 Team System,旨在改善软件开发方法在实际开发过程中的有效实施.VSTS扩展了Visual Studio 2005的功能,提供了新的源代码管理工具, 同时还为开发者提供了单元测试工具和代码分析工具. 不过VSTS 这次并不是将焦点全放在开发者身上, 它还提供了一系列支持整个开发团队的工具.。同时我还知道了什么是代码覆盖率:代码覆盖率是单元测试活动任务之一;覆盖率分语句覆盖率(即通常所说的行覆盖率)和分支覆盖率。它可以帮助我们1. 尽早评估代码质量2. 为功能测试关注点提供情报3. 估计修改已有代码所需的时间。
而我们在做单元测试时,就应该在软件设计时写出软件测试的用例,来保障软件的质量。在做单元测试的时候,还应该准确,快速的保证模块的正确性。同时。单元测试最好由自己来做。而且不宜用随机数来增加测试的真实性。
回归测试,就是“回归到以前不正常的状态”,就是一个模块或功能以前是正常的,但是在一个新的构建中却出现了问题,这就需要回归测试来解决此类问题。
效能分析主要讲的是通过一些测试代码来观察什么地方耗费的时间较多,能不能用别的方法来减少时间的花费,从而完成程序的优化。
个人开发流程,通过对比大学生和一些软件工程师在完成一个相同任务时的数据,告诉我们不要花费过多的时间在编写代码上,需求分析和测试同样重要 。