自顶向下,逐步求精

来源:互联网 发布:淘宝最后发货时间 编辑:程序博客网 时间:2024/06/07 02:09

自顶而下的设计方法是将复杂的大问题分解为相对简单的小问题,找出每个问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。其核心本质是”分解”。

逐步求精是将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单易实现的模块。求解过程可以划分为若干个阶段,在不同阶段采用不同的工具来描述问题。在每个阶段有不同的规则和标准,产生出不同阶段的文档资料。

这里写图片描述

自顶向下设计是一种逐步求精的设计程序的过程和方法。

对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。 按自顶向下的方法设计时,设计师首先对所设计的系统要有一个全面的理解.然后从顶层开始,连续地逐层向下分解,起到系统的所有模块都小到便于掌握为止。

下面以常见的洗衣机为例介绍自顶向下逐步求精的方法
首先用伪代码体现正常洗衣步骤
Choose mod and water volume
Open
Water in switch open
Water enough
water in switch close
Time enough
motor run(direction) //soak 电机转动 left左转 right右转 stop停
Time enough
water out switch open
No water
Start dewater
Time enough
water out switch close
halt (return code) //停机, success 成功 failure 失败

2.逐步求精 写出每个步骤的伪代码

Input mod, water volume
Open power switch
Water in switch open
If (water>=water volume)
Water in switch close
if(time>=soak time)
For(time=0; time>=wash time; time++)
Motor run //left right stop
Water out switch open
if(water==0)
For(time=0; time>=dewater time; time++)
Motor run //left right stop
Water out switch close
Return

以上就是我对自顶而下,逐步求精的理解。 希望有所帮助,感谢阅读~

原创粉丝点击