详细设计
- 详细设计:确定具体实现方案,得出精确描述
- 任务:
- 结构程序设计:三种基本控制结构(选择[if]/顺序/循环[while|for])实现任何单入单出的程序
- ==人机界面设计:属于接口设计的重要组成==
- 问题
- 设计指南
- 设计工具:描述处理过程的工具
- ==程序流程图==(历史悠久)
- ==盒图(N-S图)==: 不违背结构程序设计精神
- PAD图: 二维树形结构表示程序控制流,易翻译为程序代码
- 判定表: 多重嵌套条件选择时适用复杂条件组合于应做的动作间的对应关系
- 判定树: 判定表变种
- 过程设计语言(PDL) 伪码
- 复杂度定量度量: 模块设计质量V(G)<=10
- ==McCabe:程序图->流图==
- ==环形复杂度计算==
详细设计:确定具体实现方案,得出精确描述
任务:
- 过程设计:模块实现算法
- 数据设计:数据结构
- 接口设计:各模块之间的接口
结构程序设计:三种基本控制结构(选择[if]/顺序/循环[while|for])实现任何单入单出的程序
扩展:[switch(x){case x: } | do{ }while()]
修正:break;
人机界面设计:属于接口设计的重要组成
问题
- 响应时间 = 长度+易变性
- 用户帮助
- 出错处理
- 命令交互
设计指南
- 一般交互
- 信息显示
- 数据输入
设计工具:描述处理过程的工具
-
程序流程图(历史悠久)
-
盒图(N-S图): 不违背结构程序设计精神
-
-
PAD图: 二维树形结构表示程序控制流,易翻译为程序代码
**
**
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|
驱动 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
纸张 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
墨水 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
打印成功 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
驱动错误(有纸有墨) | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
缺乏纸张(第一优先) | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
缺乏墨水(第二优先) | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
-
判定树: 判定表变种
-
过程设计语言(PDL) 伪码
复杂度定量度量: 模块设计质量V(G)<=10
McCabe:程序图->流图
环形复杂度计算
- 线性无关区域=V(G) //包括最外层的区域
- V(G) = E(边)-N(结点)+2
- V(G) = P(判定结点数/结点判定数之和)+1 P(单一结点判定数) = 出度-1