Top-down Design简介
“自顶向下,逐步求精的方法”在英文中称作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简介相关推荐
- iOS在GitHub Top 前100 简介
主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. 项目名称 项目信息 1. AFNetworking 作 ...
- ADNI以及study design简介
相关名词: MCI:轻度认知功能障碍 EMCI:早期认知障碍 MCI:轻度认知障碍 LMCI:晚期认知障碍 CN:认知正常的志愿者 DTI:doppler tissue imaging,多普勒组织显像 ...
- Chromium源码目录结构简介
Chromium源码目录结构简介入门必备. High-level overview 高级概述 Chromium is separated into two main parts (excluding ...
- android5.0后新特性修改标题头,Android5.0中Material Design的新特性
Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出 ...
- 10G_Ethernet_03 Example Design
由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: https://blog.csdn.net/qq_33486907/ ...
- linux保存动态进程信息,Linux 命令 - top: 动态显示进程信息
命令格式 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 命令参数 -a 根据内存的使用排序. -b 以批处理模式操作. ...
- 【IEEE期刊专区】这本IEEE旗下期刊中科院升级为1区(TOP),什么来头?(附IEEE在检SCI目录)
近期国自然也提交等待审核了,放榜等到7.8月份了,祝愿各位科研人有好运!现在的节点正是发表评职代表作的好时机,本期小编带来IEEE旗下高分区.高影响因子SCI期刊推荐,是不可多得的好刊代表,有意向作者 ...
- 5月SCI/SSCI/EI最新优质刊源合集(含CCF推荐,1-2区TOP期刊)
计算机类SCI 计算机综合类 CCF C类 [期刊分区]IF:5.0-5.5,JCR1区,中科院3区 [检索情况]SCIE&EI双检 [征稿领域]有关计算机概率模型.函数.计算机视觉以及机器人 ...
- 快速上手SpyGlass——基本流程
SpyGlass,这是一个很强大的RTL验证级工具.它不仅仅能检查sdc的错误,还能做以下各种检查:Low Power, DFT,CDC(Cross Domain Check). 一. ...
最新文章
- php 文件限速下载代码
- HTML基础知识个人总结
- 使用__FILE__和__LINE__定位错误
- 蜂鸟开发板 linux,蜂鸟E203系列——Linux下运行hello world例程
- 汇编指令mrs_专题1:电子工程师 之 软件】 之 【8.arm指令】
- 有序关系中的最大元与最小元
- BZOJ4337 : BJOI2015 树的同构
- ac自动机 匹配最长前缀_傻傻分不清吗?——Trie Tree,字典树、前缀树概述
- 项目验收的步骤和程序
- 漫谈广告竞价模式(二)
- 斑马打印机-中文打印
- 堆(heap)系列_0x0A:3种方法一次性解决堆溢出问题
- 零钱通项目 - 韩老师
- switch case语句用法详解
- 北京MaaS平台助力冬奥期间市民出行
- 志宇-shiro-web
- 暨南大学计算机考研资料汇总
- python求一组数中最大数_Python查找数组中最大的数
- 手机wps如何转换html,手机版wpsoffice怎么转换成电脑版
- 动态规划例题——潜水员
热门文章
- Linux CentOS 8(用户与组相关权限管理实验)
- Android使用Twitter4j集成Twitter
- 【poi第七节】poi设置excel 设置字体格式,java设置excel设置字体格式
- I Hate It(线段树点更新)
- 如何应用人工智能技术优化改进软件工厂流水线,这方面有什么示例
- 轻量级Kubernetes之k3s:13:调整缺省部署的traefik
- Caught exception while allowing TestExecutionListener [org.xx.ServletTestExecutionListener@xx]
- CentOS7 Theia安装笔记
- 【ROS话题通信】发布者和订阅者
- 三维电子沙盘开发教程 数字沙盘培训教程