软件工程-第六章-软件详细设计

合集下载

张海藩《软件工程导论》(第6版)(章节题库 第6章 详细设计)【圣才出品】

张海藩《软件工程导论》(第6版)(章节题库 第6章 详细设计)【圣才出品】
圣电子书

十万种考研考证电子书、题库视频学习平台
第 6 章 详细设计
一、选择题 1.在软件开发过程中,以下说法正确的是( )。 A.程序流程图是逐步求精的好工具 B.N-S 图不可能任意转移控制,符合结构化原则 C.判定表是一种通用的设计工具 D.程序流程图和 N-S 图都不易表达模块的层次结构 【答案】B 【解析】程序流程图本质上不是逐步求精的好工具,它会使程序员过早地考虑程序的控 制流程,而不去考虑程序的全局结构;判定表不是一种通用的设计工具,没有一种简单的方 法使用它能同时清晰地表示顺序和循环等结构;程序流程图不易表示模块的层次结构,N- S 图则可以表示模块的层次结构。
11.程序控制一般分为( )、分支、循环三种基本结构。 A.分块 B.顺序 C.循环 D.分支 【答案】B 【解析】程序控制一般分为顺序结构、分支结构也成选择结构、循环结构三种基本结构, 任何一种结构都能由这三种结构组成。
12.Jackson 方法根据( )来导出程序结构。 A.数据结构 B.数据间的控制结构
4 / 14
圣才电子书 十万种考研考证电子书、题库视频学习平台

10.对于详细设计,下面说法错误的是( )。 A.详细设计是具体地编写程序 B.详细设计是细化成很容易地从中产生程序图纸 C.详细设计的结果基本决定了最终程序的质量 D.详细设计中采用的典型方法是结构化程序设计方法 【答案】A 【解析】详细设计阶段,主要对模块内的算法和模块内的数据结构进行设计,具体编写 程序属于编码阶段的任务。
8.( )工具在软件详细设计过程中不采用。 A.判定表 B.IPO 图 C.PDL D.DFD 图 【答案】D 【解析】DFD 图(数据流图)是软件需求阶段过程中采用的工具,用于描述系统的分 解,即描述系统由哪几个部分组成,各部分之间有什么联系等等。

软件工程讲义第六章

软件工程讲义第六章
hour:=hour+1;
ENDWHILE; 2.1、2.2、2.4已能用程序语言表达,只需对2.3进一步精细化。 为了处理60个数据,又需一循环结构。
引入分钟值变量:minutes,每分钟要做的工作是: 累计:求每小时的平均值 检查违章情况 为了累计,引入变量sum: 在每小时处理前设初值为0。 每小时处理后求平均值。
3、自顶向下的程序验证。
2019年11月26日星期二
西南交通大学信息科学与技术学院
结构化程序设计的核心内容
二、使用三种基本控制结构来构造程序 1、任何程序都由顺序、选择和重复三种基本控制结构构造。 顺序实现了任何算法规约中的核心处理步骤; 条件允许根据逻辑情况选择处理方式; 重复提供了循环。 这些逻辑元素是结构化程序设计的基础。
BEGIN
1. 设置初值;
2. 处理24小时数据;
END
求精步骤1:设置初值。开始时一般不明确为哪些变量赋初值。
求精步骤2:计算结果是以小时为统计单位输出,它是重复执行24次的
循环结构。
局部数据结构设计:数据输入的方案选择:
1、处理前读入所有24小时数据,共1440个,需要大一个大的数组。
2、每次计算输入一个数据,这要保证对先前输入的数据不再使用。
ENDWHILE;
Mean:=sum/60.0; 一次违章出现是指连续5次污染值超过10.00。如果违章分布在两个相间的时 间段上,则把这次违章算在下一小时上。 首先测试当前值是否超过10.00,若是,还将进一步检查是否连续出现5次。 为了实现第二个测试,需要两个计数器: Voilation:计数本小时出现的违章次数。 Infraction:计数连续出现超过正常值的次数。 每次超正常值出现时,Infraction增1。为了保证Infraction表示连续出现超正 常值,必须保证在第一次出现超正常值时其初值为0。为了保证相继两个小时的 Infraction的值能连续被使用,在每小时处理前不能为Infraction置0值,只能在 第一小时处理前置0。另外,在发现一次未超正常值时,也应置它为0,即连续 出现超正常值中断。

