软件工程-数据流图

数据流图(Data Flow Diagram,DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流图:

1、可以表示任何一个(人工的、自动的、或混合的)系统中的数据流程;

2、每个表示加工的圆圈可能需要进一步分解以求得关于问题的全面理解;

3、 着重强调的是数据流程而不是控制流程。

DFD有四种类型的符号:

  • 数据流(Data Flow):数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。(起点或终点必须有一个是加工)
  • 加工(Process):数据处理过程是对数据进行处理的单元,它可以是一个物理设备或软件模块。(至少有一个输入和输出)
  • 数据存储(Data Store):数据存储是系统中存储数据的单元,它可以是一个文件、数据库或内存中的变量。
  • 外部实体(Element Agent):外部实体是与系统进行信息交流的外部机构或个人,它可以是一个用户、另一个系统或传感器等。

数据流图的设计原则

  • 数据守恒原则,对于任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
  • 守恒加工原则,对同一个加工来说,输入与输出的名字必须不相同,即使他们的组成成分相同。
  • 对于每个加工,必须既有输入数据流,又有输出数据流
  • 外部实体与外部实体之间不存在数据流
  • 外部实体与数据存储之间不存在数据流
  • 数据存储与数据存储之间不存在数据流
  • 父图与子图的平衡原则,子图的输入数据流父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡,父图与子图之间的平衡原则不存在于单张图。
  • 数据流与加工有关,且必须经过加工

对基本加工的说明有三种描述方式:

结构化语言、判断表(决策表)、判断树(决策树)。

基本加工逻辑描述的基本原则为:

1.对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。

2.基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

3.加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。(考点)

4.加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。

创建数据流图的一般步骤如下:

①确定外部实体:确定与系统进行信息交流的外部机构或个人,例如用户、另一个系统或传感器等。

②确定数据流:根据外部实体和系统的需求,确定需要交互的数据流。

③确定数据处理过程:根据系统的功能需求和数据流,确定数据处理过程,例如计算、查询、存储等。

④确定数据存储:根据数据处理过程的需求,确定需要存储的数据项和存储方式,例如文件、数据库或内存变量等。

⑤绘制图形:使用数据流图的图形符号,绘制出外部实体、数据流、数据处理过程和数据存储的图形表示。

⑥完善细节:在绘制完初步的数据流图后,根据系统的实际情况和完善需求,完善图中的细节,例如添加注释、标明数据类型和格式等。

异常现象
黑洞:一个加工只有输入数据流而无输出数据流。
奇迹:一个加工只有输出数据流而无输入数据流。
灰洞:若一个加工的输入数据流无法通过加工产生输出流

加工 3.1.2 有输入但是没有输出,我们称之为“黑洞”。因为数据输入到过程,然后就消失了。在大多数情况下,建模人员只是忘了输出。

加工 3.1.3 有输出但没有输入。在这种情况下,输入流似乎被忘记了。

加工 3.1.1 中输入不足以产生输出,我们称之为“灰洞”。这有几种可能的原因:一个错误的命名过程;错误命名的输入或输出;不完全的事实。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。

加工规格说明书:

1、说明了DFD中的数据加工的加工细节、数据加工的输入、实现加工的算法以及产生的输出;

2、指明了加工(功能)的约束和限制、与加工相关的性能要求以及影响加工的实现方式的设计约束;

3、用于撰写加工规格说明书的工具有结构化语言、判定表和判定树。

结构化语言的示例如下:

假设一家工厂的采购部门每天需要一张定货报表。报表按零件编号排序,表中列出所有需要再次定货的零件。

对于每个需要再次定货的零件应该列出下述数据:

零件编号、零件名称、定货数量、目前价格、主要供应商、次要供应商。

零件入库或出席称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存临界值时就应该再次定货。

第一步,画出最概括的系统模型。因为任何系统实质上都是由若干个数据源点/终点以及一个处理组成。这个处理就代表了系统对数据加工变换的基本功能,画出顶层数据流图。

第二步,画出0层数据流图

第二步,画出1层数据流图

批量更新更新数据

联机方式更新数据

### 关于数据流图绘制的学习资料与教程 #### 数据流图的概念 数据流图(DFD, Data Flow Diagram)是一种图形化工具,用来描述系统的逻辑流程以及各组成部分之间的关系。通过这种图表可以清晰地展示信息流动的过程。 #### 绘制数据流图的方法 为了更好地理解并掌握数据流图的绘制方法,在复习期间可以从以下几个方面入手: - **了解基本符号** 需要熟悉数据流图中的四种主要元素:外部实体、处理过程、数据存储和数据流向。每种元素都有特定的表示方式[^2]。 - **遵循层次结构原则** 初始时创建顶层的数据流图来概括整个系统的主要输入输出;之后逐步分解成更详细的子层,直到能够充分表达各个组件的具体操作为止。例如先构建顶层数据流图,接着细化到0层乃至更低级别的细节。 - **保持一致性** 在不同层级之间维持一致性和连贯性是非常重要的。这意味着下一层级应当是对上一等级别内容更加详尽具体的解释说明。 - **注重实际应用场景** 结合具体案例练习有助于加深理解和记忆。尝试选取一些典型的业务场景作为实例来进行模拟绘制训练。 ```mermaid graph TD; A[外部实体] --> B(处理); B --> C{数据存储}; D[另一个外部实体] <--|查询请求| E((处理)); F[更多外部实体] -.-> G[(其他处理)]; ``` 此Mermaid语法定义了一个简单的数据流图示例,展示了几个基础概念间的联系。 #### 推荐学习资源 对于希望进一步深入了解的同学来说,建议查阅以下几类材料: - 官方教材中有关章节; - 网络课程平台上的专题讲座视频; - 技术博客或论坛里分享的经验贴文等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值