【软件工程】数据流图 ( 数据流图简介 | 数据流图概念 | 数据流 | 加工 | 数据存储 | 外部实体 | 数据流图分层 | 顶层数据流图 | 中层数据流图 | 底层数据流图 )

简介: 【软件工程】数据流图 ( 数据流图简介 | 数据流图概念 | 数据流 | 加工 | 数据存储 | 外部实体 | 数据流图分层 | 顶层数据流图 | 中层数据流图 | 底层数据流图 )

文章目录

一、数据流图 ( DFD ) 简介

二、数据流图 ( DFD ) 概念符号

1、数据流

2、加工 ( 核心 )

3、数据存储

4、外部实体

三、数据流图 ( DFD ) 分层

1、分层说明

2、顶层数据流图

3、中层数据流图

4、底层数据流图





一、数据流图 ( DFD ) 简介


数据流图 ( Data Flow Diagram ) :


在 需求分析 阶段 , 使用的工具 , 在 “结构化分析” 中 , 数据流图 ( DFD ) 使用频率很高 ;


数据流图涉及内容 : 基本概念符号 , 数据字典 , 数据平衡原则 ;






二、数据流图 ( DFD ) 概念符号




1、数据流


数据流 : 数据流由 一组固定成分的数据 组成 , 表示 数据的流向 ;


数据流命名 : 每个数据流都有一个 命名 , 该命名表达了 该数据流传输 的 数据的含义 ; 如在箭头上标注 “账号信息” , 表示该数据流是传输账号信息 的 , 表示 数据的内容 ;


数据字典 : 数据流箭头上只标明了 “账号信息” , 没有具体的格式内容 , 是只有账号 , 还是有账号/密码/验证码等信息 , 这些数据详细格式 , 都在 数据字典中定义 ;


符号表示 : 数据流 使用 箭头 表示 , 箭头所指的方向 , 代表了数据流向 ;


image.png



2、加工 ( 核心 )


加工 : 描述 “输入数据流” 到 “输出数据流” 之间的变换 , 即 对数据进行了什么样的处理 , 使得 “输入数据流” 变为 “输出数据流” ;


主要操作 : 在程序中的体现是 处理 数据的过程 , 向 “加工” 中输入数据流后 , 将数据进行加工 , 处理 , 变换后 , 产生新的 “输出数据流” ;


符号表示 : 使用 圆形 / 圆角矩形 表示加工 ;


image.png



3、数据存储


数据存储 ( 文件 ) : 表示 暂时存储的数据 , 数据存储的粒度是以 表 为单位 ;


文件名称 : 每个 数据存储 ( 文件 ) 都有 名字 ;


方向 : 流向文件的数据流 表示 向文件内写入内容 , 从文件流出的数据流 表示 从文件读取内容 ;


符号表示 : 使用 双横线 / 半框形矩形 表示


image.png



4、外部实体


外部实体 : 软件系统之外的 人员 / 组织 ;


符号表示 : 矩形 ;


image.png






三、数据流图 ( DFD ) 分层



image.png




1、分层说明


数据流图分层 , 最上层是 顶层数据流图 , 第二层是 0 00 层数据流图 , ⋯ \cdots⋯ , 最底层是 底层数据流图 ,


“顶层数据流图” 与 “底层数据流图” 之间是若干 中层数据流图 ,


中层数据流图 需要进行编号 , 从 0 00 开始编号 ;




2、顶层数据流图


顶层数据流图 : 中间的椭圆 是需要开发的 系统 , 周边的矩形 表示的是 外部实体人或组织 , 外部实体 与 系统 之间 , 有数据传输关系 ;


一个形象的说明是 多个人吃火锅 , 外层周边是人 , 中心位置火锅是系统 ;



顶层数据流图 能够表达的信息是非常有限的 , 其 将整个系统 , 使用一个节点表示 ,


其可以体现出 系统与外界实体之间的交互 ,


但是 系统内部的情况 , 系统内部模块之间的数据交换 是没有体现的 ;




3、中层数据流图


将 “顶层数据流图” 进行细化 , 细化后的 0 00 层数据流图 ,


与 顶层数据流图 比较没有变化的部分 : 外部实体 , 外部实体与系统之间的数据流 , 是没有变化的 ;


变化部分 : 有变化的部分是系统内部 , 系统内部进行了细化 , 原来系统是一个节点 , 在 中层数据流图 中 , 会将一个节点 拆分成 多个节点 , 这些节点就是系统中的数据处理部件 , 即 加工 ;


这些数据处理部件 ( 加工 ) 之间会有数据流的交互 ,




4、底层数据流图


针对每个加工 节点 , 将其拆分 , 绘制其中的更详细的数据流转情况 ;


数据流图 ( DFD ) 分层 , 是从 顶层 -> 中层 -> 底层 , 逐层进行分解 , 这种分解思路 , 与结构化的开发方法 , 是完全匹配的 ;


因此 , 数据流图 是 结构化 开发方法中 , 最常用的工具 ;


绘制数据流图时 , 要保证 上一层数据流图 与 下一层数据流图 保持平衡 , 这就是 数据流图平衡原则 ;


目录
相关文章
|
存储 测试技术 开发工具
软考中的UML图、数据流图等二十余种示例
软考中的UML图、数据流图等二十余种示例
3131 0
|
消息中间件 数据库 RocketMQ
分布式事务常见解决方案
分布式事务常见解决方案
2967 0
|
编译器
区分LR(0),SLR(1),LR(1)和LALR(1)
区分LR(0),SLR(1),LR(1)和LALR(1)
2449 1
|
存储 程序员 数据处理
【软件设计师】程序猿需掌握的技能——数据流图
【软件设计师】程序猿需掌握的技能——数据流图
|
存储 前端开发 中间件
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
|
存储 自然语言处理 算法
【北京大学 软件工程】四、结构化分析方法
结构化分析方法是一种系统化的软件开发方法学,旨在通过使用问题域术语建立系统的功能模型,以明确“系统必须做什么”。该方法包括结构化分析、设计和程序设计三个主要部分。其核心工具是数据流图(DFD),用于表达系统功能模型,并结合数据字典定义数据流和数据存储。此外,还使用加工小说明(如判定表或判定树)描述加工逻辑。 结构化分析过程遵循自顶向下、逐步求精的原则,首先建立系统环境图确定边界,然后通过分解加工、分派数据流和引入文件来细化模型。整个过程中需确保模型平衡和信息组织的复杂性控制。最终输出为需求规格说明书(SRS),确保需求的正确性、无二义性、完整性和可验证性等特性。
1518 1
|
存储 缓存 数据库
缓存技术有哪些应用场景呢
【10月更文挑战第19天】缓存技术有哪些应用场景呢
|
存储 自然语言处理 安全
『软件工程9』结构化系统分析——解决软件“做什么”问题
该文章深入讲解了结构化系统分析方法,用于明确软件需求和解决软件“做什么”的问题,并介绍了在此过程中使用的工具和技术。
『软件工程9』结构化系统分析——解决软件“做什么”问题
|
存储 监控 数据库
InfluxDB数据备份与恢复策略
【4月更文挑战第30天】本文介绍了InfluxDB的时间序列数据备份与恢复策略。备份策略包括定期快照备份、增量备份(借助外部工具如rsync)及备份验证。恢复策略涉及从快照和备份验证环境恢复数据,强调了恢复过程中的注意事项,如关闭写入操作和数据一致性。实施这些策略能有效保障InfluxDB数据的安全性和可用性。
1207 0
|
存储 传感器 数据管理
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
405 0