软件工程第六章 详细设计

软件工程第六章 详细设计

软件工程第六章详细设计软件工程第六章详细设计6.1 概述本章节旨在对软件系统的详细设计进行介绍。

详细设计将在系统的高层设计基础上,进一步细化系统结构、模块划分以及相互关系,并定义系统中各个组件的详细功能和接口。

6.2 系统结构设计系统结构设计主要包括以下内容:- 系统总体架构:描述系统整体的结构和组成部分,包括各个模块和它们的关系。

- 模块划分:根据系统需求,将系统划分为若干个模块,并定义各个模块的职责和功能。

- 模块关系:描述各个模块之间的依赖关系和通信方式,包括模块之间的接口和数据流。

6.3 模块设计模块设计是详细设计的核心内容,主要包括以下内容:- 模块接口:定义模块的输入和输出接口,包括参数和数据格式。

- 模块内部实现:描述模块内部的算法、数据结构以及运行流程。

- 模块测试方法和策略:定义对模块进行单元测试的方法和策略。

6.3.1 模块A设计本节详细介绍模块A的设计。

- 模块接口:模块A接收来自模块B的数据输入,处理后输出结果给模块C。

- 模块内部实现:模块A内部使用算法X对输入数据进行处理,然后将结果输出给模块C。

- 模块测试方法和策略:对模块A进行单元测试时,使用测试用例集合Y进行测试。

6.3.2 模块B设计本节详细介绍模块B的设计。

- 模块接口:模块B接收来自模块D的数据输入,处理后输出结果给模块A。

- 模块内部实现:模块B内部使用算法Z对输入数据进行处理,然后将结果输出给模块A。

- 模块测试方法和策略:对模块B进行单元测试时,使用测试用例集合Z进行测试。

6.3.3 模块C设计本节详细介绍模块C的设计。

- 模块接口:模块C接收来自模块A的数据输入。

- 模块内部实现:模块C内部对输入数据进行处理,并输出结果。

6.4 数据库设计如果系统涉及数据库,本节详细介绍数据库的设计。

- 数据库结构:描述数据库的表、字段以及它们之间的关系。

- 数据库访问接口:定义系统访问数据库的接口和方法。

6.5 接口设计本节详细介绍系统与外部系统或用户的接口设计。

软件工程导论(第五版) 第六章

软件工程导论(第五版) 第六章

•经典的结构程序设计:只允许使用顺序、
IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
6.1.1 结构化程序
6.1.1.1 控制结构 • 流程图通常由三种结点组成: •1)函数结点 • 如果一个结点有一个入口线和
行李重量w30行李重量w30国内乘客外国乘客头等舱其他舱头等舱其他舱残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客w302w304w303w306w304w308w306w3012免费图67用判定树表示计算行李费的算法636pdl2可以使用普通的正文编辑程序或文字处理系统来完成pdl的书写和编辑工作
•定义7:由基本程序的一个固定的基集合构造出的复合
程序,称为结构化程序。
6.1.2 结构化定理 •结构化定理:任一正规程序都可以函数等价于
一 个 由基 集 合 {顺 序 , If-else-then,While-do} 产生的结构化程序。
• 实际上,只要能证明可以将任一正规程序转
换成等价的结构化程序就可以证明这个结构化 定理。
123456789 TTTTFFFF TFTFTFTF FFTTFFTT
TFFFFFFFF
×
×
×
×
×
×
×
×
×
•6.3.5 判定树
• 判定树是判定表的变种。
行李重量
国内乘客
头等舱 其他舱
残疾乘客
正常乘客 残疾乘客 正常乘客
(W-30)×2 (W-30)×4 (W-30)×3 (W-30)×6

软件工程导论第6章

软件工程导论第6章

70年代初N.Wirth在Pascal语言中设置支持“顺序 结构”、“IF-THEN-ELSE选择结构”、“DO-WHILE 重复结构”或“DO-UNTIL重复结构”三种基本控制 结构语句。
25
3种基本控制结构
(1) 顺序型
A B
(2) 选择型
F P A B T
(2) 多情况选择型(case)
T T
P=1 F P=2 F P=n F

