软件工程(第三版) 第3章第6节
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为了克服流程图的缺陷,要求流程图都应由三种基 本控制结构顺序组合和完整嵌套而成,不能有相互交叉 的情况,这样的流程图是结构化的流程图。
3.6.2 PAD图
PAD图指问题分析图(Problem Analysis Diagram),是 日本日立公司于1979年提出的一种算法描述工具,它是一 种由左往右展开的二维树型结构。PAD图的基本控制结构 如图3.9所示。
REPEAT 循环体
UNTIL条件
3.6.3 过程设计语言PDL
4) 出口结构 (1) ESCAPE结构(退出本层结构):
WHILE条件 处理S1
ESCAPE L IF条件 处理S2
ENDWHILE L:…
3.6.3 过程设计语言PDL
(2) CYCLE结构(循环内部进入循环的下一次): L:WHILE条件 处理S1 CYCLE L IF条件 处理S2 ENDWHILE
开始
输入A(1)到A(10)的值
置初值:n=10
sort
输出A(1)到A(10)的值
结束
i=1 def sort
j=i+1 max=A(i)
WHILE≤jn
WHILE≤in-1
A(i)=max i=i+1
图3.10 PAD图的示例
T max<A(j) F
J=j+1
B=max max=A(j)
A(j)=B
3.6.2 PAD图
从图3.10给出的例子可以看出PAD图的优点如下: (1) 清晰地反映了程序的层次结构。图中的竖线为程序的 层次线,最左边竖线是程序的主线,其后一层一层展开, 层次关系一目了然。 (2) 支持逐步求精的设计方法,左边层次中的内容可以抽 象,然后由左到右逐步细化。 (3) 易读易写,使用方便。 (4) 支持结构化的程序设计原理。 (5) 可自动生成程序。
A B
顺序
A T 条件 T
B
选择
CASE 值1
A
值2
B
…
值n
M
多分支选择
WHILE条件
A
“当型”循环
UNTIL条件
A
“直到型”循环
def A
S1
S2
S3 定义A(对A细化)
图3.9 PAD图的基本控制结构
3.6.2 PAD图
PAD图的控制流程为自上而下、从左到右地执行。图 3.10给出了将数组A(1)到A(10)进行选择法排序的算法描述 的PAD图。
A B 顺序
C
A
B
选择
C
A
B
…
C
多分支选择
C
F
T
A
“当型”循环
A
C
F
T
“直到型”循环
其中A或B为: ①非转移语句(可以是空) ②三种基本结构之一 C为判定条件
3.6.1 程序流程图
流程图的优点是直观清晰、易于使用,是开发者普 遍采用的工具,但是它有如下严重缺点: (1) 可以随心所欲地画控制流程线的流向,容易造成非结 构化的程序结构,编码时势必不加限制地使用GOTO语句 ,导致基本控制块多入口多出口,这样会使软件质量受 到影响,与软件设计的原则相违背。 (2) 流程图不能反映逐步求精的过程,往往反映的是最后 的结果。 (3) 不易表示数据结构。
3.6 软件详细设计表示法
详细描述处理过程常用三种工具:图形、表格和语言 。本节主要介绍结构化程序流程图、问题分析图两种图形工 具和过程设计语言。
IPO图也是详细设计的主要工具之一。表格工具,如 8.5.2节介绍的判定表,可作为详细设计中描述复杂逻辑条 件的算法。
3.6.1 程序流程图
程序流程图又称为程序框图,它是历史最悠久、使 用最广泛的一种描述程序逻辑结构的工具,图3.8为流程 图的三种基本控制结构。
3.6.3 过程设计语言PDL
1.PDL的特点 PDL的特点如下: (1) 所有关键字都有固定语法,以便提供结构化控制结构、数据说明和 模块的特征。 (2) 描述处理过程的说明性语言没有严格的语法。 (3) 具有数据说明机制,包括简单的与复杂的数据说明。 (4) 具有模块定义和调用机制,开发人员应根据系统编程所用的语种, 说明PDL表示有关程序结构。 2.程序结构 用PDL表示的程序结构一般有下列几种结构。 1) 顺序结构 采用自然语言描述顺序结构:
3.6.3 过程设计语言PDL
PDL与结构化分析中描述加工逻辑的“结构化语言” 所不同的仅是它们的作用不同,抽象层次不同,模糊程度 不同。“结构化语言”是描述加工“做什么”的,并且使 开发人员和用户都能看懂,因此无严格的外语法,内层自 然语言描述较抽象、较概括。而PDL是描述处理过程“怎 么做”的细节。开发人员将按其处理细节编程序,故外层 语法更严格一些,更趋于形式化,内层自然语言描述实际 操作更具体更详细一些。
处理S1 处理S2
处理Sn
3.6.3 过程设计语言PDL
2) 选择结构
(1) IF-EISE结构:
IF条件
IF条件
ຫໍສະໝຸດ Baidu
处理S1 或 处理S
ELSE
ENDIF
处理S2
ENDIF
(2) IF-ORIF-ELSE结构:
IF条件1
处理S1
ORIF条件2
ELSE处理Sn ENDIF
3.6.3 过程设计语言PDL
(3) CASE结构: CASE OF CASE(1) 处理S1 CASE(2) 处理S2
ELSE处理Sn ENDCASE
3.6.3 过程设计语言PDL
3) 重复结构 (1) FOR结构:
FOR i=1 TO n 循环体
END FOR (2) WHILE结构:
WHILE条件 循环体
ENDWHILE (3) UNTIL结构:
5) 扩充结构 (1) 模块定义:
PROCEDURE模块名(参数)
RETURN END
3.6.3 过程设计语言PDL
(2) 模块调用: CALL模块名(参数)
(3) 数据定义: DECLARE属性 变量名,… 属性有:字符、整型、实型、双精度、指针、数组及结
3.6.3 过程设计语言PDL
过程设计语言(Process Design Language,简称 PDL)是在伪码的基础上,扩充了模块的定义与调用、数据 定义和输入/输出而形成的。它的控制结构与伪码相同。 PDL是一种用于描述模块算法设计和处理细节的语言。
PDL与在8.5节中介绍的结构化语言的结构相似,一 般分为内、外两层语法,外层语法应符合一般程序设计语 言常用的语法规则,而内层语法则用一些简单的句子、短 语和通用的数学符号来描述程序应执行的功能。PDL具有 严格的关键字外层语法,用于定义控制结构、数据结构和 模块接口,而它表示实际操作和条件的内层语法又是灵活 自由的,使用自然语言的词汇。
3.6.2 PAD图
PAD图指问题分析图(Problem Analysis Diagram),是 日本日立公司于1979年提出的一种算法描述工具,它是一 种由左往右展开的二维树型结构。PAD图的基本控制结构 如图3.9所示。
REPEAT 循环体
UNTIL条件
3.6.3 过程设计语言PDL
4) 出口结构 (1) ESCAPE结构(退出本层结构):
WHILE条件 处理S1
ESCAPE L IF条件 处理S2
ENDWHILE L:…
3.6.3 过程设计语言PDL
(2) CYCLE结构(循环内部进入循环的下一次): L:WHILE条件 处理S1 CYCLE L IF条件 处理S2 ENDWHILE
开始
输入A(1)到A(10)的值
置初值:n=10
sort
输出A(1)到A(10)的值
结束
i=1 def sort
j=i+1 max=A(i)
WHILE≤jn
WHILE≤in-1
A(i)=max i=i+1
图3.10 PAD图的示例
T max<A(j) F
J=j+1
B=max max=A(j)
A(j)=B
3.6.2 PAD图
从图3.10给出的例子可以看出PAD图的优点如下: (1) 清晰地反映了程序的层次结构。图中的竖线为程序的 层次线,最左边竖线是程序的主线,其后一层一层展开, 层次关系一目了然。 (2) 支持逐步求精的设计方法,左边层次中的内容可以抽 象,然后由左到右逐步细化。 (3) 易读易写,使用方便。 (4) 支持结构化的程序设计原理。 (5) 可自动生成程序。
A B
顺序
A T 条件 T
B
选择
CASE 值1
A
值2
B
…
值n
M
多分支选择
WHILE条件
A
“当型”循环
UNTIL条件
A
“直到型”循环
def A
S1
S2
S3 定义A(对A细化)
图3.9 PAD图的基本控制结构
3.6.2 PAD图
PAD图的控制流程为自上而下、从左到右地执行。图 3.10给出了将数组A(1)到A(10)进行选择法排序的算法描述 的PAD图。
A B 顺序
C
A
B
选择
C
A
B
…
C
多分支选择
C
F
T
A
“当型”循环
A
C
F
T
“直到型”循环
其中A或B为: ①非转移语句(可以是空) ②三种基本结构之一 C为判定条件
3.6.1 程序流程图
流程图的优点是直观清晰、易于使用,是开发者普 遍采用的工具,但是它有如下严重缺点: (1) 可以随心所欲地画控制流程线的流向,容易造成非结 构化的程序结构,编码时势必不加限制地使用GOTO语句 ,导致基本控制块多入口多出口,这样会使软件质量受 到影响,与软件设计的原则相违背。 (2) 流程图不能反映逐步求精的过程,往往反映的是最后 的结果。 (3) 不易表示数据结构。
3.6 软件详细设计表示法
详细描述处理过程常用三种工具:图形、表格和语言 。本节主要介绍结构化程序流程图、问题分析图两种图形工 具和过程设计语言。
IPO图也是详细设计的主要工具之一。表格工具,如 8.5.2节介绍的判定表,可作为详细设计中描述复杂逻辑条 件的算法。
3.6.1 程序流程图
程序流程图又称为程序框图,它是历史最悠久、使 用最广泛的一种描述程序逻辑结构的工具,图3.8为流程 图的三种基本控制结构。
3.6.3 过程设计语言PDL
1.PDL的特点 PDL的特点如下: (1) 所有关键字都有固定语法,以便提供结构化控制结构、数据说明和 模块的特征。 (2) 描述处理过程的说明性语言没有严格的语法。 (3) 具有数据说明机制,包括简单的与复杂的数据说明。 (4) 具有模块定义和调用机制,开发人员应根据系统编程所用的语种, 说明PDL表示有关程序结构。 2.程序结构 用PDL表示的程序结构一般有下列几种结构。 1) 顺序结构 采用自然语言描述顺序结构:
3.6.3 过程设计语言PDL
PDL与结构化分析中描述加工逻辑的“结构化语言” 所不同的仅是它们的作用不同,抽象层次不同,模糊程度 不同。“结构化语言”是描述加工“做什么”的,并且使 开发人员和用户都能看懂,因此无严格的外语法,内层自 然语言描述较抽象、较概括。而PDL是描述处理过程“怎 么做”的细节。开发人员将按其处理细节编程序,故外层 语法更严格一些,更趋于形式化,内层自然语言描述实际 操作更具体更详细一些。
处理S1 处理S2
处理Sn
3.6.3 过程设计语言PDL
2) 选择结构
(1) IF-EISE结构:
IF条件
IF条件
ຫໍສະໝຸດ Baidu
处理S1 或 处理S
ELSE
ENDIF
处理S2
ENDIF
(2) IF-ORIF-ELSE结构:
IF条件1
处理S1
ORIF条件2
ELSE处理Sn ENDIF
3.6.3 过程设计语言PDL
(3) CASE结构: CASE OF CASE(1) 处理S1 CASE(2) 处理S2
ELSE处理Sn ENDCASE
3.6.3 过程设计语言PDL
3) 重复结构 (1) FOR结构:
FOR i=1 TO n 循环体
END FOR (2) WHILE结构:
WHILE条件 循环体
ENDWHILE (3) UNTIL结构:
5) 扩充结构 (1) 模块定义:
PROCEDURE模块名(参数)
RETURN END
3.6.3 过程设计语言PDL
(2) 模块调用: CALL模块名(参数)
(3) 数据定义: DECLARE属性 变量名,… 属性有:字符、整型、实型、双精度、指针、数组及结
3.6.3 过程设计语言PDL
过程设计语言(Process Design Language,简称 PDL)是在伪码的基础上,扩充了模块的定义与调用、数据 定义和输入/输出而形成的。它的控制结构与伪码相同。 PDL是一种用于描述模块算法设计和处理细节的语言。
PDL与在8.5节中介绍的结构化语言的结构相似,一 般分为内、外两层语法,外层语法应符合一般程序设计语 言常用的语法规则,而内层语法则用一些简单的句子、短 语和通用的数学符号来描述程序应执行的功能。PDL具有 严格的关键字外层语法,用于定义控制结构、数据结构和 模块接口,而它表示实际操作和条件的内层语法又是灵活 自由的,使用自然语言的词汇。