halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点

软件工程系统设计——详细设计(过程设计)

    • 【更新日志】
  • 详细设计概述
  • 程序流程图
  • N-S盒图
  • PAD图
  • 伪代码

【更新日志】

最近更新:

  • 暂无编辑记录,持续更新中……

详细设计概述

概要设计的任务完成后,就进入详细设计阶段,即过程设计阶段,这个阶段要决定各个木块的实现算法,并使用过程描述工具精确地描述这些算法

专用的描述工具可以分为以下几类:

  • 图形工具——把过程的细节用图形方式描述出来。如程序流程图、N-S图、PAD图、决策树等
  • 表格工具——用一张表来表达过程的细节,这张表列出了各种可能的操作及其相应的条件,即描述了输入、处理和输出信息。如判定表
  • 语言工具——用某种类高级语言(伪代码)来描述过程的细节

程序流程图

程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设计的最基本依据,因此它的质量直接关系到程序设计的质量

流程图的基本控制结构:

任何复杂的程序流程图都应由这五种基本控制结构组合或嵌套而成

流程图需注意的要点:

  • 循环的界限设有一对特殊的符号。循环开始符是削去上面两个直角的矩形,循环结束符是削去下面两个直角的矩形,其中应该注明循环名和进入循环的条件(对于while型循环)或循环终止的条件(对于until循环),通常这两个符号应在同一条纵线上,上下对应,循环体夹在其间
  • 流线表示控制流的流向,在自上而下或自左而右的自然流向情形下,流线可不加箭头,否则必须在流线上加上箭头

N-S盒图

N-S图,也被称为盒图或NS图(Nassi Shneiderman图)。是结构化编程中的一种可视化建模

N-S图的5种基本控制结构:

N-S图的特点:

  • 图中每个矩形框(除CASE构造中表示条件取值的矩形框外)都是明确定义了的功能域(即一个特定控制结构的作用域),以图形表示,清晰可见
  • 它的控制转移不能任意规定,必须遵守结构化程序设计的要求
  • 很容易确定局部数据和(或)全局数据的作用域
  • 很容易表现嵌套关系,也可以表示模块的层次结构

N-S图的扩展表示:当问题很复杂是,N-S图可能很大,在一张图上画不下,这时可给这个图中一些部分取个蜜罐子,在图中相应位置用名字(用椭圆形框住)而不是用细节取表现这些部分。然后在另外的图上再把这些命名的部分进一步展开

PAD图

PAD是日本日立公司提出,由程序流程图演化来的用结构化程序设计思想表现程序逻辑结构的图形工具

PAD的五种基本控制结构:

为反映增量型循环结构,PAD中增加了对应于for循环的控制结构,其中n1是循环初值,n2是循环终值,n3是循环增量

PAD图的扩充表示:当一个模块在一张图上画不下时,可在图中该模块相应位置矩形框中简记一个“NAME A”,把PAD图从左到右展开,再在另一张图上详细画出A的内容,用def及双线来定义A的PAD。这种方式可使在一张图上画不下的图分在几张图上画出,还可以用它来定义子程序

PAD的执行顺序从最左主干线的上端的结点开始,自上而下依次执行,直到该纵线下端,再返回上一层的总线的转入处,如此继续,直到执行到主干线的下端为止

PAD图的特点:

  • 使用PAD符号所设计出来的程序必然是结构化程序
  • PAD图描绘程序结构清晰,图中竖线的总条数就是程序的层次数
  • 用PAD图表现程序逻辑易读、易懂、易记
  • 容易将PAD图自动转换为高级语言源程序
  • PAD图既可以表示程序逻辑,也可用于描绘数据结构
  • PAD图的符号支持自顶向下、逐步求精方法的使用

PAD树形的特点使它比流程图更容易在计算机上处理,如在开发PAD向高级语言程序的转换程序之后,便可从终端输入PAD的图形,并自动转换成高级语言程序。因此可以省去人工编码的步骤,从而大大提高了软件开发的生产率

伪代码

伪代码是一种介于自然语言和形式化语言之间的半形式化语言,是一种用于描述功能模块的算法设计和加工细节的语言,也称为程序设计语言(PDL)

伪代码的基本控制结构:

  • 简单陈述句结构:避免复合语句
  • 判定结构:if_then_else或case_of结构
  • 重复结构:while_do或repeat_until结构

伪代码的特点:

  • 有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征。外语法的关键字是有限的词汇集,它们能对伪代码正文进行结构分割,使之变得易于理解
  • 内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性
  • 有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构
  • 有子程序定义与调用机制,表达各种方式的接口说明

持续更新中……
我是桐小白,一个摸爬滚打的计算机小白

