软件设计的启发规则---层次图,HIPO图和结构图----画数据流图

2023-05-16

1、软件设计的启发规则有那些?
答:1.改进软件结构提高模块独立性
2. 模块规模应该适中
3.深度、宽度、扇出和扇入都应适当
4.模块的作用域应该在控制域之内
5.力争降低模块接口的复杂程度
6.设计单入口单出口的模块
7.模块功能应该可以预测
2、层次图,HIPO图和结构图有那些不同?
答:
​ 层次模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,而并不关心模块的内部。换句话说也就是只关心它是什么,它能够做什么的问题,而不关心它是如何去做的(这一部分内容由下面的IPO图解决)。
HIPO图:即层次图+输入/处理/输出图的英文缩写,由一张H图和一组IPO图组成。
H图,是给每个模块加上编号的层次图。
IPO图,要为H图中的每个模块画一张IPO图。通常将HIPO图作为软件结构的描绘,列入设计文档.
功能结构图:功能结构图就是按照功能的从属关系画成的图表,图中的每一个框都称为一个功能模块。功能模块可以根据具体情况分的大一点或小一点,分解得最小功能模块可以是一个程序中的每个处理过程,而较大的功能模块则可能是完成某一个任务的一组程序。功能结构图是对硬件、软件、解决方案等进行解剖,详细描述功能列表的结构,构成,剖面的从大到小,从粗到细,从上到下等而描绘或画出来的结构图。从概念上讲,上层功能包括 (或控制)下层功能,愈上层功能愈笼统,愈下层功能愈具体。功能分解的过程就是一个由抽象到具体、由复杂到简单的过程。图中每一个框称为一个功能模块。功能模块可以根据具体情况分得大一点或小一点。分解得最小的功能模块可以是一个程序中的每个处理过程,而较大的功能模块则可能是完成某一任务的一组程序。​

