- 前言
- 描述每个模块执行过程的工具叫做详细设计工具,可以分为图形、表格和语言三类。
- 图形工具:包括传统的程序流程图、盒图和问题分析图(PAD)等;
- 表格工具:包括判定表、判定树等;
- 语言工具:过程设计语言(PDL)等
- 不论是哪类工具,对它们的基本要求都是能提供对设计准 确,无歧义的描述,也就是应该能指明控制流程、处理功 能、数据组织以及其它方面的实现细节,从而在编码阶段 能把对设计的描述直接翻译成程序代码。
- 描述每个模块执行过程的工具叫做详细设计工具,可以分为图形、表格和语言三类。
- 程序流程图
- 程序流程图又称为程序框图,它是一种最古老、应用最广泛、且最有争议的描述详细设计的工具。
- 它易学、表达算法直观。缺点是不够规范,特别是 使用箭头使质量受到很大影响,因此必须加以限制 ,使其成为规范的详细设计工具。
- 为了能够用程序流程图描述结构化的程序,一般地,限制只允许使用三种基本结构。
- 结构化程序设计的基本控制结构是:
- 顺序型
![[Pasted image 20230623151801.png]] - 选择型
![[Pasted image 20230623151901.png]] - 先判断型循环
![[Pasted image 20230623151912.png]] - 后判断型循环
![[Pasted image 20230623151922.png]] - 多种情况选择型(CASE)
![[Pasted image 20230623151936.png]]
- 顺序型
- 程序流程图的优点:
- 表达直观、结构清晰、易于理解、易于修改
- 程序流程图的缺点:
- 本质上不是逐步求精的好工具,它诱使程序员 过早考虑控制流程,而不去考虑程序的整体结构;
- 用箭头代表控制流,因此程序员不受任何约束 ,可以完全不顾结构程序设计的精神,随意转移控制,容易造成非结构化的程序结构;
- 不易表示数据结构和层次结构
- 盒图(N-S图)
- N-S图是为克服流程图在描述程序逻辑时的随意性等缺点,1973年, 由Nassi和Shneiderman提出来的,体现了结构化设计的精神。是目前过程设计中广泛使用 的一种图形。
- N-S图仅含有5种基本成分,它们分别表示SP方法(结构化程序设计方法)的几种标准控制结构。
- 下图给出了结构化控制结构的盒图表示,也给出了调用子程序的盒图表示方法。
- 顺序
![[Pasted image 20230623152644.png]] - IF-THEN-ELSE分支
![[Pasted image 20230623152655.png]] - CASE型多分支
![[Pasted image 20230623152703.png]] - 循环
![[Pasted image 20230623152720.png]] - 调用子程序
![[Pasted image 20230623152732.png]]
- 顺序
- 在N-S图中,每个“处理步骤”是用一个盒子表示的,所谓“处理步骤”可以是语句或语句序列。需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图在一页纸上能容纳得下,由于只能从上边进入盒子然后从下边走出,除此之外没有其他的入口和出口,所以,N-S图限制了随意的控制转移,保证了程序的良好结构。
- 用N-S图作为详细设计的描述手段时,常需用两个盒子:数据盒和模块盒,前者描述有关的数据,包括全程数据、局部数据和模块界面上的参数等,后者描述执行过程。
- N-S图有下述特点:
- 功能域(一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。
- 不可能任意转移控制。
- 很容易确定局部和全程数据的作用域
- 很容易表现嵌套关系,也可以表示模块的层次结构
- N-S图的优点:
- 它强制设计人员按SP方法进行思考并描述他的设计方案,这就有效地保证了设计的质量,从而也保证了程序的质量;
- N-S图形象直观,功能域明确,结构层次清晰。为编程、复查、选择测试用例、维护都带来了方便;
- N-S图简单、易学易用,可用于软件教育和其他方面。
- N-S图的缺点:
- 随着程序内嵌套的层数的增多时,内层方框越来越小,这样不仅会增加画图的难度,还会影响图形的清晰度。
- 手工修改也比较麻烦,这是有些人不用它的主要原因
- N-S图的嵌套定义形式
![[JM5A%OAK~)WXML}X04LH0S1.png]]
- 问题分析图(PAD图)
PAD是问题分析图(problem analysis diagram)的英文缩写,由日立公司中央研究所在1973年研究开发的。
它使用二维树形结构图来描述程序的逻辑,将这种图翻译成程序代码比较容易。是一种十分有前途的表达方法。
PAD支持SP方法,它仅具有顺序、选择、循环三类基本成分,其中选择和循环又有几种形式
下图是PAD图的基本符号。
- 顺序
![[Pasted image 20230623154842.png]] - 选择
![[Pasted image 20230623154853.png]] - Case型多分支选择
![[Pasted image 20230623154859.png]] - 当型循环
![[Pasted image 20230623154915.png]] - 直到型循环
![[Pasted image 20230623154923.png]] - 语句标号
![[Pasted image 20230623155014.png]] - 定义
![[Pasted image 20230623155023.png]] - 初始的PAD图
![[Pasted image 20230623155304.png]] - 使用def符号细化处理框P2
![[Pasted image 20230623155316.png]]
- 顺序
PAD图的主要优点:
- 使用PAD符号设计的程序必然是结构化的程序。
- PAD图所描绘的程序结构十分清晰,PAD图中竖线的总条数就是程序的层次数。
- 用PAD图表现程序逻辑,易读,易记,易懂
- 容易将PAD图转换成高级语言源程序,可用软件工具实现自动转换
- 既可以表示程序逻辑,也可以描绘数据结构
- 支持自顶向下,逐步求精方法的使用。用“def” 符号逐步增加细节
- 过程设计语言(PDL)
- 过程设计语言(PDL)也称为伪码,PDL是一种用于描述功能模块的算法设计和加工细节的语言。
- PDL是一种“混杂式语言”,它采用某种语言(如英语或自然语言)的词汇,另一种语言(结构化程序设计语言)的全部语法。
- 伪码的语法规则分为“外语法”和“内语法”。
- PDL语法是开放式的,其外层语法是确定的,而内层语法则故意不确定。
- 外层语法描述控制结构和数据结构,它用类似于一般编程语言控制结构的关键字(如IF—THEN—ELSE、WHILE——DO、REPEAT——UNTIL等)表示,所以是确定的,
- 内层语法可使用自然语言的词汇描述具体操作。
- 过程设计语言的表示:
![[Pasted image 20230623160241.png]] - PDL特点:
- 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。
- 自然语言的自由语法,它描述处理特点;
- 数据说明的手段。
- 模块定义和调用的技术,应该提供各种接口描述模式
- PDL优点:
- 可以作为注释直接插在源程序中间。这样做能促 使维护人员在修改程序代码的同时也相应地修改PDL 注释,因此有助于保持文档和程序的一致性,提高了 文档的质量
- 可以使用普通的正文编辑程序或文字处理系统, 很方便地完成PDL的书写和编辑工作
- 同自然语言(英语)很接近,易于理解。
- 由于是语言形式,所以易于被计算机处理。
- 由于同程序是同结构的,从中自动产生程序亦较容易。
- PDL缺点:
- 不如图形工具形象直观;
- 描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。
- 总之,支持SP方法的各种描述手段(结构化流程图、N-S图、PAD图、PDL等)各有优缺点,总的说来,PDL是比较令人满意的,所以在英语国家中最为流行。
上一篇

2024-04-20
下一篇

2024-04-20