码迷,mamicode.com
首页 > 其他好文 > 详细

软件构造 第三章第二节 软件规约

时间:2018-06-22 17:42:42      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:IV   turn   tco   ali   函数   img   没有   return   pre   

第三章第二节 软件spec

 

 

技术分享图片

 

客户端无需阅读调用函数的代码,只需理解spec即可。

精确的规约,有助于区分责任,给"供需双方"确定了责任,在调用的时候双方都要遵守。

@param

@return

@throws

 

例子:

技术分享图片

 

Behavioral equivalence (行为等价性)

根据规约判断是否行为等价

与实现无关!

 

如果两个函数符合这个规约,故它们等价。

 

 

Specification Structure

前置条件(precondition):对客户端的约束,在使用方法时必须满足的条件。由关键字 requires 表示;

后置条件(postcondition):对开发者的约束,方法结束时必须满足的条件。由关键字 effects 表示

异常行为(Exceptional behavior):如果前置条件被违背,会发生什么

 

确定的规约:给定一个满足前置条件的输入,其输出是唯一的、明确的

欠定的规约:同一个输入可以有多个输出

未确定的规约:同一个输入,多次执行时得到的输出可能不同;但为了避免分歧,我们通常将不是确定的spec统一定义为欠定的规约。

技术分享图片

 

操作式规约,例如:伪代码

声明式规约:没有内部实现的描述,只有"初-终"状态,声明式规约更有价值

 

规约强度:

pec变强:更放松的前置条件+更严格的后置条件

技术分享图片

软件构造 第三章第二节 软件规约

标签:IV   turn   tco   ali   函数   img   没有   return   pre   

原文地址:https://www.cnblogs.com/masteryellow/p/9214215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!