软件构造第三章复习(二)

Specification

规格说明的作用:规格说明是团队开发的关键,是分配责任的基础,对实现者和使用者都有约束,利于确定错误的位置和责任。

规格说明的内容:如果是一个函数的规格说明,需要描述函数功能,输入参数和返回值代表的含义。如果是ADT的规格说明则需要写清可变不可变、AF、RI、safety from exposure以及线程安全性。

前置条件和后置条件:
前置条件:是对使用者的约束
后置条件:是对实现者实现结果的约束
如果前置条件满足了,则后置条件必须满足;反之,如果前置条件不满足,后置条件则无需满足。

Java中的规格说明:前置和后置条件中对类型的声明,将由编译器进行检查,确保正确性。其余部分通过注释的形式进行描述,由人来保证正确性。

对spec的比较从以下三个方面进行:
①确定性:当前置条件满足时,只有一个返回值和一个最终状态,不存在有效输入对应多个有效输出。如果有多个输出则它是低确定的, 将不是确定性的spec统一定义为欠定的。 规格说明的不确定性,为实现者提供了在实现时选择实现方案的机会
②申明性规范:只说实现的功能是什么,不说是如何实现的。
③健壮性:要求更少、承诺更多的说明可以替换要求多、承诺少的说明

Diagramming specifications: 一个规格说明定义了一个区域,其中包含的点为其实现。一个实现或者满足规格说明(区域内),或者不满足(区域外),如图:
在这里插入图片描述
加强后置条件,意味着对输出要求更多,实现自由变少,弱化前置条件,实现中需要处理更多的情况,使可满足的实现变少(点变少),故规格说明越强,区域越小。如图:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值