一~三讲
§
软件构造的多维度视图
§
软件构造的阶段划分、各阶段的构造活动
§
内部
/
外部的质量指标
§
软件配置管理
SCM
与版本控制系统
VCS
§
Git
的结构、工作原理、基本指令
四~八讲
§
基本数据类型、对象数据类型
§
静态
/
动态类型检查
§
Mutable/Immutable
§
值的改变、引用的改变、
final
§
防御式拷贝
§
Snapshot diagram
§
Specification
、前置
/
后置条件
§
行为等价性
§
规约的强度
§
ADT
操作的四种类型
§
表示独立性、表示泄露
§
不变量、表示不变量
RI
§
表示空间、抽象空间、
AF
§
以注释的形式撰写
AF
、
RI
§
接口、抽象类、具体类
§
继承、
override
§
多态、
overload
§
泛型
§
等价性
equals()
和
==
§
equals()
的
自反、传递、对称
§
hashCode()
§
不可变对象的引用等价性、对象等价性
§
可变对象的观察等价性、行为等价性
第九讲
§
Programing for/with reuse
§
LSP
§
协变、反协变
§
数组的子类型化
§
泛型的子类型化
§
泛型中的通配符
(?)
§
Delegation
§
Comparator
和
Comparable
§
CRP
原则
§
接口的组合
§
白盒框架的原理与实现
§
黑盒框架的原理与实现
十~十一讲
§
可维护性的常见度量指标
§
聚合度与耦合度
§
SOLID
§
语法、正则表达式
§
设计模式
adapter
、
decorator
、
strategy
、
template
、
iterator/iterable
、
factory method
、
visitor
第十二讲
§
健壮性和正确性
§
Throwable
§
Error/Runtime
异常、其他异常
§
Checked
异常、
Unchecked
异常
§
Checked
异常的处理机制:
–
声明、抛出、捕获、处理、清理
现场、释放资源等
§
自定义异常类
§
断言的作用、应用场合
§
防御式编程的基本思路
§
黑盒测试用例的设计
–
等价类划分、边界值分析
§
以注释的形式撰写测试策略
§
JUnit
测试用例写法
§
测试覆盖度
软件的外部质量指标
外部质量指标:
正确性:最重要的指标(按照预先的规约进行)
正确性保证:测试与调试;防御式编程;形式化方法
健壮性:针对异常情况的处理,是对正确性的补充
异常:依据规约,未被specification覆盖的情况
可扩展性(应对变化):对软件的修改是否足够容易。
规模越大,扩展越难
简约设计主义;分离设计主义
可复用性:一次开发,多次使用
软件构造常见的模型
瀑布模型(线性推进)
衔接(文档);无法适应需求的变化
增量过程:多个瀑布的串行
V模型:每次加评价与确认验证
螺旋:引用风险评估和分析