详细设计
结构化程序设计
结构化程序
控制结构(三种节点)
正规程序
正规子程序:正规程序中,仍是正规程序的部分
基本程序
封闭结构
并行用;串行用-
前面提到的三种基本控制结构(顺序结构、选择结构、循环结构)和两个扩充控制结构(多分支结构、UNTIL循环结构)都是基本程序。
复合程序由基本程序组成,因此满足单入单出结构,这样的程序叫做结构化程序。
结构化定理
人机界面设计
设计问题
1.用户响应时间
2.用户帮助(集成的实时提示,附加的用户手册)
3.出错处理(友好程序,正当反馈,合理提示)
4.命令交互(命令宏输入,一致性)
设计过程
1.一般交互指南(全局性)
2.信息显示指南(提示信息的不同显示方法)
3.数据输入指南
过程设计工具
程序流程图
1.易于理解
2.忽略全局控制,不符合逐步求精思想
3.控制流不受约束
4.不易表示数据结构
盒图
特点
1.功能域(一个控制结构的作用域)明确,就是一个盒子内。
2.控制不可转移,只能逐步转化。
3.根据嵌套关系可以看出全局和局部数据。
4.嵌套关系和模块化易于表述。
PAD图
1.二维树形结构图,表示的一定是结构化程序。
2.向右扩展的层次结构,竖线条数等于层数。
3.易于表述数据结构和逻辑,支持自顶向下,逐步求精。
4.是面向高级程序语言的,每种高级语言有对应的符号,因此PAD图可以快速转化成高级程序。
判定表
左上是变量集合,左下是行为集合,右上是变量的组合,右下是采取的操作。
PDL(伪代码)
适合简单的逻辑结构,不如图形表示直观。
面向数据结构的设计方法
Jackson图
改进
为了解决转移和判定条件不能显示在图上的问题。
和层次图的区别
1.层次图的方框表示模块,Jackson图的方框只有几个语句。
2.层次图整体表示调用关系,一个模块不仅调用下层模块,还完成其他操作。Jackson图表示组成关系,一个方框仅由下层组成,这里需要一张图,字符串空格处理的。
Jackson方法
1.分析输入输出数据的逻辑,结构,描绘两个独立的Jackson图。
2.找输入与输出有关系的数据结构,包括有直接因果的,可以同时处理的(数据结构相同,循环次数和条件相同)。
3.利用三条规则从数据结构Jackson图导出程序Jackson图。
A:为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框;
B:C:在输入和输出结构中剩余数据单元所在的层次,在结构图中画一个相应的框。
4.列出所有操作,条件,填入程序结构图。
例子:统计文本中,每一行空格的个数
要求
1.画出输入输出两个独立的jackson图,并找出联系
2.导出程序结构图
1.正文文件+输出表格=统计空格(程序)
2.表格体=程序体
3.(接受)字符串+(打印)串信息=处理字符串
4.调整一下输出格式和顺序,over。
程序复杂定量
McCabe(流图)
1.流图的圆表示结点,汇点也表示结点(因为流图的一条边必须终止于一个节点)
2.判定条件可以和操作合并,顺序操作可以合并。
例子
环形复杂度
等于区域数,等于边数-结点数+2,等于判定节点数+1
例子
Halstead方法