A1 A2
T
An
(3) 先判定型循环
后判定型循环
(do-while)
F
(do-until)
P T S
S P F
T
例1、某模块有两个输入a和b,一 个输出c,当满足条件(a>0)and(b<2) 时,c=a+b,否则c=a-b。画出该模 块的程序流程图。
a b
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题
1
详细设计阶段的根本目标:确定应该怎样具体地 实现所要求的系统。 为软件结构图中的每一个模块确定使用的算法和 块内数据结构,并用某种选定的表达工具给出清晰 的描述。
100 110
120
130 140
Eq:等于 ne:不等于 gt:大于 lt:小于 ge:大于等于 le:小于等于
例:打印A、B、C三数中最小者的程序 if (A.LT.B .AND. A.LT.C)then write(6,*) A else if (A.GE.B .AND. B.LT.C) then write(6,*) B else write(6,*) C endif endif

软件工程第六章 详细设计

软件工程第六章 详细设计

软件工程第六章详细设计软件工程第六章详细设计1. 引言本章将对软件系统的详细设计进行介绍。

详细设计是软件开发过程中的一个重要阶段,它负责将需求分析阶段产生的需求和概念设计阶段产生的设计方案转化为具体的实现细节。

2. 设计概述2.1 数据设计在数据设计方面,我们将详细定义系统中所使用的数据结构、数据类型和数据库设计。

这将包括实体类的定义、数据库表的设计以及数据字典的编制。

2.2 模块设计模块设计是将系统划分成各个功能模块,并定义模块之间的接口和交互方式。

我们将详细描述每个模块的功能、输入输出以及模块之间的调用关系。

2.3 界面设计界面设计负责定义系统与用户之间的交互方式。

我们将详细描述系统的界面布局、界面元素的设计和交互逻辑的实现。

3. 数据设计3.1 数据结构在此处描述系统中所使用的各种数据结构,包括树、链表、堆栈等,以及它们的定义和使用方式。

3.2 数据类型在此处描述系统所使用的各种数据类型,包括整型、浮点型、字符型等,以及它们的定义和使用方式。

3.3 数据库设计在此处描述系统所使用的数据库的设计,包括数据库表的结构、字段定义、关系等。

3.4 数据字典在此处编制系统的数据字典,明确定义每个数据元素的含义、取值范围、数据类型等。

4. 模块设计4.1 模块1名称在此处详细描述模块1的功能、输入输出以及模块内部的具体实现细节。

4.2 模块2名称在此处详细描述模块2的功能、输入输出以及模块内部的具体实现细节。

5. 界面设计5.1 界面布局在此处详细描述系统的界面布局方案,包括各个界面的位置、大小、排列等。

5.2 界面元素设计在此处详细描述系统所使用的各种界面元素,包括按钮、文本框、下拉框等,以及它们的样式和交互方式。

5.3 交互逻辑在此处详细描述系统与用户之间的交互逻辑,包括各个界面的功能和用户操作的响应方式。

6. 附件本文档涉及的附件包括:- 数据结构定义文档- 数据库表设计文档- 界面原型设计文档7. 法律名词及注释- 法律名词1: 注释1 - 法律名词2: 注释2。

软件工程_6_详细设计.pptx

软件工程_6_详细设计.pptx

3. 出错信息处理
交互式系统的出错信息或警告信息,应该具有下 述属性:
(1) 信息应该使用用户可以理解的术语描述问题; (2) 信息应该提供有助于从错误中恢复的建设性 意见; (3) 信息应该指出错误可能导致哪些负面后果(例 如,破坏数据文件); (4) 信息应该伴随着听觉上或视觉上的提示,强 化出现异常; (5) 信息不能带有指责用户的内容。 当确实出现了问题的时候,有效的出错信息能提 高交互式系统的质量,减轻用户的挫折感。
直接影响用户对软件产品的评价,从而影响软 件产品的竞争力和寿命。
人机界面目前所占的工作量越来越大。
6.2.1 设计问题
在设计人机界面常会遇到下述4个问题: 系统响应时间 用户帮助设施 出错信息处理 命令交互
上述问题,最好在设计初期作为重要的设计问题 来考虑,这时修改比较容易,代价也低。
1. 系统响应时间
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结及作业
6.1 结构程序设计
结构程序设计的经典定义:“如果一个程序的 代码块仅仅通过顺序、选择和循环这3种基本控 制结构进行连接,并且每个代码块只有一个入口 和一个出口,则称这个程序是结构化的。”
6.3.2 盒图(N-S图)
6.3.2 盒图(N-S图)
出于要有一种不允许违背结构程序设计精神的 图 形 工 具 的 考 虑 , Nassi 和 Shneiderman 提 出 了 盒 图,又称为N-S图。它有下述特点:
(1) 功能域(即,一个特定控制结构的作用域) 明确,可以从盒图上一眼就看出来。
2. 用户帮助设施
几乎交互式系统的每个用户都需要帮助,大多数 现代软件都提供联机帮助设施,这使得用户无须离 开用户界面就能解决自己的问题。

