文档介绍:软件工程
*
*
第6章 详细设计
目标——怎样具体地实现所要求的系统
目标系统的精确描述
设计代码的“蓝图”
决定代码质量
程序的读者——计算机和人
*
*
结构程序设计
人机界面设计
过程设计的工具
面向数据结构的设计方法
程序复杂程度的定量度量
第6章 详细设计
*
*
Dijkstra——
“可以从高级语言中取消GO TO语句”
“程序的质量与程序中所包含的GO TO语句的数量成反比”
Bohm和Jacopini——
只用三种基本的控制结构就能实现任何单入口、单出口的程序
“顺序”、“选择”、“循环”
结构程序设计
*
*
三种基本的控制结构
*
*
用顺序+循环构成选择
*
*
结构程序设计的经典定义:
如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
结构程序设计
*
*
这个经典定义过于狭隘,结构程序设计本质上并不是无GO TO语句的编程方法,而是一种使程序代码容易阅读、容易理解的编程方法。
大多数情况下,无GO TO的代码确实是容易阅读、容易理解,但在某些情况下,为达到容易阅读和容易理解的目的,需要使用GO TO语句。
结构程序设计是尽可能少用GO TO语句的程序设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句。
结构程序设计
*
*
其他常用的控制结构
(a) DO-UNTIL型循环结构;(b)多分支结构
*
*
经典的结构程序设计:只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这三种基本控制结构。
扩展的结构程序设计:除了上述三种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构。
修正的结构程序设计:再加上允许使用LEAVE(或BREAK)结构。
结构程序设计