您的位置:首页 > 其它

2.11 结构化程序设计思想

2016-06-12 08:46 281 查看
程序设计方法经历了从传统的“面向过程设计”到目前被广泛接受的“面向对象设计”的过程。本节将讨论结构化程序设计。


概念提出

1976 年 N.Wirth 出版的名为 《Algorithms + Data Structure = Programs》的著作中,明确提出“算法”和“数据结构”是程序的两个要素,即程序设计主要包括两方面的内容。
行为特性的设计:指完整地描述问题求解的全过程,并精确地定义每个解题步骤,这一过程即是“算法设计”
结构特性的设计:指在问题求解的过程中,计算机所处理的数据、及数据之间联系的表示方法。

根据上述定义,传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。


设计特点

结构化程序设计方法SP(Structured Programming)的着眼点是“面向过程”。
结构化程序设计特点是将程序中的数据与处理数据的方法分离。


核心思想

结构化程序设计方法的核心是“算法设计”,基本思想是:
自顶向下和逐步细化的设计方法:将一个复杂任务按照功能进行拆分,并逐层细化到便于理解和描述的程度,最终形成由若干独立模块组成的树状层次结构,如下图所示。(查看动画演示



单入单出的控制结构:是指每个模块内部均用顺序、选择、循环结构来描述。


应用举例

举个较简单的例子:读入一组整数,要求统计其中正整数和负整数的个数。

【分析】:
该任务的顶层模块可设计为3块:
读入数据(模块1);
统计正、负数个数(模块2);      
输出结果(模块3);

其中,模块2可继续细化为以下小块:
正整数个数为0;负整数个数为0;
取第一个数;
重复执行以下步骤直到数据统计完。
若该数大于0,正整数个数加1;
若该数小于0,负整数个数加1;
取下一个数。

上述结构化程序设计的方法如下图所示:(查看动画演示




缺陷和不足

结构化程序设计方法曾一度成为程序设计的主流方法。 但到20世纪80年代末,这种方法开始逐渐暴露出缺陷。主要表现在以下方面:
难以适应大型软件的设计:在大型多文件软件系统中,随着数据量的增大,由于数据与数据处理相对独立,程序变得越来越难以理解,文件之间的数据沟通也变得困难,还容易产生意想不到“副作用”。
程序可重用性差:结构化程序设计方法不具备建立“软件部件”的工具,即使是面对老问题,数据类型的变化或处理方法的改变都必将导致重新设计。这种额外开销与可重用性相左,称为“重复投入”。

这些由结构化程序设计的特点所导致的缺陷,其本身无法克服!而越来越多的大型程序设计又要求必须克服它们,这最终导致了“面向对象”设计方法的产生。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: