表1 控制结构中的预期函数
图1则表示了对整型的变量的左操作的预期函数的细化过程。它本身嵌须一个更大的系统中(在图中未表示出来)。在第一步函数被分解为有两个执行部分的sequence结构。它们用两个需要进一步细化的预期函数表示(变量B是设计的局部变量。在初始预期函数的表示中并未出现)。注意在sequence中初始的预期函数被传递下来,以记录对数据的影响。第二步细化这两个新的预期函数,就变成了图右边的两ifthenelse控制结构。同样这两个新的预期函数也要往后传递以记录对数据的影响。
图1同时也表现了与已得到程序函为目的而解读控制结构有关的两步抽象。抽象后的程序函数和最初的预期函数应一样。尽管这个简单的例子从控制结构上就可以理解,但是在相对较大的设计院里,预期函数在验证和维护上对保证设计意图则发挥了至关重要的作用。对仅仅5-10行的语句可以一目了然,但对50或100行就不那么容易了。很明显在预期函数对保证控制结构细化的正确性是很重要的。后面详述。
另一个重要的地方就是明盒细化过程 并不是因循守旧的。只有在知道了如何将设计的上层结构后,才可能创建良好的上层结构。设计是一个反复的和创造性的过程。加深了理解,才会出现更好的主意。对下层的洞察会导致对上层的重新审视。设计的最后一步应该是自上向下地骊证和检验它的预期函数定义和细化步骤。