3、画数据流图用到那些符号?有那些步骤?
数据流图(DFD)
数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图有四种基本图形符号:
——>箭头,表示数据流;
〇:圆或椭圆,表示加工;
= :双杠,表示数据存储;
□:方框,表示数据的源点或终点。
(1) 数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
(2)加工(又称为数据处理)。对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。
(3)数据存储(又称为文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。一般只出现在数据流图的顶层图。
画数据流图步骤:
​(1)首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。
(2)画系统内部,即画下层数据流图。不再分解的加工称为基本加工。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。
(3)注意事项。
①命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。
②画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
③一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
④每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
⑤编号。如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。
⑥父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
⑦局部数据存储。当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。
⑧提高数据流图的易懂性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件设计的启发规则---层次图,HIPO图和结构图----画数据流图 的相关文章

  • TDA4VM 8.4 RTOS SDK 中 SBL 的编译流程解析与makefile 分析笔记

    目录 0 TDA4VM 8 4 RTOS SDK 中 SBL 的编译流程解析TI SDK 的可执行文件后缀名是 xer5f 的原因sbl ospi img 的 xer5f 可执行文件的生成过程编译依赖的静态库编译可执行文件命令 xer5f
  • 【OpenCV 4开发详解】图像模板匹配

    本文首发于 小白学视觉 微信公众号 xff0c 欢迎关注公众号 本文作者为小白 xff0c 版权归 人民邮电出版社发行所有 xff0c 禁止转载 xff0c 侵权必究 xff01 经过几个月的努力 xff0c 小白终于完成了市面上第一本Op
  • PSPNet | 语义分割及场景分析

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本次 xff0c 由香港中文大学 CUHK 和商汤科技 SenseTime 提出的金字塔场景解析网络 Pyramid Scene Pa
  • 自制的ST-LINK_V2(带虚拟串口)

    lt 项目 gt 自制的ST LINK V2 带虚拟串口 前言 这是一个自己做的一个st link 带一个虚拟串口 xff0c 体积绝对让人惊喜 xff08 16mm x 45mm xff09 Drawn By 67373UPUP 硬件部分
  • Keil警告:warning: #223-D: function “xxx“ declared implicitly解决

    原因 xff1a 这种情况下很可能是头文件的预定义声明重复了 比如写了两个LED文件 xff0c 一个是LED1 c xff0c 另一个是LED2 c 他们俩都是从LED c移植过来的 xff0c 然后头文件忘了修改 xff0c 里面的预定
  • ubuntu或者树莓派截图工具flameshot下载与快捷键配置

    Ubuntu下截图工具推荐 ubuntu18 04安装0 6以上版本的flameshot
  • FOC单片机底层——STM32 CubeMX ADC的配置

    文章目录 1 STM32 CubeMX的配置1 1 ADC的配置 2 FOC原理部分的思考2 1 编码器角度校准2 1 1 角度校准原理2 1 2 多个角度校准值 3 工程实现部分的思考3 1 定点数和浮点数 1 STM32 CubeMX的
  • 摄像头排线

    文章目录 1 FFC排线 2 FPC排线 3 FFC与FPC的排线区别 1 FFC排线 FFC排线又称 xff1a 柔性扁平线缆 xff0c 可以任意选择导线数目及间距 xff0c 使联线更方便 xff0c 大大减少电子产品的体积 xff0
  • 蜂鸣器

    1 蜂鸣器 xff1a 外形 xff1a 无源蜂鸣器 xff08 外壳有 43 号 xff0c 背面为绿色电路板 xff09 有源蜂鸣器 xff08 无电路板而用黑胶封闭 xff09 源为电源 xff0c 或者振荡电路 内部结构及驱动发声方
  • mysql + redis + flask + flask-sqlalchemy + flask-session 配置及项目打包移植部署

    1 下载mysql installer community 5 7 24 0 msi xff08 https dev mysql com downloads windows installer 8 0 html xff0c 选择Lookin
  • Linux 被暴力破解ssh密码处理

    Linux 被暴力破解ssh密码处理 意外发现自己的云服务器被人持续很长时间暴力破解 xff0c 以下是处理办法 1 查询登录失败日志 通过命令查看被爆破情况 lastb lastb n 20 被持续破解 xff0c 先看20行 lastb
  • Vncviewer的使用流程(经验之谈)

    在这里我主要是解说一下Vncviewer的简单使用步骤以及使用当中要注意的事项 xff01 对着搞就行了 一 进入后记得将服务器的ID改为你要连接的对象人 xff08 即Boss的ID xff09 二 点击选项以及在里面的操作 三 桌面屏幕
  • java获取登陆用户ip方法

    今天和大家分享一下获取登录用户 ip的方法 xff0c 如果你想获取自己的登陆用户 ip xff0c 可以参考以下思路 xff1a 1 可以通过 Java动态链接库的方式获取到 xff0c 方法很简单 xff0c 就是把需要的 ip地址添加
  • npm install 超时/卡住

    第一次使用npm发现什么东西也下不了 xff0c 各种超时 xff0c 更换镜像源 xff0c 删除缓存等方法都无效 xff0c 最后看到一个方法 xff0c 清除了一下代理 xff08 虽然我没有设置过 xff09 xff0c 然后将镜像
  • Docker的网络模式bridge、host、container other、overlay

    docker run创建Docker容器时 xff0c 可以用 net选项指定容器的网络模式 xff0c Docker有以下5种网络模式 xff1a bridge模式 xff1a 使用 net 61 bridge指定 xff0c 默认设置
  • pyqt5 嵌于主界面状态栏的进度条

    写在前面 放在状态栏处的进度条 本想放在主界面 xff0c 但是没找到相关代码 代码 span class token comment coding utf 8 span span class token keyword from span
  • 分布式文件系统-HDFS

    主要内容 xff1a HDFS是什么 xff1f HDFS优点HDFS架构副本机制 1 HDFS是什么 xff1f 是由Hadoop实现的一个分布式的文件系统 xff08 Hadoop Distributed File System xff
  • 让我们来做一个属于自己的浏览器主页吧!

    对于我们程序员来说每天最常用的就是浏览器 因为像google 百度 火狐 必应这些浏览器的主页不太美观壁纸也很少 xff0c 所以我做了一个浏览器主页 xff0c 目前做的功能比较少后续会慢慢完善 xff0c 先给大家展示一下 废话少说我们
  • 卷积的过程

    span class token comment usr bin env python span span class token comment coding utf 8 span span class token comment aut
  • 使用Realsense D435i运行VINS-Fusion并建图

    1 安装VINS 到github xff1a VINS xff0c 按照说明安装依赖和编译vins ceres别装2 0版本 xff0c 装1 4 开始装的2 0遇到错误error integer sequence is not a mem

随机推荐

  • 使用AT命令获取本机号码

    我之前认为手机号码与SIM卡是一一对应的 xff0c 后来想想不对 xff0c 因为有换卡不换号的情况啊 xff0c 所以SIM卡应该只是一个电话号码的储存介质 xff0c 而与SIM卡一一对应的是另一个编码 IMSI xff08 国际移动
  • linux系统中的临时文件

    1 什么是临时文件 下载和安装 39 卸载软件 打开电子邮件和即时消息程序中的文件或传输文件时创建 通常 xff0c 创建临时文件的程序会在完成时将其删除 xff0c 但有时候这些文件会被保留 一段时间后 xff0c 这些废弃的临时文件 x
  • linux中的网络配置之网关

    1 网关 网关 Gateway 又称网间连接器 协议转换器 网关在网络层以上实现网络互连 xff0c 是复杂的网络互连设备 xff0c 仅用于两个高层协议不同的网络互连 网关既可以用于广域网互连 xff0c 也可以用于局域网互连 网关是一种
  • python网络爬虫(爬取bilibili一位up的视频标题,评论数量等基本信息)

    对爬虫还挺有兴趣的 xff0c 但是一直没有尝试过 xff0c 今天看了几篇写得非常好的博客 xff0c 学到了一丢丢 xff0c 自己也写了个简单的爬虫娱乐娱乐 1 分析需求 需求 xff1a 爬取b站up主王老菊所有视频投稿的编号 xf
  • Python面向对象结合第三方库pygame的练习----贪吃蛇小游戏

    今天看到几个关于pygame模块的博客和视频 xff0c 感觉非常有趣 xff0c 这里照猫画虎写了一个贪吃蛇小游戏 xff0c 目前还有待完善 xff0c 但是基本游戏功能已经实现 xff0c 下面是代码 xff1a 导入模块 impor
  • Python实现爬取全国疫情数据和地区疫情查询

    一个小小的爬虫程序 xff0c 练练手 xff0c 没什么实际作用 xff0c 希望疫情赶快过去 1 获取url 以腾讯的疫情动态作为来源 xff0c 寻找包含疫情数据的url xff1a 经过寻找 xff0c 发现包含疫情数据的url为
  • 部署LNMP并利用LNMP搭建wordpress论坛

    1 LNMP是什么 xff1f LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写 L指Linux xff0c N指Nginx xff0c M一般指MySQL xff0c 也可以指MariaDB xff0c P一般
  • Redis(一)redis实现主从复制以及sentinel模式部署

    1 什么是redis redis是一个key value存储系统 和Memcached类似 xff0c 它支持存储的value类型相对更多 xff0c 包括string 字符串 list 链表 set 集合 zset sorted set
  • Redis(二)搭建redis集群

    1 为什么需要redis集群 xff1f 单个redis存在不稳定性 当redis服务宕机了 xff0c 就没有可用的服务了 单个redis的读写能力是有限的 2 redis集群概述 redis集群中 xff0c 每一个redis称之为一个
  • 部署Harbor私有镜像仓库

    1 什么是Harbor Harbor的中文意思是港湾 xff0c 在这里它指的是一个用于存储Docker 镜像的企业级Resitry服务 xff0c 它是由VMware公司开源的Docker Registry管理项目 xff0c 包括权限管
  • sumo入门-保姆级教程

    SUMO学习 入门篇 1 安装SUMO 在sumo官网 xff08 https sumo dlr de docs Downloads php xff09 安装即可 xff0c 为省略不必要的困扰 xff0c 推荐安装在C盘 xff0c xf
  • CAS 服务端的搭建

    上文讲了CAS客户端 xff0c 本文记录CAS Server的搭建步骤 CAS Server的版本一定要选好 xff0c 我选的是CAS5 3 xff0c Java版本用的8 xff0c 目前最新的CAS6 5的Java版本最低是11了
  • SUMO 换道设置,靠右行驶

    vType中设置换道参数 xff0c 解决仿真中车辆一直靠右行驶和无脑逮着一个进口道走等情况 lt vType id 61 34 type1 34 accel 61 34 0 8 34 decel 61 34 4 5 34 sigma 61
  • SUMO 设置速度后正常行驶

    先附上traci vehicle setSpeed vehID speed 的使用说明 xff1a setSpeed self vehID speed 在最后一步中为命名车辆设置速度 xff08 以 m s 为单位 xff09 以 spee
  • 【NS3】SUMO安装 (Linux+Windows)

    SUMO安装 xff08 Linux 43 Windows xff09 文章目录 SUMO安装 xff08 Linux 43 Windows xff09 Windows安装OSMWebWizard 与NS3选项设置车辆与需求设置文件生成 L
  • STM32 STlink安装以及安装失败解决方法

    STM32 STlink安装以及安装失败解决方法 1 STM32 STlink下载连接 xff08 可能需要科学上网 xff09 http www bkill com download 185935 html text 61 ST LINK
  • 嵌入式学习之linux系统编程---7 目录IO之mkdir函数

    1 目录IO与文件IO的区别 目录IO文件IOopendir 打开目录open 打开文件mkdir 创建目录 readndir 读目录read 读文件closedir 关闭目录close 关闭文件 区别 xff1a 在之前的博客中提到的文件
  • Ubuntu查看系统内存,硬盘使用情况,指定目录使用情况,GPU。

    内存和硬盘的区别 1 内存是半导体材料制成的 xff0c 硬盘是磁性材料制成的 2 内存中的信息停电会消失 xff0c 硬盘中的信息可以长久保存 3 执行程序首先放入到内存之中 xff0c 然后放入的CPU中处理 主存如内存 xff0c 辅
  • MQ-2烟雾传感器解析

    一 工作原理 可用于家庭和工厂的气体泄漏监测装置 xff0c 适宜于液化气 苯 烷 酒精 氢气 烟雾等的探测 故因此 xff0c MQ 2可以准确来说是一个多种气体探测器 MQ 2的探测范围极其的广泛 它的优点 xff1a 灵敏度高 响应快
  • 软件设计的启发规则---层次图,HIPO图和结构图----画数据流图

    1 软件设计的启发规则有那些 xff1f 答 xff1a 1 改进软件结构提高模块独立性 2 模块规模应该适中 3 深度 宽度 扇出和扇入都应适当 4 模块的作用域应该在控制域之内 5 力争降低模块接口的复杂程度 6 设计单入口单出口的模块