非结构化编程
- 所有程序代码都是在一个连续的主程序中编写的。
- 一行包含一个语句,用数字标签表示行号,以允许程序执行从一行跳到另一行(使用GOTO)
- 非结构化编程介绍:迭代、分支和GOTO
- 非结构化语言:早期BASIC、COBOL
非结构化编程**缺点**
- 很难遵循程序逻辑
- 很难合并其他代码
- 修改代码并不容易 (都是goto惹的祸)
-
结构化编程
结构化编程抛弃了GOTO语句
结构化程序定理:只要一种编程语言可以依三个方式组合其子程序及调整控制流程,则每个可计算函数都可以用此种编程语言来表示(实现任何算法)。三个调整控制流程的方式为:
调用-返回架构使用分割-征服策略
- 将整个系统分为更小的子系统,以减少复杂度。
-
主程序和子程序
是一种Call and return 架构代表结构化编程
体系结构:系统由一个主程序和一些分层组织的子程序组成 主程序调用高级子程序
- 高级子程序调用低级子程序
- 子程序的正确性通常取决于它调用的子程序
自顶向下的功能化设计
结构化设计步骤:
- 功能化设计不容易进化(可扩展性差)
- 功能观点很难演变
- 实际的系统很难按照功能化的观点刻画.
- 功能化丢失了数据.
- 功能化设计的程序复用性比较差
面向对象设计(Object-oriented Design)
是一种Call and return 架构代表结构化编程系统设计: