软件工程(数据流图例题详解)
假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下述的数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。
数据流图有4种成分:
1、源点和终点
2、处理
3、数据存储
4、数据流
因此,第一步可以从问题描述中提取数据流图的4种成分:
①首先考虑数据的源点和终点,从上面对系统的描述可以知道“采购部每天需要一张订货报表”,“通过放在仓库中的CRT终端把事务报告给订货系统”,所以采购员是数据终点,而仓库管理员是数据源点。
②接下来考虑处理,再次一次阅读问题描述,“采购部需要报表”,显然他们还没有这种报表,因此必须有一个产生报表的处理。事务的后果是改变零件库存量,然而任何改变数据的操作都是处理,因此对事物进行的加工是另一个处理。
③最后,考虑数据流和数据存储:系统把订单报表送给采购部,因此订货报表是一个数据流;事务需要从仓库送到系统中,显然事务是另一个数据流。产生报表和处理事务这两个在时间上明显不匹配———每当有一个事务发生时立即处理它,然而每天只产生一次订货报表。因此,用来产生订货报表的数据必须存放一段时间,也就是应该有应该数据存储
组成数据流图的元素可以从描述问题的信息中提取出来
源点/终点 | 处理 |
采购员 仓库管理员 |
产生报表 处理事务 |
数据流 | 数据存储 |
订货报表 零件编号 零件名称 订货数量 目前价格 主要供应者 次要供应者 事务 零件编号 事务类型 数量 |
订货信息 库存清单 零件编号 库存量 库存量临界值 |
一旦把数据流图的4种成分都分离出来以后,就可以画数据流图了,但是,怎样开始画呢?
注意:数据流图是系统的逻辑模型,然而任何计算机系统实质上都是信息处理系统,也就是说计算机系统本质上都是把输入数据变换成输出数据。因此,任何系统的基本模型都是由若干数据源点/终点以及一个处理组成,这个处理就代表了系统对数据加工变换的基本功能。
从基本系统模型这样非常高的层次开始画数据流图是一个好办法。在这个高层次的数据流图上是否列出了所有给定的数据终点/源点一目了然,因此它是很有价值的通信工具。
然而,订货系统的基本系统模型图毕竟太抽象,从这张图对订货系统所能代表的信息非常有限。下一步应该把基本系统模型细化,描绘系统的主要功能。从信息表中可得,“产生报表”和“处理事务”是系统必须完成的两个主要功能,它们将代替订货系统的基本系统模型图中的订货系统,此外,细化后的数据流图还增加了两个数据存储:处理事务需要“库存清单“数据;产生报表和处理事务在不同时间进行,因此需要存储”订单信息“。除了订货系统的基本系统模型图中列出的两数据流之外,还有另外两个数据流,它们与数据存储相同。这是因为从应该数据存储中取出来的或放进去的数据通常和原来数据相同,也就是说,数据存储和数据流只不过是同样的数据的两种不同的形式。
订货系统的功能级数据流图
接下来应该对功能级数据图中描述的系统主要功能进一步细化。考虑通过系统的逻辑数据流:当发送一个事务时必须首先接收它;随后按照事务的内部修改库存清单;最后如果更新后的库存量少于库存量临界值时,则应该再次订货,也就是要处理订货信息。因此,把“处理事务”这个功能分解为下述3个步骤,这在逻辑上是合理的:“接受事务”,"更新库存清单","处理事务"。
为什么不进一步分解“产生报表”这个功能呢?订货报表中需要的数据在存储的订货信息中全部都有,产生报表只不过是按一定顺序排列这些信息,再按一定格式打印出来。然而这些考虑纯属具体实现的细节,不应该在数据流图中表现。同样道理。对“接收事务”或“更新库存清单”等功能也没有必要进一步细化。总之,当进一步分解将涉及如何具体实现一个功能时就不应该再分解了。
当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
此外还要注意图中处理编号的方法。处理1.1,1.2和1.3是更高层次的数据流图中处理1的组成元素。如果处理2被进一步分解,它的组成元素的编号将是2.1,2.2,……;如果把处理1.1进一步分解,则将得到编号为1.1.1,1.1.2,……的处理。
软件工程(数据流图例题详解)相关推荐
- 算术编码例题详解_百分数与百分点区别详解
通过以往的答疑经验,许多同学对于出现百分点的材料和题目不能够很好的百分点与已知百分数之间的关系.那么百分数与百分点的核心区别在哪里?常见题型中出现的百分数与百分点应该如何进行理解应用? 百分数与百分点 ...
- dijkstra标号法表格_标号法求最短路径例题详解.ppt
标号法求最短路径例题详解 r * 最短路径 带权图G=, 其中w:E?R. ?e?E, w(e)称作e的权. e=(vi,vj), 记w(e)=wij . 若vi,vj不 相邻, 记wij =?. 设 ...
- 马氏距离例题详解(全网最详细)
马氏距离例题详解 定义 马哈拉诺比斯距离是由印度统计学家马哈拉诺比斯 (英语)提出的,表示数据的协方差距离.它是一种有效的计算两个未知样本集的相似度的方法.与欧氏距离不同的是它考虑到各种特性之间的联系 ...
- nacl溶解度_科普下氯化钠溶解度(含例题详解)
关于到现在氯化钠溶解度(含例题详解)这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道氯化钠溶解度(含例题详解),小编也是到网上收集了一些与氯化 ...
- 分治算法小结(附例题详解)
分治算法小结(附例题详解) 我的理解: 分治算法我的理解就是看人下菜碟,我们要解决的问题就好像一群人构成的集体,要我们解决这个问题,那我们就要满足这群人里面每个人不同的需求,也就是写出解决的代码,把每 ...
- 小数加分数怎样计算讲解_干货!整数、小数、分数怎么计算更简便?含例题详解...
原标题:干货!整数.小数.分数怎么计算更简便?含例题详解 小学数学中,一直贯穿着一个内容,那就是简便运算.在整数范围.小数范围.分数范围内都做为一个内容重复出现.而这个内容也正是小学数学中的一个难点. ...
- 调度算法-优先级调度算法+例题详解
1. 优先级调度算法的类型 优先级进程调度算法,是把处理机分配给就绪队列中优先级最高的进程.这时,又可进一步把该算法分成如下两种. 非抢占式优先级调度算法. 抢占式优先级调度算法. 2. 优先级的类型 ...
- 复向量的内积(例题详解)
复向量内积例题详解 定义 设x,y∈Cnx,y \in C^nx,y∈Cn,其内积 (x,y)=x1y1‾+x2y2‾+...+xnyn‾=∑i=1nxiyi‾(x,y) = x_1 \overlin ...
- 调度算法-多级反馈队列+例题详解
1. 调度机制 (1) 设置多个就绪队列. 优先级从高到低,时间片从小到大. (2) 每个队列都采用FCFS算法. 当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度.当轮到该进程 ...
最新文章
- SuperSocket源码解析之开篇
- vf省计算机考试题库,计算机二级VF上机题库及答案
- 遇到Python中文目录名问题,未解决
- 《自己动手写操作系统》(一)
- 【广东大学生网络攻防大赛-WriteUp(非官方)】Misc | 复合
- 在ArcCatalog中通过图标来认识ArcGIS中的数据
- ES 创建太多 buckets 错误: trying to create too many buckets. must be less than or equal to: [100000] but w
- 安卓手机格式化怎么弄_安卓手机怎么格式化 Android手机内存卡格式化方法
- EXECL日期相减计算工龄
- 在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面)
- 丰富的层次感,打造190㎡现代简约居住空间
- pixhawk连接到nvidia xavier
- Kong的Service 配置
- 老鼠喝毒药问题分析及代码
- 代码规范与《数学之美》读后感
- AOP机制之环绕通知的见解
- 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(7) 视图
- web网页、手机app设计规范
- 一些oracle的论坛和网站
- Linux动态加载内核模块
热门文章
- 各类开发生产环境缩写
- flink SQL与hbase整合
- 怎样修复CRC校验错误?
- 用计算机怎么管理小米路由器,小米路由器3做二级路由器怎么设置?小米路由器3设置详细教程...
- 计算机主机内的零件有什么用,ROM和RAM分别是什么?有什么区别?与电脑的什么配件的作用是一? 爱问知识人...
- 【Unity】动作游戏开发实战详细分析-26-组合攻击
- Cura参数设置-避免支撑拆除带来的困难
- laravel5.5 sendCloud 发送邮件(sendCloud Api and naux/sendcloud )
- ARM与高校联合研制基于机器学习的柔性传感器
- 华为手机传感器测试软件,华为P8拍摄能力测试 IMX278传感器到底魅力何在