自顶向下:
将复杂的大问题分解为相对简单的小问题,找出每个问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。其核心本质是"分解"。
逐步求精:
将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单易实现的模块。求解过程可以划分为若干个阶段,在不同阶段采用不同的工具来描述问题。在每个阶段有不同的规则和标准,产生出不同阶段的文档资料。
自顶向下, 逐步求精不得不说是程序设计中一种十分重要的思想。
以洗衣机为例:
洗衣机的工作过程可以分为
- READ 用户选择模式
- REPEAT
- 注水
- UNTILL 水位=注水要求
- REPEAT
- 浸泡
- UNTILL 时间 = 时间要求
- WHILE(电机启动时间>0)
- REPEAT
- 电机左转3次
- 电机右转3次
- 时间-1单位
- ENDWHILE
- WHILE(水位!=0)
- 排水
- ENDWHILE
- FOR(脱水时间>0)
- 电机转动
- ENDFOR
- 关闭电源