本文主要针对软件构造这门课所学内容中相对独立且容易混淆的知识点,按照课件的划分逐章列举。
1 Views and Quality Objectives ofSoftware Construction
本章主要介绍软件构造的观察视角和质量指标等概念。
首先是软件构造的多维视图:
当然并非图中的所有内容都要学习和记忆,本学期的课程中涉及到的只有下面这些:
接下来是我们所关注的软件外部质量因素:
以及这些属性间的折中策略也要记忆,在此就不再列举。
2 Testing and Test-First Programming
本章主要讲述对软件程序的测试和测试优先编程,要区分黑盒测试和白盒测试:
首先是黑盒测试的特点:
然后是白盒测试的特点:
3 Software Construction Process andConfiguration Management
首先是软件开发中的一些过程模型:
明确这些模型之间的区别即可,无需过多记忆;
然后分别是分布式版本管理系统Git的结构组成与相关指令操作:
4 Data Type and Type Checking
本章重在区分可变类型与不可变类型之间的区别,这个概念对后续章节的学习是非常重要的:
首先是基本数据类型和对象类型的区别:
然后是可变类型与不可变类型之间的区别:
最后要掌握代码快照图的概念与画法:
5 Designing Specification
本章主要讲述规约的概念与如何书写好的规约:
首先是规约的结构组成:
下图为规约的例子:
最后要理解规约强度的概念与区分比较:
6 Abstract Data Type (ADT)
本章主要围绕ADT进行展开,是本门课的核心基础内容,有很多概念必须要理解好。
首先是四种操作方法:
接下来是重要的概念——表示独立性:
然后是不变量Rep:
然后是最重要的部分Rep Invariant and Abstraction Function,即 RI 和 AF:
准确理解上述概念,再结合合理的注释,本门课前半部分的内容就可以很好的完成了。
7 Object-Oriented Programming (OOP)
本章主要是为了实现用OOP/接口/类实现ADT。
首先是类成员变量和实例成员变量、类方法和实例方法的概念区分:
override覆盖重写:
overload重载及其规则:
二者之间的不同:
多态:
8 Equality in ADT and OOP
本章主要在于一些概念的理解与区分:
具体概念在这里便不做赘述。
另外就是对equals的重写:
还有对hashcode的重写:
以上便是本人在复习过程中从课件摘选出的关键的部分内容。