第六章


1)结构程序设计的概念

核心思想:少用go to 语句


2)人机界面设计的基本问题

四大问题:

系统响应时间、用户帮助设施、出错信息处理和命令交互


3)熟练掌握过程设计的工具(重点)

流程图、盒图,PAD图,伪码

能够根据其中任何之一画出另外的任一种图来

能根据条件描述绘制判定表、判定树


a.程序流程图


软件工程复习——第六章

软件工程复习——第六章

优点:
是控制流程的直观描述,简单易学,容易理解
缺点:
本质上不是逐步求精的好工具,缺少全局结构的考虑
用箭头代表控制流,程序员不受约束,随心所欲
不易表示数据结构

b. 盒图(N-S图)

图6.4  盒图的基本符号
(a) 顺序;(b) IF-THEN-ELSE型分支;(c) CASE型多分支;(d) 循环;(e) 调用子程序A

软件工程复习——第六章

N-S图的嵌套定义形式

软件工程复习——第六章

c.PAD图:

它用二维树形结构(2D,tree-structured representation)的图来表示程序的控制流,比较容易将这种图翻译成程序代码

软件工程复习——第六章

软件工程复习——第六章

(a)顺序(先执行P1后执行P2);

(b) 选择(IF C THEN P1 ELSE P2);
(c) CASE型多分支;
(d) WHILE型循环(WHILE C DO P);
(e) UNTIL型循环(REPEAT P UNTIL C);
(f) 语句标号;
(g) 定义

d.判定表

一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。


软件工程复习——第六章

e.判定树(优点:简单易懂 缺点:不够简洁,同一个值可能重复多次)

软件工程复习——第六章

f.PDL(伪码)

软件工程复习——第六章软件工程复习——第六章软件工程复习——第六章

4)jackson图(了解 度娘一下即可)

5)McCabe方法(重点)

环形复杂度(Cyclomatic Complexity):根据程序控制流的复杂程度定量度量程序的复杂程度——这样度量出的结果为程序的环形复杂度

流图(表示控制流):

软件工程复习——第六章

计算环形复杂度的方法

1)流图中的区域数等于环形复杂度

2)流图G的环形复杂度VG=E-N+2

    E:边数,N:结点数

3)流图G的环形复杂度VG=P+1

    P:判定结点的数目


缺点:

对于不同种类的控制流的复杂性不能区分
 简单IF语句与循环语句的复杂性同等看待
 嵌套IF语句与简单CASE语句的复杂性是一样的
 模块间接口当成一个简单分支一样处理
 一个具有1000行的顺序程序与一行语句的复杂性相同

相关文章: