六 详细设计
考纲:结构程序设计,人机界面设计的方法,程序流程图、盒图、PAD图、判定表和判定树的应用,Jackson图,程序复杂程度的定量度量。
结构程序设计
如果一个程序的代码块仅仅通过顺序,选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口。则称这个程序是结构化的。
(考的概率很高)
人机界面设计的方法
4个设计问题
- 系统响应时间
- 用户帮助文档
- 出错信息处理
- 命令交互
设计指南
-
(1)一般交互指南。
A .保持一致性。
B .提供有意义的反馈。
C .在执行有较大破坏性的动作之前要求用户确认。
D .允许取消绝大数操作。
E .减少两次操作之间必须记忆的信息。
F .提高对话、移动和思考的效率。
G .允许犯错。
H .按功能对动作分类,并据此设计分布。
I.提供对用户工作内容敏感的帮组设施。
J .用简单单词或动词短语作为命令名。
-
(2)信息显示指南。
A .只显示与当前工作内容有关的信息。
B .不要用数据淹没用户,应该使用便于用户迅速汲取信息的方式来表示数
C .使用一致的标记,标准缩写和可预知的颜色。
D .允许用户保持可视化的语境。
E .产生有意义的出错信息。
F .使用大小写,缩进和文本分组以帮助理解。
G .使用窗口分割不同的信息。
H .使用"模拟"显示方式表示信息,以使信息更容易被用户提取。
I.高效率地使用显示屏。
-
(3)数据输入指南。
A .尽量减少用户的输入动作。
B .保持信息显示和数据输入一致
C . 允许用户自定义输入
D . 交互应该灵活,并可以调成用户最喜欢的输入方式
E . 使在当前动作环境中不适用的命令不起作用
F . 让用户控制交互流
G . 对所有输入动作都提供帮助
H . 消除冗余的输入
程序流程图、盒图、PAD图、判定表和判定树的应用
-
程序流程图(又称程序框图)。
(1)优点:对控制流程描绘的很直观,便于初学者掌握。
(2)缺点:①本质上不是逐步求精的好工具,诱使程序员过早地考虑程序的控制流程。而不是考虑程序的全局结构。
②程序流程图使用箭头代表控制流,因此程序员可以随意不受任何约束,完全不顾结构程序设计的精神,随意转移控制。
③不易表示数据结构。
-
盒图。
(1)特点:①功能域明确,可以在盒图上一眼看出。
②不能任意转移控制。
③很容易确定全局和局部数据的作用域。
④很容易表示嵌套关系,也可以表示模块的控制结构。
(2)优点:坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题。
-
pad图
pad 图是问题分析图,用二维树形结构图来表示程序的控制流。将这种图翻译成程序代码很容易。
(1)优点:
A.使用表示结构化控制结构的 pad 图设计出来的程序必定是结构化程序。
B.Pad图所描述的程序结构十分清晰。
C.用Pad图表示程序逻辑,易读易懂易记。
D.容易将Pad图转换为高级语言程序。这种转化可用软件工具自动完成,从而省去人工编码的工作,有利于提高软件可靠性和软件生产率。
E.即可用于表示程序逻辑,也用于描绘数据结构
F.Pad图的符号支持自顶向上,逐步求精方法使用。
-
判定表
“当算法中包含多重嵌套的条件选择时”,能够清晰表示不重复的条件组合与应做的动作之间的对应关系。
能够简洁无歧义的描述处理原则。
-
判定树(20年考了这块很简单)
它的形式不需要任何说明,一眼就可以看出其含义,因而易于掌握和使用。
-
过程设计语言:
PDL 也称为伪码。
Jackson图
面向数据结构的设计方法。目标是得出对程序处理过程的描述
1.Jackson 图
逻辑关系:顺序,选择,重复。
2.改进的 Jackson 图
自己结合书看看吧,不好总结,也不是重点。
3.Jackson 方法(重点)
(1)分析并确定输入数据和输出数据的逻辑结构,并用 Jackson 图描绘这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3)从描绘数据结构的 Jackson 图导出描绘程序结构的 Jackson 图。
(4)列出所有操作和条件。
(5)用伪码表示程序。
程序复杂度的定量度量
(两个重点:流图、计算环复杂度)
计算环形复杂度的方法
- (1)流图中线性无关区域等于环形复杂度。
- (2)流图 G 的环形复杂度 V ( G )= E - N +2 E 是条数 N 是结点
- (3)流图 G 的环形复杂度 V ( G )= P +1 P 是判定结点
表示程序。
程序复杂度的定量度量
(两个重点:流图、计算环复杂度)
计算环形复杂度的方法
- (1)流图中线性无关区域等于环形复杂度。
- (2)流图 G 的环形复杂度 V ( G )= E - N +2 E 是条数 N 是结点
- (3)流图 G 的环形复杂度 V ( G )= P +1 P 是判定结点