网站风格定位有哪些,wordpress添加新功能,企业网站建设 新闻宣传,网站优化策划书文章目录6.1 结构程序设计6.2 人机界面设计6.3 过程设计的工具6.3.1 程序流程图#xff08;程序框图#xff09;6.3.2 盒图#xff08;N-S图#xff09;6.3.3 PAD图#xff08;问题分析图#xff09;6.3.4 判定表6.3.5 判断树6.3.6 过程设计语言6.4 面向数据结构的设计方… 文章目录6.1 结构程序设计6.2 人机界面设计6.3 过程设计的工具6.3.1 程序流程图程序框图6.3.2 盒图N-S图6.3.3 PAD图问题分析图6.3.4 判定表6.3.5 判断树6.3.6 过程设计语言6.4 面向数据结构的设计方法6.4.1 Jackson图6.4.2 改进的Jackson图6.5 程序复杂程度的定量度量6.5.1 McCabe方法6.5.2 Halstead方法 详细设计阶段的根本目标确定应该怎样具体地实现所要求的系统详细设计阶段的任务不是具体地编写程序详细设计不仅仅是逻辑上正确地实现每个模块的功能更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现详细设计目标的关键技术也是详细设计的逻辑基础。
6.1 结构程序设计
经典定义 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接并且每个代码块只有一个入口和一个出口则称这个程序是结构化的。 程序设计新定义 结构程序设计方法是尽可能少用GO TO语句的程序设计方法。 控制结构 1基本控制结构 三种基本的控制结构是“顺序”“选择”和“循环”它们的流程图分别为【注意】牢记三种基本控制结构此为常考内容。3种基本控制结构保证每个代码块单入口和单出口结构程序设计是详细设计的逻辑基础。 2扩展的控制结构 DO UNTIL和DO CASE的流程图分别是
如果只允许使用顺序、IF_THEN_ELSE型分支、DO_WHILE型循环这三种基本控制结构为经典结构程序设计还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构为扩展的结构程序设计如果还允许使用LEAVE(或BREAK)结构为修正的结构程序设计
6.2 人机界面设计
重要性 人机界面设计是接口设计的重要组成部分对于交互式系统来说人机界面设计和数据设计、体系结构设计及过程设计一样重要。人机界面的质量直接影响用户对软件产品的接受程度。 设计问题 1系统响应时间2用户帮助设施3出错信息处理4命令交互。 设计过程 用户界面设计是一个迭代的过程也就是说通常先创建设计模型再用原型实现这个设计模型并由用户试用和评估然后根据用户意见进行修改。 人机界面设计指南 有助于设计者设计出友好、高效的人机界面一般交互指南信息显示指南数据输入指南
6.3 过程设计的工具
过程设计的工具描述程序处理过程的工具可以分为图形、表格、语言三类
6.3.1 程序流程图程序框图
1符号表示 程序流程图中使用的符号表示如图所示。 2优点 对控制流程的描绘很直观便于初学者掌握。 3缺点 ① 没遵循逐步求精的原则它诱使程序员过早地考虑程序的控制流程 而不去考虑程序的全局结构。② 程序流程图中用箭头代表控制流因此程序员不受任何约束可以随意转移控制。③ 程序流程图不易表示数据结构。
6.3.2 盒图N-S图
1特点 ① 功能域明确② 不可能任意转移控制③ 很容易确定局部和全程数据的作用域④ 很容易表示嵌套关系也可以表示模块的层次结构。 2表示 下图给出了结构化控制结构的盒图表示也给出了调用子程序的盒图表示方法。 3优点 ① 盒图没有箭头因此不允许随意转移控制。② 盒图可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。
6.3.3 PAD图问题分析图
1符号表示 PAD图用二维树形结构的图来表示程序的控制流下图给出PAD图的基本符号。 2优点 ① 使用PAD符号所设计出来的程序必然是结构化程序。② PAD图所描绘的程序结构十分清晰。③ 用PAD图表现程序逻辑易读、易懂、易记。④ 容易使用软件工具将PAD图自动转换成高级语言源程序提高了软件可靠性和软件生产率。⑤ 即可用于表示程序逻辑也可用于描绘数据结构。⑥ PAD图的符号支持自顶向下、逐步求精方法的使用。 【注意】PAD图中竖线的总条数就是程序的层次数。PAD图是面向高级程序设计语言的为每种常用的高级程序设计语言提供了一整套相应的图形符号
6.3.4 判定表
1适用性 算法中包含多重嵌套的条件选择时使用判定表。判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系 2组成 ① 左上部列出所有条件② 左下部是所有可能做的动作③ 右上部是表示各种条件组合的一个矩阵④ 右下部是和每种条件组合相对应的动作。 【注意】判定表右半部的每一列实质上是一条规则规定了与特定的条件组合相对应的动作。
6.3.5 判断树
判定树是判定表的变种能够清晰地表示复杂的条件组合与应做的动作之间的对应关系
6.3.6 过程设计语言
1定义 过程设计语言PDL即伪码它是用正文形式表示数据和处理过程的设计工具。 2优点 ① 可作为注释直接插在源程序中有助于保持文档和程序的一致性提高文档的质量。② 可以使用普通的正文编辑程序或文字处理系统很方便地完成PDL的书写和编辑工作。③ 已经有自动处理PDL的程序存在且可以自动由PDL生成程序代码。 3缺点 不如图形工具形象直观不如判定表清晰简单。
6.4 面向数据结构的设计方法
6.4.1 Jackson图
1分类 Jackson图根据程序中数据元素彼此间的逻辑关系可分为顺序结构、选择结构和重复结构3类具体如下① 顺序结构 【注意】图中每个元素只出现一次出现的次序依次是B、C和D。 ② 选择结构 【注意】在B、C和D的右上角有小圆圈做标记。 ③ 重复结构 【注意】在B的右上角有星号标记。 2优点 ① 便于表示层次结构而且是对结构进行自顶向下分解的有力工具。② 形象直观可读性好。③ 既能表示数据结构也能表示程序结构。 3缺点 ① 图中无法表示选择条件或循环结束条件影响了图的表达能力也不易直接把图翻译成程序。② 框间连线为斜线不易在行式打印机上输出。
6.4.2 改进的Jackson图
1表示 改进的Jackson图。a顺序结构B、C、D中任一个都不能是选择出现或重复出现的数据元素。b选择结构S右面括号中的数字i是分支条件的编号。c可选结构A或者是元素B或者不出现。d重复结构循环结束条件的编号为i。 2与层次图的比较 ① 层次图中的一个方框代表一个模块而Jackson图中一个方框并不代表一个模块。② 层次图表现的是调用关系而Jackson图表现的是组成关系。
6.5 程序复杂程度的定量度量
6.5.1 McCabe方法
1流图 ① 定义 流图实质上是“退化了的”程序流程图它仅仅描绘程序的控制流程完全不表现对数据具体操作以及分支或循环的具体条件。 ② 程序流程图映射成流图 下图说明了把程序流程图映射成流图的方法。a.流图中用圆表示结点一个圆代表一条或多条语句。程序流程图中的一个顺序的处理框序列和一个菱形判定框可以映射成流图中的一个结点。b.流图中的箭头线称为边代表控制流。流图中一条边必须终止于一个结点即使这个结点并不代表任何语句。c.由边和结点围成的面积称为区域计算区域数时应包括图外部未被围起来的区域。 ③ PDL翻译成流图 a.基本情况 下图是用PDL表示的处理过程及与之对应的流图。 b.包含复合条件 复合条件就是在条件中包含了一个或多个布尔运算符。下图是由包含复合条件的PDL片段翻译成的流图。 2环形复杂度 ① 定义 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度度量出的结果称为程序的环形复杂度。 ② 计算方法 环形复杂度定量度量程序的逻辑复杂度可以用下述3种方法中的任何一种来计算环形复杂度 a.流图中线性无关的区域数等于环形复杂度。b.流图G的环形复杂度V(G)E-N2其中E是流图中边的条数N是结点数。c.流图G的环形复杂度V(G)P1其中P是流图中判定结点的数目。 环形复杂度VG10是模块规模的合理上限。
6.5.2 Halstead方法
1定义 Halstead方法是根据程序中运算符和操作数的总数来度量程序的复杂程度。 2方法 ① 程序长度N定义N1为程序中运算符出现的总次数N2为操作数出现的总次数NN1N2② 预测程序长度的公式使用的不同运算符的个数n1不同操作数的个数n2Hn1log2(n1)n2log2(n2)③ 预测程序中包含错误的个数的公式ENlog2(n1n2)/3000。