软件工程-第六章-软件详细设计

软件工程-第六章-软件详细设计

软件工程-第六章-软件详细设计第六章软件详细设计1、引言本章描述了软件详细设计阶段的任务和目标,包括需求分析阶段后续的工作内容,以及软件详细设计的重要性和作用。

2、设计目标本节介绍软件详细设计的目标和要求,包括系统的性能、可靠性、可维护性等方面的要求。

2.1 性能目标描述系统在不同负载条件下的性能要求,包括响应时间、吞吐量等指标。

2.2 可靠性目标描述系统需要达到的可靠性要求,包括故障处理、容错机制等。

2.3 可维护性目标描述系统需要达到的可维护性要求,包括代码可读性、模块化、可重用性等。

3、系统结构设计本节介绍软件系统的整体结构设计,包括模块划分和模块之间的关系。

3.1 模块划分根据需求分析的功能模块进行划分,并对每个功能模块进行详细描述。

3.2 模块之间的关系描述每个模块之间的接口和依赖关系,包括数据传输、函数调用等。

4、数据结构设计本节介绍系统中使用到的数据结构,包括数据库设计、文件结构设计等。

4.1 数据库设计描述系统中所需的数据库的表结构、字段定义等。

4.2 文件结构设计描述系统中所需的文件的结构和格式。

5、界面设计本节介绍系统的用户界面设计,包括页面布局、交互方式等。

5.1 页面布局设计描述系统的页面布局和组件的排列方式。

5.2 交互方式设计描述用户与系统之间的交互方式,包括输入、输出等。

6、算法设计本节介绍系统中使用的算法和数据处理方法。

6.1 算法描述描述系统中使用的算法的原理和实现方式。

6.2 数据处理方法描述系统中对数据进行处理的方法和策略。

7、安全性设计本节介绍系统的安全性设计,包括用户身份验证、数据加密等。

7.1 用户身份验证描述系统中对用户身份进行验证的方法和过程。

7.2 数据加密描述系统中对敏感数据进行加密的方法和策略。

8、测试计划本节介绍软件详细设计阶段的测试计划和测试策略。

8.1 功能测试描述对每个功能模块进行的功能测试计划和测试用例。

8.2 性能测试描述对系统性能进行测试的计划和方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



判定表比判定树更严格、更具有逻辑性。判定 表的条件严格按二进值取值,不会遗漏任何一 种组合。 判定表能够把在什么条件下系统应做什么动作 准确无误地表示出来,但不能描述循环的处理 特性,循环处理还需结构化语言。
6.2.3判定树

判定树是判定表的变形,一般情况下它比判定表更直 观,且易于理解和使用。图6--2是与表6--1功能等价 的判定树。

任何一个结构化程序都可以用这些基本程序构 成。基本程序形式有多种,显然前面提到的三 种基本控制结构和两种扩充控制结构都是基本 程序。所以基本程序并不都是必不可少的,为 了构造程序,可以只使用一部分基本程序。

基集合
[定义6-5]用以构造程序的基本程序的集合称为基集合。 例如,可以选下列集合作为基集合: {序列,if-then-else,while do} 或{序列,if-then-else,repeat-until}等。

6.3.5结构化程序
复合程序 [定义6-6] 如果一个基本程序的函数结点用另一个基本 函数程序替换,产生的新的正规程序称为复合程序。 结构化程序 [定义6-7] 由基本程序的一个固定的基集合构造出的复 合程序称为结构化程序。
6.4结构化定理

