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

来源:互联网 发布:json数据格式 编辑:程序博客网 时间:2024/06/05 14:53

1.什么叫做“自顶向下,逐步求精”?

目前软件开发方法使用最广泛的,当属结构化的方法和面向对象的方法。而其中,结构化程序设计支持“自顶向下, 逐步求精”的程序设计方法。

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




2.谁是沃斯?

有兴趣的可以了解一下这个方法的由来:

大概是这样的,1971年,著名的瑞士计算机科学家尼古拉斯·沃斯,基于其开发程序设计语言和编程的实践经验,在4月份的 Communications of ACM上发表了论文“通过逐步求精方式开发程序’(Program Development by Stepwise Refinement),首次提出了“结构化程序设计”(structure programming)的概念。这个概念的要点是:不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低……最后一步编出的程序即为可执行的程序。用这种方法编程,似乎复杂,实际上优点很多,可使程序易读、易写、易调试、易维护、易保证其正确性及验证其正确性。

结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说沃思的结构化程序设计概念“完全改变了人们对程序设计的思维方式”,这是一点也不夸张的。1983年1月,ACM在纪念 Communications of ACM创刊 25周年时,从其 1/4个世纪发表的大量论文中评选出有“里程碑意义的研究论文” 25篇,每年1篇,沃思的这篇论文就是其中之一。




3.洗衣机案例

首先确定好洗衣程序的大步骤:

1)输入洗衣参数(洗衣模式):水位要求与洗衣时间

2)打开上水开关,返回水的高度,当 当前水位=水位要求,关闭开关

3)浸泡

4)电机转动,左右各三圈,返回时间计数,当时间计数=洗衣时间,停止转动

5)打开排水开关,返回水的高度,当 当前水位为零,关闭开关

6)停机

再根据这个来书写伪代码,首先程序的功能:

scanf水位要求、洗衣时间;

while当前水位 < 水位要求:注水;return 当前水位;

浸泡;

while时间计数 < 洗衣时间:电机转动:左三圈、右三圈;return时间计数;

while当前水位 > 0:排水;return当前水位;

exit.



4. “自顶向下,逐步求精”的方法有什么用处?

个人认为学习并使用“自顶向下,逐步求精”的方法,也就是采用模块分解与功能抽象和分而治之的方法,可以更有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子程序,便于开发和维护。它的重点在于把功能进行分解,也就是说,它是面向过程的。

当然,本文并未对面向对象的编程方法进行讨论,也欢迎大家来分享自己的想法。





原创粉丝点击