当前位置: 首页 > news >正文

计算机专业知识【软件开发中的常用图表:E - R图、HIPO、DFD、N - S、PAD详解】

在软件开发过程中,有许多种图表工具被用于不同阶段的设计和分析,帮助开发者更清晰地理解系统结构、数据流程和算法逻辑。下面将详细介绍E - R图、HIPO图、DFD图、N - S图和PAD图,包括它们的样子和用途。

一、E - R图(实体 - 联系图)

样子描述

E - R图主要由实体、属性和联系三部分组成。

  • 实体:用矩形表示,矩形内写上实体的名称。例如在一个学校管理系统中,“学生”“教师”“课程”都可以是实体,分别用标有“学生”“教师”“课程”的矩形表示。
  • 属性:用椭圆形表示,通过连线与相应的实体相连。比如“学生”实体有“学号”“姓名”“年龄”等属性,就用标有这些属性名的椭圆形连接到“学生”矩形上。
  • 联系:用菱形表示,菱形内写上联系的名称,并用连线将相关的实体连接起来。联系有不同的类型,如一对一(1:1)、一对多(1:n)和多对多(m:n)。例如“学生”和“课程”之间存在“选课”联系,是多对多的关系,就用一个标有“选课”的菱形连接“学生”和“课程”两个矩形。

用途

E - R图主要用于数据库设计的概念结构设计阶段,它可以直观地描述现实世界中的实体、属性以及它们之间的联系,帮助数据库设计师规划数据库的结构。
在这里插入图片描述

二、HIPO图(层次 - 输入 - 处理 - 输出图)

样子描述

HIPO图由层次结构图和IPO图两部分组成。

  • 层次结构图:是一种树形结构,用矩形框表示模块,矩形框内写上模块的名称。模块之间用连线表示调用关系,上层模块可以调用下层模块。例如一个软件系统有主模块,主模块下可能调用“数据输入模块”“数据处理模块”“数据输出模块”等,这些模块在层次结构图中呈现出树形的层次关系。
  • IPO图:通常是一张表格,分为输入、处理和输出三部分。输入部分列出模块接收的数据,处理部分描述模块对输入数据进行的操作,输出部分说明模块产生的结果。每个模块都有对应的IPO图,详细描述其功能。

用途

HIPO图用于软件系统的总体设计,它可以清晰地展示系统的模块层次结构和每个模块的输入、处理、输出信息,便于团队成员理解系统的整体架构和模块功能。
在这里插入图片描述

三、DFD图(数据流图)

样子描述

DFD图主要由外部实体、数据流、处理过程和数据存储四部分组成。

  • 外部实体:用矩形表示,代表系统之外与系统有数据交互的人、组织或其他系统。例如在一个网上购物系统中,“顾客”“商家”就是外部实体。
  • 数据流:用带箭头的线段表示,箭头方向表示数据的流动方向,线段上标有数据的名称。例如“顾客”向系统发送“订单信息”,就用一个标有“订单信息”的箭头从“顾客”指向系统的处理过程。
  • 处理过程:用圆形或椭圆形表示,里面写上处理的名称。比如“订单处理”“库存管理”等处理过程。
  • 数据存储:用开口的矩形表示,代表数据的存储位置,如数据库、文件等。例如“商品信息数据库”“订单数据库”等。

用途

DFD图用于描述系统的数据流程,它可以帮助开发者分析系统中数据的来源、流向和处理过程,是需求分析阶段常用的工具。
在这里插入图片描述

四、N - S图(盒图)

样子描述

N - S图是一种结构化流程图,它将程序的流程封装在一个个矩形框中,没有传统流程图中的箭头。它的基本结构有顺序结构、选择结构和循环结构。

  • 顺序结构:用一个大矩形表示,矩形内从上到下依次排列着各个操作步骤。
  • 选择结构:用一个类似菱形的框表示判断条件,框的上下分别连接不同的操作步骤框,根据判断结果执行相应的步骤。
  • 循环结构:用一个矩形框表示循环体,框内包含循环条件和循环操作,循环条件框在循环体的上方或下方。

用途

N - S图用于详细设计阶段,它可以清晰地展示程序的逻辑结构,避免了传统流程图中随意跳转的问题,使程序的结构更加清晰、易读。
在这里插入图片描述

五、PAD图(问题分析图)

样子描述

PAD图也是一种结构化的流程图,它采用二维树形结构来表示程序的逻辑。它的基本符号有顺序、选择和循环三种。

  • 顺序结构:用自上而下的矩形框表示,每个矩形框代表一个操作步骤。
  • 选择结构:用类似二叉树的结构表示,根节点是判断条件,分支节点是不同的操作步骤,根据判断结果选择相应的分支执行。
  • 循环结构:用一个矩形框表示循环体,框内有循环条件和循环操作,循环条件在框的上方。
    在这里插入图片描述

用途

PAD图同样用于软件的详细设计,它能够清晰地表达程序的层次结构和逻辑关系,便于程序员根据图形编写代码,也有利于代码的维护和调试。

这些图表在软件开发的不同阶段发挥着重要作用,开发者可以根据具体的需求和场景选择合适的图表工具来进行系统设计和分析。

相关文章:

  • STM32 HAL库USART串口中断编程:演示数据丢失
  • AI 百炼成神:线性回归,预测房价
  • ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL基本配置和使用
  • PID控制学习
  • [java详细总结] java中的String详解
  • PhotoShop新版脚本编辑工具安装
  • cornerstone3D学习笔记-MPR
  • Web 后端 请求与响应
  • 【Javascript Day17】事件传播、事件对象
  • 基于C++重构muduo网络库搭建HTTP服务器项目设计及反思
  • ffmpeg 多路流处理在iOS的具体使用
  • OpenCV机器学习(6)朴素贝叶斯分类器(Naive Bayes Classifier)cv::ml::NormalBayesClassifier的使用
  • Java内存模型(JMM)深度解析:从并发问题到解决方案
  • Webpack 基础入门
  • 代码随想录第三十五天| 46. 携带研究材料(第六期模拟笔试) 416. 分割等和子集
  • 计算机网络基础知识
  • Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
  • 跟着AI学习vue3第三章
  • Meta 正在押注人形机器人领域
  • 【工具变量】上市公司网络安全治理数据(2007-2023年)
  • 湘潭网站开发/企业网站建设的重要性
  • 赣州建网站/网站推广优化设计方案
  • 企业网站怎么做的/关键词优化靠谱推荐
  • 网站搭建怎么收费/国外域名注册网站
  • 晚上睡不着看b站正常吗/锦州seo推广
  • 做设计的网站商家入驻/qq推广软件