6.4.1程序函数

[定义8]已知一正规程序P,对于每个初始数据状态 X,若程序是终止的,那么有确定的最终状态Y, 如果对于每个给定的X,值Y是唯一的,那么所有 的有序对集合{(X,Y)}就定义了一个函数,称之 为程序P的程序函数,记为[P]。
(a)非结构化流程图
(b)等价的结构化流程图
图6—14 改变构造执行顺序

6.4.3非结构化转换为结构化

1. 用结构化定理证明过程提供的方法 例4 图6--15的流程图程序是一个非结构化程序, 利用上节结构化定理证明过程给出的方法将其转换 成结构化程序的步骤如下。 (1)结点编号如图6--15;
图6—1判定表的结构
表6--1
条件组合 条 W>30公斤 件 头等舱乘客 残疾乘客 行 (W-30)*2 动 (W-30)*4 (W-30)*3 (W-30)*6 免费
行李托运费处理判定表
1 √ √ √ √ √ √ √ √ √ √ √ 2 √ √ √ 3 √ 4 √ √ √ √ √ 5 6 7 8
– –
(3)高层的宏观控制流程图与低层的微观控制流 程的区分问题。 (4)不易表示数据结构。 为了克服流程图的缺陷,要求流程图都应由三种 基本控制结构顺序组合和完整嵌套而成,不能有相 互交叉的情况,这样的流程图是结构化的流程图]一个流程图程序如果满足下面两个 条件,称为正规程序。

