软考-软件设计师:软件工程-结构化开发方法:数据流图(数据流、加工、数据存储、外部实体) 作者:马育民 • 2025-04-20 21:47 • 阅读:10003 # 介绍 数据流图也称 `数据流程图`(Data Flow Diagram,**DFD**),是一种便于用户理解、**分析系统 数据流程** 的图形工具。 在逻辑上描述系统的 功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。 # 基本图形元素 基本图形元素包括: - 数据流(DataFlow) - 加工(Process) - 数据存储(Data Store) 上面3个用于构建软件的 **数据处理模型** - 外部实体(Extermal Agent):系统之外的对象,系统数据的来源和去向 DFD 的基本图形元素如下图 [](https://www.malaoshi.top/upload/0/0/1GWytuc7Dgb.png) # 数据流 数据流由一组固定成分的 **数据组成**,表示 **数据的流向** 必须与 `加工` 相关,数据流的流向有以下几种: - 从一个加工流向另一个加工; - 从加工流向数据存储(写); - 从数据存储流向加工(读); - 从外部实体流向加工(输入); - 从加工流向外部实体(输出) 每个数据流用一个名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外 # 加工 输入数据流经过什么处理后变成了输出数据流 **理解:** 软件某个 **功能** 每个加工都有一个名字和编号。编号能反映出该加工位于分层DFD 中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。 **至少有一个输入数据流和一个输出数据流** ### 常见错误 常见的3种错误如图6-9所示: - 有输入但是没有输出,称之为 `黑洞`,如:加工3.1.2 - 有输出但没有输入,加工3.1.3 - 输入不足以产生输出,加工3.1.1中,我们称之为 `灰洞` [](https://www.malaoshi.top/upload/0/0/1GWyuVIzfTW.png) # 数据存储 把信息保存下来以供以后使用 > 可以是文件、数据库 每个数据存储都有一个定义明确的名字标识。 - 数据流流入数据存储,表示写入 - 数据流从数据存储流出,表示读取 - 数据流用 **双向箭头** 指向数据存储,表示 **修改** ##### 具体实现 - 文件系统 - 数据库 ##### 存储介质 - 磁盘 - 磁带 - 其他存储介质 # 外部实体(外部主体) 软件之外的人员、组织,外部系统 指出系统所需 **数据的发源地**(源)和系统所产生的 **数据的归宿地**(宿)。 在许多系统中,某个源和某个宿可以是同一个人员或组织,此时,在DFD 中可以用同一个符号表示。 如:考生向系统提供报名单,而系统向考生送出准考证,所以在考务处理系统中,考生既是源又是宿。 源和宿采用相同的图形符号表示,当数据流从该符号流出时,表示它是源;当数据流流向该符号时,表示它是宿;当两者皆有时,表示它既是源又是宿。 # 2.数据流图的扩充符号 在DFD中,一个加工可以有 **多个输入数据流** 和 **多个输出数据流**,此时可以加上一些扩充符号来描述多个数据流之间的关系。 ### 星号(`*`) 星号表示数据流之间存在 `与` 关系。 - 输入流:则表示所有输入数据流全部到达后才能进行加工处理; - 输出流:则表示加工结束将同时产生所有的输出数据流。 ### 加号(+) 加号表示数据流之间存在 `或` 关系。 - 输入流:则表示其中任何一个输入数据流到达后就能进行加工处理; - 输入流:则表示加工处理的结果是至少产生其中一个输出数据流。 ### 异或(⊕) 异或表示数据流之间存在 `互斥` 关系。 - 输入流:则表示 **当且仅当其中一个输入流** 到达后才能进行加工处理; - 输出流:则表示加工处理的结果是仅产生这些输出数据流中的一个。 # 定义数据流或数据存储组成时,使用的符号  ### 例子1: ``` 机票 = 姓名 + 日期 + 航班号 + 起点 + 终点 + 费用 航班号 = “Y7100” .. “Y8100" 终点 = [长沙|上海|北京|西安] ``` ### 例子2 [](https://www.malaoshi.top/upload/0/0/1GWzHcGslFb.png) 【问题】(4分) 根据说明中术语,给出图1-1中数据流“客户信息”“房源信息”的组成。 答案: ``` 客户信息 = 身份证号 + 姓名 + 手机号 + 需求情况 + 委托方式等。 房源信息 = 基本情况 + 配套设施 + 交易类型 + 委托方式 + 业主等 ``` # 题 在结构化分析中,用数据流图描述()。当采用数据流图对一个 图书馆管理系统进行分析时,()是一个外部实体。 A、数据对象之间的关系,用于对数据建模 B、数据在系统中如何被传送或变换,以及如何对数据流进行变换 的功能或子功能,用于对功能建模 C、系统对外部事件如何响应,如何动作,用于对行为建模 D、类数据流图中的各个组成部分 A、读者 B、图书 C、借书证 D、借阅 ### 答案 第一问:B 第二问:A,图书、借书证、借阅都是图书馆管理系统的功能 原文出处:http://malaoshi.top/show_1GWyukUbPPy.html