结构程序设计 -- 软件发展的里程碑
标签:
杂谈 |
分类: 技术 |
结构程序设计”概念被称为软件发展中的第三个里程碑(第一、二个里程碑是子程序和高级语言),是由著名的荷兰计算机科学家埃德斯加·狄克斯特拉(Edsgar
Wybe
Dijkstra)。早在1965年召开的IFIP会议上,Dijkstra就提出“Go
在与癌症进行了多年的斗争之后,伟大的荷兰计算机科学家Edsger Wybe Dijkstra已经于2002年8月6日在荷兰Nuenen自己的家中与世长辞!终年72岁。
“结构程序设计”的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造;其实质是控制编程中的复杂性。该方法的要点是:
(1) 没有GOTO语句;
(2) 一个入口,一个出口;
(3) 自顶向下、逐步求精的分解;
(4) 主程序员组。
其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。
详细描述处理过程常用三种工具:图形、表格和语言。
图形:程序流程图、N-S图、PAD图
表格:判定表
语言:过程设计语言(PDL)
a)选择(分支);(b)注释;(c)预先定义的处理;(d)多分支;(e)开始或停止;(f)准备;(g)循环上界限;(h)循环下界限;(i)虚线;(j)省略符;(k)并行方式;(1)处理;(m)输入/输出;(n)连接;(0)换页连接;(p)控制流。从20世纪40年代末到70年代中期,程序流程图一直是过程设计的主要工具。它的主要优点是对控制流程的描绘很直观,便于初学者掌握。由于程序流程图历史悠久,为最广泛的人所熟悉,尽管它有种种缺点,许多人建议停止使用它,但至今仍在广泛使用着。不过总的趋势是越来越多的人不再使用程序流程图了。
PAD图
定义
PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以来,已经得到一定程度的推广。它用二维数形结构的图表示程序的控制流,将这种图转换为程序代码比较容易。
优点
1.
使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序
2.
PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
3.
用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维数型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行;
4.
很容易将PDA图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
5. 可用于表示程序逻辑,也可用于描述数据结构
6.
PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。
结构程序设计的相关论文和书籍
(1) Bohm, C, and G. Jacobini, Flow Diagrams, Turing Machines, and Languages with only Two Formation Rules, Comm, ACM(9)5 (1966 May),366-371.
(2) E. Dijkstra. "GOTO Statement Considered Harmful" Communications of the ACM, 11:3, p. 147, March 1968.
(3) O.-J. Dahl, E.W. Dijkstra, C.A.R. Hoare."Structured Programming" Academic Press, 1972.
(4) Knuth, Donald E. "Structured Programming with go to Statements" ACM Computing Surveys 6(4):261-301, December 1974.
(5) Edsger Dijkstra, Notes on Structured Programming, pg. 6

加载中…