声明性的和操作性的规格声明
作者:互联网
声明性的和操作性的规格声明
笼统的说,规格说明分为两种∶操作性的(Operational)规格说明给出了实现过程的步骤(就像伪代码一样),而声明性的(Declarative)规格说明不对实现过程进行要求,它们仅仅给出最后输出的属性和意叉,以及它们和输入之间的关系。
在绝大多是情况下,声明性的规格说明更合适。它们通常会更简洁、更易懂、并且最重要的是,它们不会让使用者尝试依赖特定的实现方案(很多时候一个模块的实现方案会不得不改变)。例如,如果我们想要允许多种方案来实现find,我们就不会在规格说明要求“从数组低位开始向上逼历搜索"。
有些时候,程序员想要给维护者(maintainer)模块的实现信息,于是他们将实现描述写在了规格说明中。要记住,规格说明是给使用者而非模块的开发者使用的,如果你想要用描述模块的实现方法,将它们注释在模块里面。另外,对于一种声明性的规格说明,可以有多种描述方法,例如下面这几个声明性的规格说明都是等价的∶
static boolean startsWith (String str, String prefix) effects: returns true if and only if there exists String suffix such that prefix + suffix = str
static boolean startsWith (String str, String prefix) effects: returns true if and only if there exists integer i such that str.substring(0, i) = prefix
static boolean startsWith (String str, String prefix) effects: returns true if the first prefix.length() characters of str are the characters of prefix, false otherwise
标签:String,prefix,说明,规格,操作性,str,软件,声明 来源: https://www.cnblogs.com/Gusimo22/p/16367145.html