软件构造第五章笔记

本文探讨了设计规约中的行为等价性概念,强调了函数替换的条件以及前置条件和后置条件的重要性。前置条件是对客户端使用方法的约束,而后置条件是开发者必须确保的结束状态。文章指出,更严格的规约意味着更高的实现者责任和更低的客户端负担,并提出了在预条件不满足时通过异常处理输入不合法的情况。
摘要由CSDN通过智能技术生成

设计规约

第五章设计规约
行为等价性:站在客户的角度,看两个函数是否可以互相替换。如果两个函数所能实现的效果相等,则具有行为等价性——根据规约查看行为等价性
前置条件:对客户端的约束,在使用方法时必须满足的条件
后置条件:对开发者的约束,方法结束时必须满足的条件
如果前置条件满足了,后置条件必须满足
前置条件不满足,则方法可做任何事情。
在这里插入图片描述

问题所在:
@requires @effects不可能存在,只有@param @throws @return
String boolean等描述数据类型的语句不要存在
第一行应该是/**

规约的强度判断法则
spec变强:更放松的前置条件+更严格的后置条件
举例如下:
在这里插入图片描述
在这里插入图片描述

越强的规约,意味着implementor的自由度和责任越重,而client的责任越轻。
在表示图中,某个具体实现,若满足规约,则落在其范围内;否则,在其之外。更强的规约,表达为更小的区域
客户端不喜欢太强的precondition,不满足precondition的输入会导致失败。惯用做法是: 不限定太强的precondition,而是在postcondition中抛出异常:输入不合法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值