哈工大软件构造复习第五讲

规约(Specifications)

规约注释包含:功能描述、输入数据限制、返回值

行为等价性(Behavioral equivalence)

一般站在用户(客户端)的角度看,可根据规约判断是否行为等价

前置条件和后置条件

前置条件,关键词requires 

是使用方法必须满足的条件,约束客户端

后置条件,关键词effects

是方法结束时必须满足的条件,约束开发者

如果前置条件满足,后置条件必须满足;如果前置条件不满足,方法可以做任何事

Java中的静态类型声明是一种规约,可据此进行静态类型检查static checking

方法前的注释也是一种规约,但需要人工判定其是否满足

前置条件在 @param中,后置条件在 @return@throws中(@return中不能包含具体类型,如 @return boolean)

a9305776fdff4275ac6c168c9eb4e65e.png

 规约强弱:

条件更弱,后置条件更强,spec更强。

 

Diagramming specifications

每一个点代表一个方法的实现。如果某个具体实现满足规约,就落在其范围内;否则在其之外。

5dd26ceea845489e9656d56541c097a8.png

 

更强的规约,表示为更小的区域。(实现的自由度小,面积小)

580ac7ab61ba4a3fad81198a81a5daab.png

 规约强弱判断实例

b3e9e44062904ea5ba7a1ee734be6dfc.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值