"自顶向下,逐步求精" ——程序结构化设计方法

来源:互联网 发布:ds数据精灵破解 编辑:程序博客网 时间:2024/06/14 16:39

“自顶向下”
  是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
“逐步求精”
  是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。


  “自顶向下、逐步求精”的程序设计技术是目前较为时髦的(当然也是较为合理的)找出一个问题的解题算法的一种思维方法。“自顶向下、逐步求精”过程中的每一步,即分解某一具体问题时,主要用到如下四种求精技术:
  1. 顺序连接的求精
  2. 分支、选择的求精
  3. 循环的求精
  4. 递归的求精
  当问题的子解具有前后关系时,采用第一种顺序连接的求精技术,将问题分解成互不相交的几个子问题的顺序执行。
  当问题是分别不同情况而应该进行不同处理时,采用第二种分支、选择的求精技术(构造分支)。这时要注意分支条件。
  当问题的子解具有特性:如果有向解的方向前进一步的方法,且不断重复该步骤,即能解决问题,最终达到完全解。则应该采用循环的求精技术(构造循环)。这时一定要弄清循环的初始条件、结束条件和有限进展的一步都是什么.
  当问题的某步解法与前边高层次的某步解法具有相同特征属性,只是某些参数不同时,可采用递归的求精技术。这时应注意递归的参数变化规律以及递归出口。
  由此可知,所谓”自顶向下,逐步求精“的分析技术实质上是如下图所示过程的反复.这里写图片描述
  这种自顶向下、逐步求精的思维方式不是计算机程序员独有的。事实上在日常生活、工作中也经常的使用该技术,只不过不自觉或没意识到罢了。例如写一本书、或文章,总要作一个提纲,全书分成几章;然后对每一章又列出本章分几节;对每一节又分出几小节等等;
  最后再具体着手写每个小节。又如,设计生产某产品的一个工厂(比如汽车厂):首先应考虑全厂应该分成几个车间(例如,生产发动机的发动机车间、生产底盘的底盘车间、生产车轮的车轮车间、总装车间、…);然后再考虑每个车间应分成几个工段(例如,发动机车间应分成生产机壳的机壳工段、生产活塞的活塞工段、负责工件热处理的热处理工段、…);然后再考虑每个工段应该配备多少种设备,每种设备应配备多少台,… 等等。这就是”自顶向下,逐步求精“。


采用“自顶向下、逐步求精”方法构造程序有如下优点:

  1. 程序的层次分明、结构清晰。
  2. 便于集体开发程序。对于大型程序来讲,可以每组负责一个模块(一个子部分),在一个组内又可以每个人负责一个子模块(更小的子部分)等等。而各个模块之间以及各个子模块之间相对独立,互相之间没有制约,各个模块的负责人员可以独立的进行各自的程序设计。
  3. 便于调试。若程序有错误,可以很容易的将错误局部于某一子部分,找出错误,同时每一部分的错误是独立的,也不至于影响其它的部分。
阅读全文
0 0
原创粉丝点击