目标:1.确定应该怎样具体的实现所要求的系统
2.设计出程序的“蓝图”
3.详细设计的结果基本决定了最终的程序代码的质量
6.1 结构程序设计
1.概念:结果程序设计是一种设计程序的技术,它采用自顶向
下逐步求精的的设计方法和单入口但出口的控制结构。
2.三种基本控制结构:
1)顺序结构:相当于“A、B”
2)选择结构:相当于“If exp then A else B endif;” 3) 循环结构:相当于“While exp do A” 3.扩充的两种控制结构:
1)多分支结构:相当于“Case I of I=1:C1;……I=n:Cn;” 2)UNTIL循环结构:相当于“Repeat A until exp;” 4.结构程序设计的种类:
1)经典的结构程序设计:只允许使用顺序、IF_THEN
_ELSE型分支和DO_WHILE型循环;
2)扩展的结构程序设计:除了三种基本控制结构,还使用
DO_CASE型多分支结构和DO_WHILE型循环结构;
3)修正的结构程序设计:除了三种基本控制结构和两种扩
充结构,还使用LEAVE(或BREAK)结构。
6.2 人机界面设计
6.2.1 设计问题
26
1.系统响应时间 2.用户帮助设施 3.出错信息处理 4.命令交互 6.2.2 设计过程
6.2.3 人机界面设计指南
1.一般交互指南 2.信息显示指南 3.数据输入指南
6.3 过程设计的工具
6.3.1 程序流程图
程序流程图:是一种描述程序的控制结构流程和指令执行情况的有向图。
程序流程图的主要缺点:
程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。
程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 程序流程图不易表示数据结构。 6.3.2 盒图 盒图特点:
功能域明确,可以从盒图上一眼就看出来。
27
不可能任意转移控制。
很容易确定局部和全程数据的作用域。
很容易表现嵌套关系,也可以表示模块的层次结构。 PAD图
是一种问题分析图。 PAD图优点:
使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序
PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构。随着德程序层次的增加,PAD图逐渐向右延伸,每次增加一个层次,图形向右扩展竖线。PAD图中竖线的总条数就是程序的层次数。
用PAD图表现程序逻辑,易懂、易读、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。
容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
即可用于表示程序逻辑,也可用于描绘数据结构。
PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。
28
判定表
判定表由四部分组成: 左上部列出所有条件
左下部是所有可能做的动作
右上部是表示各种条件组合的一个矩阵 右下部是和每种条件组合相对应的动作
6.3.5 判定树
判定树是判定表的变种。 过程设计语言
过程设计语言(PDL)也称为伪码。 PDL的优点:
可以作为注释的直接插在源程序中间
可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDl的书写和编辑工作
已经有自动处理PDL的程序存在,而且可以自动由PDL生成程序代码。
PDL缺点:不如图形工具形象直观。
面向数据结构的设计方法
Jackson图 顺序结构 选择结构 重复结构
29
改进的Jackson图 Jackson方法
Jackson结构程序设计方法基本上由5个步骤组成:
分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。
找出输入数据结构和输出数据结构中有对应关系的数据单元。 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。
为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框。
根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
列出所有操作和条件,并且把它们分配到程序结构图的适当位置。 用伪码表示程序。
程序复杂程度的定量度量
McCabe方法 1.流图
“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。 2.计算环形复杂度的方法
30
相关推荐: