羿先生的学习笔记[6]: 规约(Specification)

本文介绍了软件设计中的规约,包括规约的定义、如何编写规约以及规约的强弱比较。规约分为前置条件和后置条件,前者约束客户端输入,后者约束开发者实现。通过示例解释了如何用注释形式明确规约,并讨论了规约强弱的关系,指出更强的规约对开发者要求更高,对使用者更友好。
摘要由CSDN通过智能技术生成

羿先生的学习笔记[6]: 规约(Specification)

一、什么是规约

软件设计中的规约(Specification),指明了某个方法要求的输入及产生的影响。
规约是程序与客户端之间达成的一种契约:使用者有义务按照规约的要求输入数据,程序对正确输入的数据应进行正确的处理。使用者和程序都有义务遵循规约。
规约据此可以分为两部分:前置条件(pre-condition)和后置条件(post-condition)。前置条件是对客户端的约束,是使用方法时必须满足的条件;后置条件是对开发者的约束,是方法结束时必须满足的条件 。
使用者在使用方法时,不必关心方法的具体实现,只需阅读规约便可以理解方法的作用。

二、如何写规约

我们以下面这个方法为例:

public static int find(int[] arr, int val)
requires: val occurs exactly once in arr
effects: return index i such that arr[i] = val

方法在arr数组中找到val值并返回val值的索引,要求val在数组中仅出现一次。
我们用注释的方式格式化地给出规约:

	/**
     * Find a value in an array
     * @param arr array to search, requires that val occurs ex
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值