明盒预期函数设计

发表于:2008-01-28来源:作者:点击数: 标签:函数设计
为恢复已有的程序函数而解读和抽象控制结构与过程设计是互逆的。这些函数被称为预期函数(intended function)。明盒设计不断细化预期函数。这些预期函数也定义了控制结构细化过程中所要求的数据。在明盒细化过程中初始的预期函数就是一个状态盒规范。明盒细化
为恢复已有的程序函数而解读和抽象控制结构与过程设计是互逆的。这些函数被称为预期函数(intended function)。明盒设计不断细化预期函数。这些预期函数也定义了控制结构细化过程中所要求的数据。在明盒细化过程中初始的预期函数就是一个状态盒规范。明盒细化过程中的预期函数可根据表1所描述的设计语言文法而嵌入到它们的设计文本中。在表1中,方括号([ ])用来限定预期函数。在具体实现的语言中也可以使用注释符。整个控制结构的预期函数用[f]表示,放在入口处。控制结构里的预期函数接在关键字的后面。例如,在ifthenelse结构中,[g ]和 [h ]分别放在then 和else 的后面,以记录操作g和h 的效果。

  表1 控制结构中的预期函数

  

  图1则表示了对整型的变量的左操作的预期函数的细化过程。它本身嵌须一个更大的系统中(在图中未表示出来)。在第一步函数被分解为有两个执行部分的sequence结构。它们用两个需要进一步细化的预期函数表示(变量B是设计的局部变量。在初始预期函数的表示中并未出现)。注意在sequence中初始的预期函数被传递下来,以记录对数据的影响。第二步细化这两个新的预期函数,就变成了图右边的两ifthenelse控制结构。同样这两个新的预期函数也要往后传递以记录对数据的影响。

  图1同时也表现了与已得到程序函为目的而解读控制结构有关的两步抽象。抽象后的程序函数和最初的预期函数应一样。尽管这个简单的例子从控制结构上就可以理解,但是在相对较大的设计院里,预期函数在验证和维护上对保证设计意图则发挥了至关重要的作用。对仅仅5-10行的语句可以一目了然,但对50或100行就不那么容易了。很明显在预期函数对保证控制结构细化的正确性是很重要的。后面详述。

  

  另一个重要的地方就是明盒细化过程 并不是因循守旧的。只有在知道了如何将设计的上层结构后,才可能创建良好的上层结构。设计是一个反复的和创造性的过程。加深了理解,才会出现更好的主意。对下层的洞察会导致对上层的重新审视。设计的最后一步应该是自上向下地骊证和检验它的预期函数定义和细化步骤。

原文转自:http://www.ltesting.net