这几天首先学习了构建之法的第一章和第二章。
通过第一章的学习,我了解了计算机科学的领域、软件工程与计算机科学的关系、软件的特性以及软件工程的定义和组成部分;
我们都知道,软件=程序+软件工程,而它的拓展是 软件企业=软件+商业模式;
软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程;
软件工程包括:软件需求分析、软件设计、软件构建、软件测试和软件维护;
软件的分类大致分为:系统软件、应用软件和恶意软件;
软件开发过程中的主要难题有以下几点:复杂性、不可见性、易变性、服从性、非连续性;
第一章主要让我们了解了软件工程的基本知识。
第二章主要介绍了单元测试、回归测试、效能分析、个人软件开发流程(PSP);
单元测试是用来解决如何使自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的,量化的保证。
验证单元测试好坏的标准:单元测试应该在最基本的功能/参数上验证程序的正确性;单元测试必须由最熟悉代码的人(程序的作者)来写;单元测试过后,机器状态保持不变;单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟);单元测试应该产生可重复、一致的结果;独立性——单元测试的运行/通过/失败不依赖于别的测试,可以认为构造数据,以保持单元测试的独立性;单元测试应该覆盖所有代码路径;单元测试应该集成到自动测试的框架中;单元测试必须和产品代码一起保护和维护。
回归测试的回归即指“回归到以前不正常的状态”。回归测试最好自动化,以保证尽早发现问题;单元测试是回归测试的基础;
效能分析方法有两种:抽样和代码注入。一般的做法是,先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析;
个人开发流程是用来衡量一个团队能力的一套模型。
对于第一章和第二章的学习让我对于软件工程有了一个基本的了解,还了解了一些基本的概念,相信接下来的学习会让我了解更多。