详细设计根本目标:确定应该怎样具体地实现所要求的系统。
1、程序流程图又称为程序框图,它是使用最广泛的描述过程设计的方法。程序流程图中使用的符号(a) 选择(分支); (b) 注释; (c) 预先定义的处理; (d) 多分支; (e) 开始或停止; (f) 准备; (g) 循环上界限; (h) 循环下界限; (i) 虚线; (j) 省略符; (k) 并行方式; (l) 处理; (m) 输入输出; (n) 连接; (o) 换页连接; (p) 控制流
程序流程图的主要缺点如下。 (1) 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2) 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 (3) 程序流程图不易表示数据结构。
2、出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。它有下述特点。
(1) 功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。 (2) 不可能任意转移控制。 (3) 很容易确定局部和全程数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的层次结构。
图给出了结构化控制结构的盒图表示,也给出了调用子程序的盒图表示方法。其中基本符号(a) 顺序; (b) IF_THEN_ELSE型分支; (c) CASE型多分支; (d) 循环; (e) 调用子程序A。
3、判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定表由4部分组成:左上部列出所有条件、左下部是所有可能做的动作、右上部是表示各种条件组合的一个矩阵、右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。
复数判定表:
1、McCabe方法
①McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。流图实质上是“退化了的”程序流程图,描绘程序的控制流程,不表现对数据的具体操作以及分支或循环的具体条件。
一个圆代表一条或多条语句;一个顺序结构可以合并一个结点;流图中的箭头线称为边,代表控制流;在流图中一条边必须终止于一个结点。
复合条件,就是在条件中包含了一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)
②计算环形复杂度的方法 (1) 流图中线性无关的区域数等于环形复杂度。 (2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 (3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。