文章目录

  • (1)程序流程图
    • A:符号
    • B:优缺点
  • (2)盒图(N-S)
    • A:符号
    • B:优点(了解)
  • (3)PAD图
    • A:符号
    • B:优点
  • (4)判定表
    • A:组成
    • B:优缺点
  • (5)判定树
  • (6)过程设计语言(PDL)(了解)

描述程序处理过程的工具称之为过程设计工具,可以分为图形、表格和语言三类,具体有

  • 程序流程图
  • 盒图(N-S图)
  • PAD图
  • 判定表
  • 判定树
  • 过程设计语言(PDL)

(1)程序流程图

A:符号

程序流程图又称为程序框图,是历史最悠久,使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法,涉及符号如下

  • a:选择
  • b:注释
  • c:预先定义的处理
  • d:多分支
  • e:开始或停止
  • f:准备
  • g:循环上界限
  • h:循环下界限
  • i:虚线
  • j:省略符
  • k:并行方式
  • l:处理
  • m:输入输出
  • n:连接
  • o:换页连接
  • p:控制流

B:优缺点

优点

  • 对控制流程的描绘很直观,便于初学者掌握

缺点

  • 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构
  • 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制
  • 程序流程图不易表示数据结构

(2)盒图(N-S)

A:符号

出于要有一种不允许违背结构程序设计精神的图形工具的考虑,提出了盒图,又称为N-S图。其基本符号如下

  • a:顺序结构
  • b:IF_TEEN_ELSE型分支
  • c:CASE型多分支
  • d:循环结构
  • e:调用子程序A

B:优点(了解)

  • 功能域明确,可以从盒图上一眼就看出来
  • 不可能任意转移控制
  • 很容易确定局部和全程数据的作用域
  • 很容易表现嵌套关系,也可以表示模块的层次结构

(3)PAD图

A:符号