6.1.2 详细设计方法
1.采用自顶向下、逐步求精的程序设计方法 在详细设计中,虽然处于“具体”设计阶段,但 在设计某个复杂的模块内部处理过程时,仍可以采用 逐步求精的方法。可以将其分解为若干个模块来实现, 降低处理细节的复杂度。
2.使用三种基本控制结构构造程序 设计时,如果对一个模块处理过程细化中,开始是模 糊的,可以用下面三种方式以模糊过程进行分解: (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程分解,确定某个部分进行重复的 开始和结束的条件。
4.界面设计 用户界面的设计现在显得比较重要,可以 采用字符用户界面设计,图形用户界面和多媒 体人机界面设计。这就要结合具体的系统来处 理。
5.其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及检 索等操作的效率,以及节约内存空间,对数据库中的 某些数据项的值要进行代码设计。 (2)输入/输出格式设计 (3)人机对话设计:对于一个实时系统,用户与计算机 频繁对话,因此要进行对话方式、内容及格式的具体 设计。 (4)网络设计:如果设计的软件是一个分布式系统,那 么还要进行网络的拓扑结构设计。
– –
具有一个入口线和一个出口线。 对每一个结点,都有一条从入口线到出口线的通 路通过该结点。
图6---7 非正规程序

由于正规程序有一个入口线和一个出口,因而一个正 规程序总可以抽象为一个函数结点。这个函数结点概 括了该正规程序对数据进行的运算和测试的总的作用。

正规子程序
[定义6-2]如果一个正规程序的某部分仍然是正规程序, 那么称其为该正规程序的正规子程序。
软件工程
Software Engineering
第六章 软件详细设计

6.1 详细设计任务 6.2 设计表示法 6.3 结构化程序设计 6.4 结构化定理 6.5 图形工具 6.6 面向数据结构的设计 小结
6.1详细设计任务

6.1.1 详细设计的基本任务 1.数据结构设计 前面的需求分析、总体设计阶段,确定的 概念性的数据类型,要进行确切的定义。这一 部分的设计内容一般比较多,所以大多数采用 小型数据库辅助的方法。

上述三种描述加工逻辑的工具各有优缺点,对 于顺序执行和循环执行的动作,用结构化语言 描述;对于存在多个条件复杂组合的判断问题, 用判定表和判定树。
6.3结构化程序设计

6.3.1 结点

在软件工程中,用流程图程序描述客观存在的事物 特性。体现为描述程序控制结构和和指令执行情况, 这种对程序结构的控制的流程图程序是一个有向图。 图的基本元素是函数结点、谓词结点和汇点三种结 点。
图6--5 流程图中汇点表示

6.3.2三种基本控制结构 流程图在描述程序控制结构时的优点是直 观清晰、易于使用。 图6--6为流程图的三种基本控制结构。
图6--6 流程图的三种基本控制结构

流程图也存在严重缺点:


(1)用流程图本身没有限制,所以可以随心所欲 地画控制流程线的流向。因此也容易造成非结构化 的程序结构 (2)如果遇到多层嵌套的循环时,而且每层仅容 许一个出口,那么退出效率就会很差。
6.2 设计表示法

6.2.1 结构化语言 结构化语言是介于自然语言和形式化语言之间的 一种类自然语言。结构化语言语法结构包括内外两层。 内部语法则比较灵活,可以使用数据字典中定义过的 词汇、易于理解的一些名词、运算符和关系符;外层 语法具有较固定的格式,设定一组符号如IF、THEN、 ELSE、DO WHILE…ENDWHILE、DO CASE…ENDCASE等,用于描述顺序、选择和重复 的控制结构。
1、函数结点 如果一个结点有一个入口线和一个出口线,则称 为函数结点。如图6--3所示。其中,F是函数结点的名 字。
图6--3 流程图的函数结点
2、谓词结点 如果一个结点有一个入口线和两个出口线,且它 不改变程序的数据项的值,则称为谓词结点。如图6-4所示。
图6--4谓词结点
3、汇点 如果一个结点有两个和一个出口线,而且它不执 行任何运算,那么称为汇点, 图6--5( a)所示。由多 个入口线汇集到一点的情形可以用多个汇点的联结表 示。
例1 程序P为: t:=x; x:=y; y:=t 那么,对于任意给定的初始数据状态 X:(x, y, t),P的最终数据状态将为 Y:(y,x,x)。因而,程序函数[P]为: {((x,y,t),(y,x,x))}


程序函数是对程序功能的一个精确描述。如果 两个程序有相同的程序函数,那么它们所完成 的功能一定是相同的。 [定义6-9] 如果程序P1和P2有相同的程序函数, 称P1和P2是函数等价的,简称P1和P2是等价 的。
3.组织形式 在详细设计阶段,当参加设计的人员比较多的时 候,有可能因为设计员的技术水平、设计风格不同而 影响到系统的质量。因此,要组织以一个负责全部技 术活动的三人为核心小组。 小组中有负责全部技术的主程序员、协调、支持 主程序员的后备程序和负责事务性工作的程序管理员。 再加上其他技术人员。这种发生的目的是使设计责任 集中在少数人身上,利于提高软件质量,并且能有效 地提高软件生产率。
6.编写设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。 (3)程序1(标识符)设计说明:包括功能、性能、输 入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。
7.评审 对处理过程的算法和数据库的物理结构都 要评审。
图6—2 判定树


当处理逻辑中含太多判定条件及其组合时,用 判定表和判定树描述会比较方便、直观。 以上三种逻辑表达工具各有所长和不足,归纳 起来可以得出下列结论:

对于一个不太复杂的判断逻辑(条件组合和行动只 有10个左右),使用判断树比较好。
– –
对于一个复杂的判断逻辑(条件较多,相应的行 动也比较多),使用判断表比较好。 若一个处理逻辑既包含了一般的顺序执行动作, 又包含了判断或循环逻辑,则使用结构化语言较 好。
图6--15结点编号非结构化流程图
(2)图中四个结点构造新程序分别如图6--16;
图6—16点构造新流程
(3)得到如图6--17的等价结构化程序。
图6—17与图6--15等价结构化流程图
图6—13(a)所示,是一个非结构化的流程图。 通过改变构造的执行顺序,形成了图6—13(b)所示 与图6—13(a)等价的结构化流程图。在图6—13(b) 中,使用了组合判断A1和A2,“”表示 A1―非”与 A2―非”。
图6—13改变构造执行顺序

[定理4] :若允许增加辅助变量、或增加额外计算、 或改变程序的执行顺序,问题解的任何算法都可以 表示为结构化构造。 图6—14(a)所示的结构化流程图中有10个元 素。是一个非结构化流程图程序。因为,它的两个 选择结构出现重合,造成了程序段D有两个入口, 一个出口,破坏了单入口单出口这项结构化原则。
相关文档
最新文档