目录
前言
在拿到项目业务等信息之后,需要向需求规格说明书中添加数据流图和数据库关系图ER图,数据表之间的数据流图等
仅做个人记录学习所用,如有侵权,请联系我删除
数据流图
概念
数据流图(DFD) 是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
优点
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。即用于建立功能模型的数据流图。
数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。此外,设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。
基本组成
- 数据流:是由一组固定成分的数据组成,表示数据的流向,除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义
数据字典 : 数据流箭头上只标明了 “账号信息” , 没有具体的格式内容 , 是只有账号 , 还是有账号/密码/验证码等信息 , 这些数据详细格式 , 都在 数据字典中定义 ;
- 加工:加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据
- 数据存储:数据存储表示暂时存储的数据,每个数据存储都有一个名字
- 外部实体:外部实体是存在于软件系统之外的人员或组织
基本图形组成(重点)
箭头
表示数据流 , 箭头所指的方向 , 代表了数据流向 ;
矩形
表示外部实体
双横线 / 半框形矩形
表示数据存储
圆形 / 圆角矩形/椭圆形(核心)
表示加工
数据流图 ( DFD ) 分层
1、分层说明
数据流图分层 , 最上层是 顶层数据流图 , 第二层是 0 00 层数据流图 , ⋯ \cdots⋯ , 最底层是 底层数据流图 ,
“顶层数据流图” 与 “底层数据流图” 之间是若干 中层数据流图 ,
中层数据流图 需要进行编号 , 从 0 开始编号 ;
2、顶层数据流图
顶层数据流图 : 中间的椭圆 是需要开发的 系统 , 周边的矩形 表示的是 外部实体人或组织 , 外部实体 与 系统 之间 , 有数据传输关系 ;
一个形象的说明是 多个人吃火锅 , 外层周边是人 , 中心位置火锅是系统 ;
顶层数据流图 能够表达的信息是非常有限的 , 其 将整个系统 , 使用一个节点表示 ,
其可以体现出 系统与外界实体之间的交互 ,
但是 系统内部的情况 , 系统内部模块之间的数据交换 是没有体现的 ;
3、中层数据流图
将 “顶层数据流图” 进行细化 , 细化后的 0层数据流图 ,
与 顶层数据流图 比较没有变化的部分 : 外部实体 , 外部实体与系统之间的数据流 , 是没有变化的 ;
变化部分 : 有变化的部分是系统内部 , 系统内部进行了细化 , 原来系统是一个节点 , 在 中层数据流图 中 , 会将一个节点 拆分成 多个节点 , 这些节点就是系统中的数据处理部件 , 即 加工 ;
这些数据处理部件 ( 加工 ) 之间会有数据流的交互 ,
4、底层数据流图
针对每个加工 节点 , 将其拆分 , 绘制其中的更详细的数据流转情况 ;
数据流图 ( DFD ) 分层 , 是从 顶层 -> 中层 -> 底层 , 逐层进行分解 , 这种分解思路 , 与结构化的开发方法 , 是完全匹配的 ;
因此 , 数据流图 是 结构化 开发方法中 , 最常用的工具 ;
数据流图设计原则
本章节来自参考资料3
父图-子图平衡原则
即父图输入输出数据流等于子图输入输出数据流。
数据守恒原则
守恒加工原则
每个加工至少有一个输入数据流和一个输出数据流
实际案例
家庭保安系统
以下内容来自参考资料3
第一步
从问题描述中提取数据流图的4种组成成分
数据源点和终点–》数据处理–》数据流和数据存储。
第二步
画顶层数据流图,即反映最主要业务处理流程
第三步
基本系统模型细化,描绘系统的主要功能
第四步
对主要功能进一步细化
图书预定系统
书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单,定期处理正常订单。最后系统将所处理的订单汇总,并按出版社要求发给出版社。
第一步:顶层数据流图
第二步:细化
第三步:逐步细化
机票预订系统
以下内容来自参考资料4 【UML】如何画好数据流图基础教程_数据流图怎么画-CSDN博客
为了方便旅客,旅行平台拟开发一个机票预定系统。航空公司会根据航班信息来安排航班,并将航班信息存储在订票信息中;旅客 订票时,旅客将旅客信息输入该系统,系统根据旅客信息在订票信息中查询合适的航班,并返回机票信息,然后系统根据机票信息 打印机票,最后将机票信息返回给旅客。请根据上述描述完成相应的数据流图。
航空公司 会根据 航班信息来 安排航班
可以看的出航空公司是一个实体,航班信息是种数据,安排航班是处理这个数据,所以我们得到以下的图。
并将航班信息存储在订票信息中
上面的话可以看见将航班信息存储在订票信息中,得到下图:
旅客订票时,旅客将旅客信息输入该系统,
上面的话可以看出有操作了,实体是旅客,操作数据是订票行为,将信息输入该系统(订票)下图:
系统通过旅客信息,在订票信息中查询合适的航班,并返回机票信息
通过上面的看见发现是系统查询并返回系统(注意:订票信息只是把名字放上面去了,没有更改图)
然后系统根据机票信息,打印机票
上面又有操作,根据机票信息这个数据流来打印机票(操作数据)得下图:
最后将机票信息返回给旅客
其他案例
参见 软件工程 -- 数据流图的画法_数据流图怎么画-CSDN博客
自行实践案例
现有一个公司内部系统,只有管理员能上传文件到数据库,文件上传完毕需要综合主管审核,通过后才能选择性下发其他部门。审核通过后也会将文件上传至大模型,大模型可根据上传的文件来回答从业人员所询问的问题。管理员也可直接上传岗位手册,热点资讯等特殊文件直接上传至大模型处。
管理员和主管能够随时对已经上传至数据库的文件进行分支操作,也可查询废止数据库对废止数据库进行恢复,回到上传文件库中。
所有人从业人员均可对上传的文件进行收藏,查询,下载,对于收藏的文件,会出现在收藏表中。
注意:每条数据线上应该有一条数据流的名字,来代表这条数据流的含义
管理员和主管员能够向题库中上传、修改、更新、导出文件,也能进行组卷,自动或者手动从题库选择题目组成试卷,存入考试表中。所有从业人员可以查看管理员或主管员上传到题库的文件,也可参加对应的考试、每日/定向答题,得到的得分会存入用户得分表,错题进入对应的错题库。
参考资料:
- 软件工程 -- 数据流图的画法_数据流图怎么画-CSDN博客
- 【软件工程】数据流图 ( 数据流图简介 | 数据流图概念 | 数据流 | 加工 | 数据存储 | 外部实体 | 数据流图分层 | 顶层数据流图 | 中层数据流图 | 底层数据流图 )-CSDN博客
- 一篇文章彻底学会画数据流图-阿里云开发者社区
- 【UML】如何画好数据流图基础教程_数据流图怎么画-CSDN博客