“自顶向下 逐步求精”的设计方法

“自顶向下 逐步求精”的设计方法



什么是 “自顶向下 逐步求精”的设计方法

自顶向下的设计方法是一种程序开发技术,其中问题被分解为更容易处理的子问题,这些子问题的解决方案组合起来构成整体问题的解决方案。


自顶向下方法的四个主要步骤


  • 分析问题
  • 编写主要模块
  • 编写其余的模块
  • 根据需要进行重组和改写


分析问题


首先要理解问题,列出必须处理的信息。这些信息可能是问题中的数据。明确采用什么样的解决方案。如果是报表,明确要采用的格式。列出你对问题或信息的假设。思考如何手动地解决这个问题,开发一个全面的算法或通用的方案。


编写主要模块


用自然语言或伪代码在主模块中重述问题。用模块名把问题分解成功能区块。如果主模块太长,说明这一层中的细节太多了。此时可以引用一些控制结构。如果必要,可以进行逻辑重组,把细节推延到下一层模块。

如果目前你不知道如何解决未成文的模块,不必担心。假装你有个非常聪明的朋友知道答案,把这个问题推迟到以后再解决即可。在主模块中所要做的,只是给下一层中每个解决任务的模块一个名字,要采用含义明确的标识符。


编写其余的模块


编写方案中的层数并不确定。每一层中的模块可以载入多个下层模块。虽然上层模块引用的是未成文的下层模块,但上层模块必须完整。不断细化每个模块,直到模块中的每条语句都是具体的步骤为止。


根据需要进行重组和改写


为变化做好打算。不要害怕从头来过。一些尝试和细化操作是必要的。要维持透明性,简单直接地表达你的想法。


怎样运用“自顶向下 逐步求精”的设计方法

“自顶向下 逐步求精”的设计方法_第1张图片

自顶向下设计最初把问题分解成一套子问题,然后再把子问题分解成子问题。这一过程将一直持续到每个子问题足够基础,不再需要进一步分解为止。我们创造了一种分层结构来表示问题和子问题之间的关系,这种结构也称为树形结构。在树形结构中,每一层中的模块都可以调用下层模块的服务。这些模块是算法的基本构件。

树形结构中包括细化的后继层。0层是最顶层,这一层是问题的功能说明,其下是细化的后继层。

需要扩展的步骤是抽象步骤,不需要扩展的步骤是具体步骤。如果一个任务困难繁重,可以把它的细节推到较低的层次中。这一过程也可以应用到棘手的子任务上。整个问题最终被分解成能够解决的单元。

你可能感兴趣的:(“自顶向下 逐步求精”的设计方法)