PAD是问题分析图(problem analysis is diagram)的英文缩写,是使用二维树形结构的图来表示程序的控制流,这种图翻译为程序代码比较容易。其基本符号如下

  • a:顺序
  • b:选择(IF C THEN P1 ELSE P2
  • c:CASE型多分支
  • d:WHILE型循环(WHILE C DO P
  • e:UNTIL型循环(REPEAT P UNTIL C
  • f:语句符号
  • g:定义

B:优点

  • 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序

  • PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数

  • 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行 ,自上而下,从左向右顺序执行,遍历所有结点

  • 容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率

  • 即可用于表示程序逻辑,也可用于描绘数据结构

  • PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计(如下图所示,左图表示初始的PAD图,右图表示使用def符号细化处理框P2)

(4)判定表

A:组成

当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。由以下部分组成

  • 左上部列出所有条件
  • 左下部是所有可能做的动作
  • 右上部是表示各种条件组合的一个矩阵
  • 右下部是和每种条件组合相对应的动作

例如:

假设某航空公司规定,乘客可以免费托运重量不超过30kg(条件1)的行李。当行李重量超过30kg时,对头等舱(条件2)国内乘客(条件3) 超重部分每公斤收费4元,对其他舱(条件2) 的国内乘客超重部分每公斤收费6元,对外国乘客(条件4) 超重部分每公斤收费比国内乘客多–倍,对残疾乘客超重部分每公斤收费比正常乘客少一半

在表的右上部分中T表示它左边那个条件成立,F表示条件不成立,空白表示这个条件成立与否并不影响对动作的选择。判定表右下部分中画X表示做它左边的那项动作,空白表示不做这项动作

[解析]只要行李重量不超过30kg, 不论这位乘客持有何种机票,是中国人还是外国人,是残疾人还是正常人,一律免收行李费,这就是表右部第一列(规则1)表示的内容。当行李重量超过30kg时,根据乘客机票的等级、乘客国籍及是否残疾人而使用不同算法计算行李费,这就是从规则2到规则9所表示的内容

B:优缺点

优点

  • 判定表能够简洁而又无歧义地描述处理规则
  • 判定表和布尔代数或卡诺图结合起来使用,可以更加直观、简洁、清晰的描述规则

缺点

  • 不能同时清晰地表示出问题的顺序性重复性
  • 初次接触这种工具的人理解它需要有一个学习过程
  • 数据元素增多时,判定表的简洁程度大幅下降

(5)判定树

是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系

例如

(6)过程设计语言(PDL)(了解)

PDL也即伪代码,是用正文形式表示数据和处理过程的设计工具。PDL具有严格的关键字外部语言,用于定义控制结构和数据结构。PDL表示实际操作和条件的内部语言通常又是灵活自由的,可以适用各种工程项目的需要


(软件工程复习核心重点)第五章详细设计-第三节:过程设计工具相关推荐

  1. (软件工程复习核心重点)第二章可行性研究-第三节:数据流图

    文章目录 一:数据流图的定义(DFD) 二:数据流图的特点 三:数据流图的符号 (1)符号 (2)注意(了解) 四:数据流图示例 (1)示例1 A:首先从题目中提取四种成分 B:画数据流图 (2)示例 ...

  2. (软件工程复习核心重点)第二章可行性研究-第四节:数据字典

    文章目录 一:相关概念 (1)定义 (2)作用 (3)意义(了解) 二:内容 三:定义数据的方法 (1)数据元素组成数据的方式 (2)符号表示 四:数据字典示例 五:用途 一:相关概念 (1)定义 数 ...

  3. (软件工程复习核心重点)第一章软件工程概论习题

    这一章题目主要以简答和名词解释为主 文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 (2)了解 四:简答题 (1)必考 1.关于软件危机 2.关于软件工程 3. 关于软件生命周期 4.关于 ...

  4. (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型

    文章目录 一:软件过程概念 (1)定义 (2)构成 二:主要模型 (1)瀑布模型 A:定义 B:特点 C:优缺点 D::适用范围 E:实际的瀑布模型 (2)快速原型模型 A:定义 B:原理 C:优缺点 ...

  5. (软件工程复习核心重点)第二章可行性研究习题

    文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 四:简答题 (1)必考 1. 关于可行性研究 2. 关于数据流图 3. 关于数据字典 (2)了解 五:应用题/画图题 一:选择题 二:填空题 ...

  6. (软件工程复习核心重点)第九章软件项目管理

    文章目录 一:估算软件规模 (1)代码行技术 (2)功能点技术 二:工作量估算 三:进度计划 (1)甘特图(Cantt图) (2)工程网络 四:人员组织 五:质量保证 六:软件配置管理 七:能力成熟度 ...

  7. (软件工程复习核心重点)第一章软件工程概论-第三节:软件生命周期

    文章目录 一:软件定义 (1)问题定义 (2)可行性研究 (3)需求分析 二:软件开发 (1)总体设计 (2)详细设计 (3)编码和单元测试 (4)综合测试 三:软件维护 一:软件定义 (1)问题定义 ...

  8. (软件工程复习核心重点)第一章软件工程概论-第二节:软件工程

    文章目录 一:软件工程 (1)软件工程的定义 (2)软件工程的本质特征 (3)软件工程基本原理 二:软件工程方法学 (1)概念 (2)分类 一:软件工程 (1)软件工程的定义 软件工程:采用工程的概念 ...

  9. (软件工程复习核心重点)第一章软件工程概论-第一节:软件和软件危机

    文章目录 一:软件的概念.特点与发展 (1)软件发展的三个阶段 (2)软件的概念 (3)软件的特点 二:软件危机 (1)软件危机的概念 (2)软件危机的表现 (3)软件危机产生的原因 A:主观原因 B ...

  10. (软件工程复习核心重点)第九章面向对象分析-第二节:面向对象分析之建立对象模型

    文章目录 一: 基本概念 (1)对象模型 (2)先建立对象模型的原因 (3)信息来源 (4)典型的建模步骤 二:确定类与对象 (1)找出候选的类与对象 A:客观事物分类 B:非正式分析 C:提取隐含的 ...

最新文章

  1. 1105 Spiral Matrix 给定数组向螺旋矩阵中填入数据
  2. 03Django基本应用结构
  3. java object save,通过ObjectOutputStream发送文件,然后将其保存在Java中?
  4. 语音合成技术与资源 - 资源篇
  5. 内核与ramdisk到底是什么关系
  6. 芯片组c236服务器主板,至强E3-1230 v5完美座驾,微星推出全功能C236工作站主板
  7. 疫情防控背景下在线课程教学满意度影响因素分析与对策探讨-以电子商务及法律专业为例
  8. 无法听到计算机发出的声音怎么办,qq语音听不到对方的声音怎么办_电脑qq语音我听不到对方声音修复方法-win7之家...
  9. k-nearest neighbors algorithm - k 最近邻算法
  10. 安装 Apache+php+mysql+phpMyAdmin XAMPP及错误解决办法
  11. 基于android的互动健身平台,基于Android和ARM的智能健身系统的设计与实现
  12. 弘辽科技:淘宝销量数据从哪查?销量怎么提升?
  13. JAVA排序算法之“睡眠排序”
  14. 网络安全--信息收集
  15. 最新消息:2022高被引科学家名单已公布,都想成为高被引,到底应该怎么做?(附名单)
  16. 如何确保文件数据的传输安全性!
  17. 链表、结构体和数组对比
  18. [计算机网络]四、交换机的工作原理与配置(数据链路层、以太网交换机、交换机的基本配置)
  19. 某卡验证码获取识别登录
  20. 女主技能是鞭炮java游戏_求女主带着游戏系统,技能,空间或者异能任务、背包之类的小说...

热门文章

  1. 【日常踩坑】Android机微信webview中页面跳转的问题
  2. ug添加imachining变量_UG用的不够快?是不是还没建标准库
  3. idea新建springboot后端到前端_基于SpringBoot+AntDesign的快速开发平台
  4. 临床外显子组测序分析中的那些坑(上)
  5. 重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)
  6. 无需第三方,使用Mac预览合并多张图片
  7. 【C#桌面应用】第五节:制作简单的登录注册模拟窗口-注册部分的模拟
  8. python字典值求和_Python两个字典键同值相加的方法总结
  9. Windows破解逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)
  10. Qt文档阅读笔记-DTLS server解析