Spec规格说明
作用:隔离变化,无需通知客户端,提高效率,解耦合,扮演防火墙的角色
内容:只讲做什么,不讲怎么做
行为等价性:(是否可以相互替换):1.客户端是条根据用户需求可能等价 2.如果规约一致那么就等价
结构:
1.前置条件对客户端进行约束
2.后置条件对开发者的约束
3.异常行为
keys:1.前置条件满足了,后置条件必须满足 2.除非在后置条件中声明过,否则方法内部不应该改变输入的参数
强度与替换:
1.Spec变强:前置条件变弱+后置条件更强
2.两个条件同时同向变化无法进行比较
3.替换:如强度s2>=s1 ,则s2可替换s1
4.强度越强,在diagram中表示的面积越小
确定/欠定规约:
1.确定Spec:给定一个满足前置条件的输入,输出唯一明确
2.欠定Spec:同一个输入可以有多个输出
操作式/声明式规约: 1.操作式:伪代码 2.声明式:初终状态,内部红丝线细节不在规约中
是否使用前置条件=>检查参数合法性代价及方法适用范围。