
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性地转向程序的任一处,在传统流程图中,用“很随意”的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,人们更多地追求软件的可读性和可修改性,像这种结构和风格的程序是不允许出现的。为此我们提出了程序的3种基本结构,即顺序结构、选择(分支)结构和循环结构。在构造算法时,也仅以这3种结构作为基本单元,同时规定基本结构之间可以并列和互相包含,不允许交叉或者从一个结构直接转到另一个结构的内部去。程序的结构清晰,易于正确性验证和纠正程序中的错误,这种方法就是结构化方法,遵循这种方法的程序设计,就是结构化程序设计。遵循这种结构的程序只有一个输入口和一个输出口。
“自顶向下,逐步求精”来源于面向过程的程序设计。“自顶向下,逐步求精”就是指先从宏观角度考虑,按照功能或者业务逻辑划分程序的子模块,定义程序的整体结构,然后对各个子模块逐步细化,最终分解到程序语句为止。这种方法使得程序员能够全面考虑问题,使程序的逻辑关系清晰明了。它让整个开发过程从原来的考虑“怎么做”变成考虑“先做什么,再做什么”,流程也更加清晰。