“自顶向下,逐步求精的方法”在英文中称作Top-down Design,是一种计算机编程使用的算法思想,顾名思义,这种方法的思想就是对现在遇到的复杂或者抽象化的问题,进行纵向深入分解并使其被分解为多个简单的、具体化的、可解决的问题。
专业的说法是:(例如在电子行业中)首先:建立一个新的asm文件
然后在asm里面第一需要建立的是整个asm的基准,后续不断的插入空的prt文件,
把需要的prt空文件建完以后,根据顶层的基准创建第一个prt的feature,完善第一个prt以后
后面的零件可以根据第一个prt,也可以根据顶层的基准来完成feature的创建。以此类推,直到完成整个asm的建立。”
(然而我一个字也看不懂)
下图就是Top-down中的一个应用的示例图。
实际上这种思想十分易懂,生活中处处都有它的身影,例如在信息学中就有Work Breakdown Structure(WBS)方法,由Top-down生发出的思想有很多种,Top-down中的纵向深入也可以改为横向分块,WBS就类似于这种解决问题的思路。
上面是招标工作和项目施工阶段的两张WBS图,可以看出Top-down的方法深深影响着生活中各个领域,实际上还有另一种与之截然相反的结构,我们称之为:Bottom-up方法。两者的特点决定了它们的应用范围:以产品的开发过程为例Top-down Design设计多用在新产品的设计,产品的设计流程可以从制定规格,骨架,外观造型等标准设计流程开始。若是旧的产品要达到由中心来控制全体的零组件,亦可修改模型架构成为Top-down设计的架构。 而Bottom-up Design设计多用在已知尺寸的产品的设计,设计的方法的好处是设计者不用考虑个别零件的关系。
上面讲述了几个Top-down方法的应用,其实它的定义相当简单,关键是在应用时如何判断化简到哪一步骤才停止,实际上问题根据不同的人有不同的难度,所以建议运用这种方法之前先确定难度,在确定将问题划分到哪种程度的难度后再确定大致划分的步骤。
PS:下面是举例(洗衣机)!!!
**“正常洗衣”的大步骤的伪代码分解:
注水
洗衣机内部水位达到一定高度时停止注水
洗衣机电机转动并且计时器开始计时
时间到后停止洗衣
排水
停机
2) 注水:
water_in_switch(open)
water_out_switch(close)
洗衣机内部水位达到一定高度时停止注水:
SET terminal to the value of the height to stop pouring water
IF get_water_volume() >= terminal
water_in_switch(close)
洗衣机电机转动并且计时器开始计时:
motor_run(direction)
时间到后停止洗衣:
SET terminal’ to the value of the height to stop run motor
IF time_counter() >= terminal’
排水
water_out_switch(open)
停机:
halt(returncode)**