“自顶向下,逐步求精的方法”在英文中称作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简介相关推荐

  1. iOS在GitHub Top 前100 简介

    主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. 项目名称 项目信息 1. AFNetworking 作 ...

  2. ADNI以及study design简介

    相关名词: MCI:轻度认知功能障碍 EMCI:早期认知障碍 MCI:轻度认知障碍 LMCI:晚期认知障碍 CN:认知正常的志愿者 DTI:doppler tissue imaging,多普勒组织显像 ...

  3. Chromium源码目录结构简介

    Chromium源码目录结构简介入门必备. High-level overview 高级概述 Chromium is separated into two main parts (excluding ...

  4. android5.0后新特性修改标题头,Android5.0中Material Design的新特性

    Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出 ...

  5. 10G_Ethernet_03 Example Design

    由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此:  https://blog.csdn.net/qq_33486907/ ...

  6. linux保存动态进程信息,Linux 命令 - top: 动态显示进程信息

    命令格式 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 命令参数 -a 根据内存的使用排序. -b 以批处理模式操作. ...

  7. 【IEEE期刊专区】这本IEEE旗下期刊中科院升级为1区(TOP),什么来头?(附IEEE在检SCI目录)

    近期国自然也提交等待审核了,放榜等到7.8月份了,祝愿各位科研人有好运!现在的节点正是发表评职代表作的好时机,本期小编带来IEEE旗下高分区.高影响因子SCI期刊推荐,是不可多得的好刊代表,有意向作者 ...

  8. 5月SCI/SSCI/EI最新优质刊源合集(含CCF推荐,1-2区TOP期刊)

    计算机类SCI 计算机综合类 CCF C类 [期刊分区]IF:5.0-5.5,JCR1区,中科院3区 [检索情况]SCIE&EI双检 [征稿领域]有关计算机概率模型.函数.计算机视觉以及机器人 ...

  9. 快速上手SpyGlass——基本流程

            SpyGlass,这是一个很强大的RTL验证级工具.它不仅仅能检查sdc的错误,还能做以下各种检查:Low Power, DFT,CDC(Cross Domain Check). 一. ...

最新文章

  1. php 文件限速下载代码
  2. HTML基础知识个人总结
  3. 使用__FILE__和__LINE__定位错误
  4. 蜂鸟开发板 linux,蜂鸟E203系列——Linux下运行hello world例程
  5. 汇编指令mrs_专题1:电子工程师 之 软件】 之 【8.arm指令】
  6. 有序关系中的最大元与最小元
  7. BZOJ4337 : BJOI2015 树的同构
  8. ac自动机 匹配最长前缀_傻傻分不清吗?——Trie Tree,字典树、前缀树概述
  9. 项目验收的步骤和程序
  10. 漫谈广告竞价模式(二)
  11. 斑马打印机-中文打印
  12. 堆(heap)系列_0x0A:3种方法一次性解决堆溢出问题
  13. 零钱通项目 - 韩老师
  14. switch case语句用法详解
  15. 北京MaaS平台助力冬奥期间市民出行
  16. 志宇-shiro-web
  17. 暨南大学计算机考研资料汇总
  18. python求一组数中最大数_Python查找数组中最大的数
  19. 手机wps如何转换html,手机版wpsoffice怎么转换成电脑版
  20. 动态规划例题——潜水员

热门文章

  1. Linux CentOS 8(用户与组相关权限管理实验)
  2. Android使用Twitter4j集成Twitter
  3. 【poi第七节】poi设置excel 设置字体格式,java设置excel设置字体格式
  4. I Hate It(线段树点更新)
  5. 如何应用人工智能技术优化改进软件工厂流水线,这方面有什么示例
  6. 轻量级Kubernetes之k3s:13:调整缺省部署的traefik
  7. Caught exception while allowing TestExecutionListener [org.xx.ServletTestExecutionListener@xx]
  8. CentOS7 Theia安装笔记
  9. 【ROS话题通信】发布者和订阅者
  10. 三维电子沙盘开发教程 数字沙盘培训教程