【软件工程】软件工程系统设计——详细设计(过程设计)相关推荐

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

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

  2. 软件工程概论-- 详细设计,过程设计的6大工具:程序流程图,判定表,N-S图和判定树之间的区别, PAD图的优点?

         在详细设计阶段进行过程设计时,要描述程序处理过程,可以采用图形,表格,语言类工具,无论采用哪类工具,都需要我们对设计进行清晰的描述,应标明控制流程,系统功能,数据结构等方面的细节,以便在系统 ...

  3. 软件工程中过程设计的工具

    描述程序处理过程的工具称为过程设计工具,它们可以分为图形.表格.和语言3类. 不论是哪类工具,对它们的基本要求都是能提供对设计的无歧义的描述. 即:应该能指明控制流程.处理功能.数据组织,以及其他方面 ...

  4. 【软件工程】过程设计的工具

    文章目录 程序流程图(PFD) 示例 盒图(N-S图) 问题分析图(PAD) 判断表 判定树 过程设计语言(PDL) 语法 程序流程图(PFD) 图形 简述 说明 开始或结束 内部写开始或结束 处理 ...

  5. 毕业设计《软件工程》教学网站的设计与实现ASP+SQL Sever2000

    随着网络技术的发展和网络的普及,网络教学已经成为当前的一个教育热点.国家教育部根据当前的教育形式,适时提出了以建设"国家精品课程"为主要内容的"质量工程",以实 ...

  6. 软件工程系列教材:软件架构设计实践教程

    第1章 认识软件架构 1.1 软件架构与软件工程 1.1.1 软件产业的工业化与现代化 1.1.2 软件系统的复杂性 1.1.3 克服"软件危机"的进程 1.1.4 现代软件产业发 ...

  7. 浅析软件工程中的一些常见设计原则

    老子说:有道无术,术尚可求也.有术无道,止于术.如果说设计模式是"术",那么设计原则就是"道".今天,我们一起来聊聊软件工程中一些常用的设计原则. DRY 原则 ...

  8. 电子科技大学数据库与软件工程实验四(课程设计)

    适用于网工和物联网专业 目录 相关内容涉及隐私部分没有列出 此部分是期末考试最后一个大题 第一章 概述 1.1软件工程的起源 1.1.1软件危机 1.1.2软件工程概念提出 1.2软件工程的定义 1. ...

  9. 软件工程管理集成了过程管理和项目管理

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  10. [软件工程] 软件工程概念

    软件工程概念 一.软件工程的介绍 (一)软件工程的两个定义 (二)软件工程的发展已经历了四个重要阶段: 1.第一代软件工程 - 传统的软件工程 2.第二代软件工程 - 对象工程 3.第三代软件工程 - ...

最新文章

  1. 【JDK7】新特性(2) 语法
  2. Pyqt5 获取命令行参数sys.argv
  3. call_user_func() expects parameter 1 to be a valid callback, cannot access private method
  4. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
  5. ios nslinkattributename 自定义url_iOS音视频播放指南(二)
  6. C#学习小记14求助一道让我头疼的C#小题
  7. BZOJ 2844 | HYSBZ - 2844albus就是要第一个出场——线性基
  8. printf函数的格式修饰符
  9. 程序员经常看的开源月刊《HelloGitHub》第 57 期
  10. 世界名校、大厂人才汇聚,“马栏山杯”算法大赛打造 AI 视频竞技场
  11. GDPR法律条款解读及应对指南(全面版)
  12. 关于visual studio和vc版本之间的对应关系(更新至2020.07)
  13. 百度文库免费复制文字_我们有2种通过鼠标右键复制百度文库的方法要告诉你...
  14. java笔试题大全带答案_java笔试题大全带答案(经典11题)
  15. 个人收藏机器学习教程
  16. ST-LINK烧录stm32程序步骤
  17. 【idea使用】主题文字修改
  18. python 生涯之语法基础
  19. 解决Onenote不能同步
  20. 调用系统安装软件时出现“解析软件包时出现问题”

热门文章

  1. 2022-2027年中国电动汽车充电站及充电桩行业市场深度分析及投资战略规划报告
  2. scratch节假日课程:春节舞狮
  3. Java应用程序浏览器集成控件JxBrowser v7.18新版发布!
  4. 【ERP流程图】:生产制造
  5. 王道训练营 Java 部分测试
  6. Java语言的技术平台:JavaSE、JavaEE和JavaME
  7. 针对中东石油能源工业控制系统的又一网军诞生
  8. Go编译原理系列1(编译原理概览)
  9. R与RStudio的详细安装教程(有每一步的详细教程!!!!)
  10. 小甲鱼c语言入门冒泡,小甲鱼 排序算法 冒泡排序