Top-down Design简介
来源:互联网 发布:阿里云redis 编辑:程序博客网 时间:2024/05/24 06:59
“自顶向下,逐步求精的方法”在英文中称作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)**
- Top-down Design简介
- Top-Down design
- Top-Down Design
- 自顶向下(top down)简介
- Top-down design——解决问题的基本法
- Top-Down!!!
- Top-down
- 用一个日历程序来诠释top-down design和bottom-up implementation
- Writing Better T-SQL: Top-Down Design May Not be the Best Choice
- “自顶向下,逐步求精”——Top-down Design
- Top down clustering
- 自顶向下,逐步求精(Top-down)的程序设计方法简介
- [msdn]Top-Down vs. Bottom-Up DIBs
- Creating top-down Web services using MyEclipse
- Top-down and bottom-up parser
- [2_1_frac1] Generate Fractions (Divide Top->Down)
- Top-Down vs. Bottom-Up DIBs
- Computer Networking A Top-Down Approach 总结
- 赛灵思王之寂寞:深度学习这场FPGA盛宴舍我其谁?
- PAT 1032. 挖掘机技术哪家强(20)
- Druid 介绍及配置
- python+mysql样例
- Java多线程读书笔记(四)
- Top-down Design简介
- 第六章练习
- 转移指令
- Java-List接口
- 获取window值
- Shop项目--6. 商品的浏览历史记录。product.list.jsp
- 本地部署ngrok
- C++高级工程(六)预处理器
- 直接算法+动态规划算法求解最大子段和