软件构造之Java规约(specification)

规约的组成

前置条件(precondition):输入满足的条件,在注释中记作requires

后置条件(postcondition):输出满足的条件,在注释中记作effects

例外行为(exceptional behavior):当前置条件不满足时会发生的事件。

规约的意义

规约描述了方法的行为,即当前置条件被满足时,在方法完成后,后置条件一定被满足;当前置条件不被满足时,后置条件可以不被满足,或称方法的行为是任意的。

在Java中,可以在方法注释中通过@param@return@throws等条目书写规约。

规约的比较

称规约S2比规约S1等价或更强当且仅当以下条件同时成立

  • S2的前置条件相等或弱于S1的前置条件。
  • S2的后置条件相等或强于S1的后置条件。

满足强规约的实现一定满足弱规约。进而,个满足弱规约的方法一定可以安全地被替换为满足强规约的方法。

注意规约间可能无法比较强弱。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值