zoukankan      html  css  js  c++  java
  • 软件构造 第三章第二节 软件规约

    第三章第二节 软件spec

     

     

     

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

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

    @param

    @return

    @throws

     

    例子:

     

    Behavioral equivalence (行为等价性)

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

    与实现无关!

     

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

     

     

    Specification Structure

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

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

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

     

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

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

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

     

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

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

     

    规约强度:

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

  • 相关阅读:
    外包、构件和黑盒抽象等杂想
    C++类型转换小记(一)——C++转换操作符
    大学(一)
    【答】如何获取一个【备份路径】的信息?
    橘色超漂亮滑动二级导航菜单
    CSS自适应宽度按钮
    我们忽略的IE特效——一些特殊效果
    MSSQL 游标示例
    [存]超酷JS拖拽翻页效果
    漂亮的表格
  • 原文地址:https://www.cnblogs.com/masteryellow/p/9214215.html
Copyright © 2011-2022 走看看