自顶向下是一种逐步求精的设计程序的过程和方法。
对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。
这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
按自顶向下的方法设计时,设计师首先对所设计的系统要有一个全面的理解.然后从顶层开始,连续地逐层向下分解,起到系统的所有模块都小到便于掌握为止。
在你初学英语的时候,你的英语老师不可能一开始就教你某个单词的某个音标怎么去念吧?都会先告诉大家,学好英语就要会听、说、读、写,从四个方面去学,然后才会分别对各个方面进行训练,以达到学好英语的目的。
解决一个难题,往往不能够立刻想到最根本的步骤,而需要将其拆分,分解为几个子任务,逐一解决。
关于洗衣机运行程序的设计,如果采用“自顶向下,逐步求精”的方法来分析,可以是这样——
开电源
选择洗衣模式(标准模式、快洗模式、强洗模式、迷你洗、大物件等模式)
设置用水量
启动
洗涤(注水,电机转动,排水)
漂洗(注水,电机转动,排水)
脱水(电机转动,排水)
结束
如果用伪代码来表述该过程,即为——
Connect to the power
Choose the standard washing pattern
Start up
Wash
Water_in
Water_in_switch ( open )
Water_in ( volume )
Water_in_switch ( close )
Motor_run
While ( time_counter < setting_time )
Motor_run ( left )
Motor_run ( right )
End while
Motor_run ( stop )
Water_out
Water_out_switch ( open )
While ( Get_water_volume ( ) > 0 )
Water_out
Water_out_switch ( close )
Poaching
Water_in
Motor_run
Water_out
Poaching again
Water_in
Motor_run
Water_out
Dehydration
Water_out_switch ( open )
While ( time_counter < setting_time )
Motor_run ( left )
Motor_run ( right )
Water_out
End while
Motor_run ( close )
Water_out_switch ( close )
Halt