自顶向下,逐步求精

自顶向下是信息处理和知识排序的策略,在软件,管理,组织等多个领域有重大用途。
这里写图片描述
其本质是一个系统的分解,以逆向工程的方式深入了解其组成子系统。指定出一些子系统,但又不详细表述任何一个子系统。然后每个子系统都会更加的细化,直到整个规范被简化为基本元素。
在新产品的设计和开发过程中,一个例子将包括选择特定的紧固件(例如螺栓),并且设计接纳部件使得紧固件适当地配合。在自上而下的方法中,定制紧固件将被设计成使其能够适当地安装在接收部件中。就透视而言,对于具有更严格要求(例如重量,几何形状,安全性,环境等)的产品(例如太空服),采取更自上而下的方式,并且几乎所有东西都是定制设计的。
在软件开发过程中,自上而下和自下而上的方法起着关键作用。自上而下的方法强调规划和系统的完整理解。固有的是,只有在系统的至少一部分的设计中已经达到了足够的细节水平之后才能开始编码。自顶向下的方法是通过将存根连接到模块来实现的。然而,这样做会延迟测试系统的最终功能单元,直到完成重要的设计。自下而上强调编码和早期测试,可以在第一个模块被指定后立即开始。然而,这种方法存在这样的风险,即模块可能被编码而没有清楚地知道它们如何链接到系统的其他部分,并且这样的链接可能不如最初想象的那么容易。代码的可重用性是自下而上方法的主要优点之一。
IBM研究人员Harlan Mills和Niklaus Wirth在20世纪70年代推动了自顶向下的设计。米尔斯开发了实用的结构化编程概念,并在1969年的一个项目中对它们进行了测试,以实现纽约时报太平间指数的自动化。这个项目的工程和管理成功导致了IBM和其他计算机行业的自上而下的传播。除了其他成就之外,Pascal编程语言的开发者Niklaus Wirth还撰写了具有影响力的文章Program Development by Stepwise Refinement。由于Niklaus Wirth继续开发Modula和Oberon(在知道整个程序规范之前可以定义一个模块),可以推断自顶向下的编程并不完全是他所提倡的。
直到20世纪80年代后期,自顶向下的方法在软件工程领域受到青睐,而面向对象的程序设计则有助于展示自上而下和自下而上的编程这两个方面的应用。现代软件设计方法通常结合了自上而下和自下而上的方法。尽管对完整系统的理解通常被认为是良好设计所必需的,但从理论上讲,自顶向下的方法,大多数软件项目都试图在一定程度上利用现有的代码。预先存在的模块给设计一个自下而上的味道。一些设计方法也使用一种方法,其中部分功能的系统被设计和编码完成,然后该系统被扩展以满足项目的所有要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值