简介
自顶向下设计是一种逐步求精的设计程序的过程和方法。对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
“自顶向下”
是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
“逐步求精”
是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。
我对自顶向下,逐步求精方法的理解即为将一个复杂的问题自上而下的分解为小的分支,在通过分支分解将问题逐步解决的过程,是一种面向过程的设计方法。
举个例子
以洗衣机的洗衣过程为例
通过洗衣机面板可见,洗衣程序被初步分解为选择洗衣模式,注水,浸泡,漂洗,排水,脱水等过程。
通过以下伪代码逐步实现各个过程
READ 用户选择模式
REPEAT
注水
UNTILL 水位=注水要求
REPEAT
浸泡
UNTILL 时间 = 时间要求
WHILE(电机启动时间>0)
REPEAT
电机左转3次
电机右转3次
时间-1单位
ENDWHILE
WHILE(水位!=0)
排水
ENDWHILE
FOR(脱水时间>0)
电机转动
ENDFOR
关闭电源
综上,洗衣程序就被自顶而下分解为一个个小的部分,通过小的部分的实现完成整个程序。