数据库设计教程系列——数据流图

2014-09-22 10:28:07

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、数据流图定义

   英文:Data Flow Diagram,简称DFD。


   定义:DFD采用一系列分层次的数据流图来描述系统,使用数据流图DFD可建立系统需求的过程模型。


   作用:数据流图用来记录系统中的数据和数据在特定的过程中的流动,即数据如何被采集、处理、保存和使用的。


   分层:DFD的每一个层次都代表了系统的一个抽象水平,高层次DFD的处理可以进一步分解成低层次、更详细的DFD。

         高层次往低层次逐层分解的处理如下图示意(网上搜得):

   o_clip_image006_2.gif



二、数据流图成分

    这是数据流图的标准成分介绍图(网上搜得),有五种,如下图所示,其中常用的是前面四种,

实时连接可以用 数据流+描述文字 代替。


    DFD成分.jpg

 

   对于微软的Visio(2013版本)则只提供前面四种:

   Visio_DFD成分.gif

   即表示对实时连接并不需要通过特别的图形来表达,有此业务加上文字补充描述即可,命名有所不同。

   流程 = 处理

   接口 = 外部实体


   唯心使用的Visual Paradigm UML 10.0(简称VP),图样有所区别。

   vpdfd成分.gif

   Process 在中文版中翻译为流程。

   除了“流程”的图例差别比较大外,其它都差不多,至于双向数据流图则作用不大。因为即使有,画两条线即可,

还方便分别写说明。


   各个成分的含义分别是:

  • 外部实体(External Entity)

    指系统以外又与系统有联系的人或事物。它表达了该系统数据的外部来源和去处。

    • 外部实体是数据的来源、触发者。

    • 外部实体是数据的去处,供谁使用。

    正因为如此,所以Visio使用“接口”的命名取代“外部实体”,因为它认为系统之间的交互应该都是基于接口完成。

  • 数据处理(即Process)

    DFD-数据处理.gif

    左上角是DF的编号,可以自行制定规则,我习惯使用该模块的DFD命名前缀,这样加上层次编号就是全编号了。

    右上角是该Process的层次化功能编号。

    中间部分功能描述部分。

    下面本来是放置功能执行的角色,但目前VP不支持,而且这部分通常是省略的。

    对比Visio只有一个方框,VP的展示显然更加丰富。

  • 数据流(Data Flow)

    使用单向箭头表示,处理功能的输入和输出,箭头表示数据流向。

  • 数据存储(Data Store)

    表示数据保存后的逻辑称谓。分为流入和流出:


    • 流入数据存储的数据流。表示持久化存储,会更改数据。

    • 从数据存储流出的数据流。表示从数据存储中查询数据,不改变数据。

三、准备事件列表

  • 根据系统的业务按下面撰写事件条目和相关细节。每一个事件都可以画出一个数据流图(需要额外添加数据存储元素)

  • 事件列表可以作为画数据流图的基础和校验列表。

  • 对复杂的事件可以继续向下细化。

  • 对于关系紧密的多个事件,应该进行分组(向上抽象),方便管理。
    比如购物车相关的操作。


系统事件表
事件触发器(数据流)来源(外部实体)活动 / 流程响应(数据流)目的地(外部实体)
1 客户想查看购物车提交查看购物车请求客户查看购物车返回购物车信息客户
2 客户提交订单下达订单(PlaceOrder)客户生成新订单跳转到在线支付在线支付接口




订单确认订单管理部门




订单执行发货部门






四、一个事件的DFD说明

购物车DFD示例(Craft6.cn 颜超敏).jpg

  • 外部实体:触发事件,可以是用户、角色、系统等。

  • 数据流:连接实体和数据处理(流程),表示触发流程的方式,如点击购物车链接、按钮、图标等。

  • 数据处理:活动或流程的名称,项目或模块前缀,加上层次化的编码。这里是查看购物车活动。

  • 数据存储:从多个数据存储中查询数据输出到数据处理,这里是查看购物车所需要显示的数据和来源。

五、多层DFD示例

针对前面第三章的事件列表设计的DFD示例。

电商购物DFD分层数据流图(Craft6.cn 颜超敏).jpg

    为了方便写博文,所以我设计到一张图里面,其实VP-UML是支持分解的。右键点击流程,在弹出的菜单中就有“分解”功能,

进去后就是展开一张新的DFD图,可以基于该流程设计向下低层次的DFD。

我设计DFD有几个习惯:

  1. 命名:网上多是使用一个统一的命名,如P1.2.1等。但我喜欢先划分模块。如SC表示购物车(Shopping Cart),
    CSC 表示对于顾客的销售订单处理,PSC表示对于平台的销售订单处理等。
    然后基于每一个模块独立的进行层次编号。这样方便管理。

  2. 对于高层次的DFD,数据存储可以合并到一起。这样可以简化该DFD图。但是对于越往下的DFD,我越不建议合并,
    因为那样会混淆了具体的数据存储对象。

参考资料

  1. 相关名称的百度百科

  2. 数据库设计数据流图补充.ppt》

  3. 数据流程图.ppt



可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


为您推荐这些文章,如果感兴趣,请继续阅读吧:

数据库设计教程系列——数据流图

数据流图,DFD,数据流图成分,Data Flow Diagram,外部实体,数据流,数据存储,流程(活动),数据库教程

    本文阐述了数据流图的概念、成分、事件列表、根据事件

设计数据流图以及展示了一个数据流图的多层示例。   

    英文:Data Flow Diagram,简称DFD。   定义:DFD采用

一系列分层次的数据流图来描述系统,使用数据流图DFD可建立

系统需求的过程模型。   作用:数据流图用来记录系统中的

数据和数据在特定的过程中的流动,即数据如何被采集、处理、

保存和使用的。   

    分层:DFD的每一个层次都代表了系统的一个抽象水平,

高层次DFD的处理可以进一步分解成低层次、更详细的DFD。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件