资讯详情

资讯详情

数据流图入门指南:四符号与银行取款实例

简介这份PPT面向系统分析与设计初学者、信息管理相关专业学生及需要与技术人员沟通业务逻辑的非技术用户围绕数据流图DFD的绘制方法展开帮助读者理解如何用图形化方式描述信息在系统中的流动与处理过程。内容涵盖数据流、加工、数据存储、外部项四类基本元素的含义与编号规则并给出从识别外部项、确定输入输出数据流到自顶向下逐层分解、检查完善的完整绘制步骤配合银行取款处理等实例演示关联图与分层图的画法。资源包共1个PPT文件约312KB篇幅精炼适合课堂讲解或自学查阅。目前已有626人学习下载读者可借此掌握DFD的规范符号与分解原则为系统分析报告和课程设计打下基础。1. 画数据流图入门一张图看懂系统里数据怎么跑你有没有遇到过这种场面开会时有人问“这个功能的数据从哪来、到哪去”大家七嘴八舌越说越乱最后谁也没说明白。数据流图DFDData Flow Diagram就是专门治这个毛病的工具——它用四个简单符号把系统里数据从哪来、经过什么处理、存到哪里、最后给谁画成一张谁都能看懂的图。它不聊服务器型号、不聊数据库表结构只聊“信息怎么流动”。所以哪怕你完全不懂编程也能上手画。这篇入门指南就是带零基础的你从认识四个符号开始一步步画出第一张能拿给别人看的数据流图。2. 先搞懂四个符号数据流图到底由什么组成数据流图之所以让人觉得“好像不难”是因为它翻来覆去只用四种符号。你把这四个角色认全了后面画图就是搭积木。我第一次学的时候导师只说了一句话“你就当在画一条河水是数据河上的闸门是加工水库是存储从外面往河里倒水的人就是外部项。”这句话我记到现在。2.1 外部项系统的“门口”数据从这进也从这出外部项也叫源点或终点代表系统之外、但跟系统有信息往来的实体。它可以是一个人比如储户、另一个系统比如出版社的订单系统甚至一台设备。在图上通常画成一个小矩形编号习惯用 S 开头比如 S1 储户、S2 会计。新手最容易犯的迷糊是把系统内部的人也算成外部项。判断标准很简单——这个人或这个东西是不是你这次要画的系统“管不着”的管不着、但又要跟系统交换数据的才是外部项。比如画银行取款系统储户在系统外面填单子、拿现金所以他是外部项而银行柜员如果只是系统的一个操作角色就不该单独画成外部项除非他代表另一个独立系统。外部项不需要在图上展开细节。你不需要画储户长什么样、怎么填单只要标清楚“他给系统什么数据、从系统拿走什么数据”就够了。这一点特别重要因为很多新手一上来就想把外部项画得很细结果图越画越大重点反而丢了。2.2 加工数据在这里被“处理”了一下加工有的教材叫处理或变换表示对数据流做操作。符号是一个圆角矩形或者圆圈里面分上下两部分上面写编号P 开头比如 P1、P2下面写加工名比如“账务处理”“打印账簿”。加工名要简单、能概括别写成一句话。比如“审核并查对账目将不合格的存折退回”这种描述加工名写“取款审核”就够了详细规则放到数据词典里说。编号必须唯一因为后面分层画图时你要靠编号追踪“这个加工在下一层被拆成了哪几个小加工”。加工还有一个关键特性它可以逐层分解。顶层图里一个“取款处理”到第二层可能拆成“取款审核”和“取款处理”两个加工。这不是重复画而是把一个大动作拆细让看图的人能一层层往下追。入门阶段你只要记住先画粗的再拆细的别一上来就画最细的。2.3 数据存储数据中途“歇脚”的地方数据存储就是系统里存数据的地方画成开口的长方条左边一个小方格写编号D 开头比如 D1 账目库右边写存储名。它可以是数据库、文件、台账甚至一张手工登记表——数据流图不关心你用什么技术存只关心“这里有一批数据待着有数据流进也有数据流出”。有一条硬规矩数据存储上一定要有数据流。也就是说不能画一个孤零零的存储框既没人往里写、也没人从里读。新手常犯的错是画了一堆存储框当“装饰”结果每个框都悬空。你画的时候可以自查这个存储谁往里写谁从里读两个问题答不上来就删掉或者补数据流。另外同一个数据存储可以在图上出现多次用带斜线的小方框表示“重复”。这是为了避免连线交叉不是表示有多个存储。入门阶段图不大先尽量画一次实在绕不开再用重复符号。2.4 数据流箭头一画关系就清楚了数据流是带箭头的线箭头旁边写数据流名比如“付款单”“明细账”“合格存折、取款单”。它表示一个或一组确定的数据在流动。名字要直观别写“数据1”“信息A”这种糊弄人的名字。这里有个容易被忽略的点两个符号之间可以有多个数据流而且数据流图不表示它们之间的先后次序或主次关系。也就是说图上画了两条箭头不代表谁先谁后只代表“这两股数据都存在”。所以别在图上标“第一步”“第二步”那是流程图干的事不是数据流图。还有一条原则数据流必须经过加工。也就是说不能从外部项直接连到数据存储也不能从数据存储直接连到外部项中间必须有一个加工在“动手”。这条规矩后面讲避坑时还会细说因为它是新手翻车最多的地方。3. 为什么值得学数据流图是跟“不懂技术的人”说清楚事的工具很多人第一次听到数据流图反应是“这不就是画箭头吗有什么好学的”。我当初也这么想直到有一次要给一个完全不懂技术的同事解释一个订单系统我讲了十分钟表结构对方眼神越来越空。后来我拿纸画了四个框、几条箭头标上“顾客”“订单检查”“合格订单”“出版社”对方两分钟就点头了。那一刻我才明白数据流图的价值不在图本身在于它强迫你把“系统在做什么”和“系统怎么做”分开。3.1 它只谈逻辑不谈技术所以谁都能看懂数据流图有一个很硬气的设定不涉及硬件、软件、数据结构与文件组织。它跟系统的物理描述无关只表示系统的逻辑功能——这个系统在信息处理方面要做什么。这句话听起来像教材翻译成大白话就是你画图的时候不用管服务器几台、数据库用哪个、接口怎么调只管“数据从哪来、经过什么处理、存到哪、给谁”。这个设定带来的好处是业务人员能直接参与。你画一张图拿去给用这个系统的人看他能指着某个加工说“不对我们这里还要核对一下额度”你当场就能改。如果你拿一张数据库表结构图给他看他只能沉默。数据流图是系统分析人员和用户之间交流的有效手段这句话不是客套是实战经验。3.2 它是后面设计的“底稿”画清楚了后面少返工数据流图画的是逻辑模型而系统设计要建的是物理模型。逻辑模型没画清楚物理模型就是空中楼阁。你想想如果连“取款要经过审核和账务处理两步”都没说明白后面讨论“审核用哪个服务、账务写哪张表”就是瞎聊。入门阶段你不需要想那么远但要知道数据流图不是画着玩的它是后面所有设计工作的依据之一。画的时候多花十分钟把数据流名字写清楚、把加工边界划明白后面能省掉好几轮“这个数据到底从哪来的”的扯皮。血泪经验是图上的每一个箭头最后都会变成某个人要写的代码或要配的接口你糊弄它它就糊弄你。3.3 入门门槛低但能练出“结构化思维”数据流图对零基础的人特别友好因为它的符号少、规则少你不需要先学编程、先学数据库。但它又不是纯画画它逼你做三件事第一分清系统边界哪些是外部项、哪些是内部加工第二分清数据和处理数据是“流”加工是“动”第三学会自顶向下先画粗再画细。这三件事练熟了你再看任何系统脑子里会自动分层这是输入、这是处理、这是存储、这是输出。这种结构化思维不管你以后做产品、做测试、做实施都用得上。所以我的建议是别把它当成一门“画图课”当成一次思维训练。4. 第一个例子怎么跑从零画一张银行取款数据流图光看符号不动手等于没学。这一章我们拿一个最小例子走一遍完整流程储户填取款单和存折交给银行银行审核查账不合格的退回合格的做取款处理、修改账目最后把存折、利息单、结算清单和现金交给储户取款单存档。你跟着下面五步走就能画出第一张图。4.1 第一步定外部项先把“门口”找出来先问自己这个系统跟谁交换数据储户把取款单和存折交给系统系统把存折、利息单、结算清单和现金还给储户。所以储户是外部项编号 S画在图的左边或右边都行。这一步的要点是只画跟系统有直接数据往来的人或系统。银行内部的操作员如果只是使用系统不单独作为外部项。你可以在纸上先写一行字“外部项储户”。别急着画框先把名单列清楚。4.2 第二步画关联图把整个系统当成一个加工关联图是最顶层的一张图整个系统只画成一个加工外面围着外部项中间用数据流连起来。这一步的目的是定边界系统到底接收什么、输出什么。S1 储户 --F1 取款单、存折-- P 取款系统 --F2 存折、利息单、结算清单-- S1 储户上面这行示意里F1 是输入数据流F2 是输出数据流P 是加工取款系统。注意现金是实物不能作为数据流画进去这一点教材里专门提醒过。你画的时候数据流名字要写具体“取款单、存折”比“单据”清楚得多。关联图画完先别往下拆拿给旁边的人看一眼问他“你觉得这个系统收什么、给什么”如果他能照着图说出来说明边界定住了。4.3 第三步拆第一层把大加工分成两个小加工现在把 P 取款系统拆开。根据业务描述取款要经过“审核查账”和“取款处理”两个动作所以第一层画两个加工P1 取款审核、P2 取款处理。S1 储户 --F1 取款单、存折-- P1 取款审核 P1 取款审核 --F1.1 合格存折、取款单-- P2 取款处理 P1 取款审核 --F1.2 不合格存折、取款单-- S1 储户 P2 取款处理 --F2 存折、利息单、结算清单-- S1 储户 P2 取款处理 --F3 取款记录-- D2 取款记录 P2 取款处理 --F4 账目数据-- D1 账目库这段示意里出现了两个数据存储D1 账目库和 D2 取款记录。P2 要从 D1 读账目、改账目还要把取款记录写进 D2。注意每条数据流都经过加工没有从外部项直连存储的线。你画的时候可能会纠结审核不合格的退回算不算一条数据流算F1.2 就是。数据流不一定都是“好东西”退回的单据也是数据在流动。4.4 第四步检查每条数据流别让箭头悬空图画完逐条念一遍“储户给审核什么审核给处理什么处理给储户什么处理跟账目库之间读什么写什么”念不通的地方就是问题。常见检查点有三个第一每个加工是不是至少有一个输入和一个输出只有输入没有输出说明这个加工没产生结果只有输出没有输入说明数据凭空来的。第二每个数据存储是不是既有流入又有流出只写不读或者只读不写都要回头补。第三有没有数据流从外部项直接连到数据存储有的话中间补一个加工。这一步花的时间往往比画图还多但值得。我自己的习惯是拿一支红笔把每条数据流从头到尾用手指划一遍划到一半卡住的地方就是漏掉的东西。4.5 第五步跟“用户”对一遍用大白话讲图图是给人看的所以最后一步是讲图。你假装对面坐着一个不懂技术的储户指着图说“您把取款单和存折给我们我们先审核不合格的退给您合格的拿去做取款处理处理的时候会查账目、记一笔取款记录最后把存折、利息单、结算清单和现金给您。”讲的过程中对方如果问“那我密码输错怎么办”你就知道图上少了一个判断分支或者少了一条异常数据流。数据流图不画判断逻辑但异常数据流该有还得有。讲完一遍把对方问的问题记下来回头补图。这一步不是形式主义它是数据流图“面向用户”这个特性的落地。5. 避坑指南新手画数据流图最容易翻车的五个地方这一章是我带新人时反复讲的内容每一条都对应一个真实翻车现场。你画的时候对照着看能少走很多弯路。5.1 现象图上出现“外部项直连数据存储”的箭头原因新手觉得“数据从储户直接存进账目库”很自然就画了一条线。但数据流图的原则是数据流必须经过加工存储不能自己跟外部对话。解决在中间补一个加工哪怕这个加工只是“登记”。比如储户的数据要先经过“取款审核”或“取款处理”才能进账目库。补完之后检查这条数据流有没有名字名字能不能说清楚存的是什么5.2 现象加工只有输入没有输出或者反过来原因画图时想着“这个加工就是收数据的”忘了它总得产出点什么。或者把“打印”画成只有输出忘了它要从存储里读数据。解决每个加工至少一进一出。如果某个加工确实只进不出那它可能不是加工而是一个数据存储如果只出不进那数据来源没交代清楚。回头补数据流别留悬空加工。5.3 现象数据流名字写成“数据”“信息”“结果”这种糊弄词原因画图时图快懒得想名字。但数据流图是给用户看的名字含糊等于没画。解决名字要能直观反映含义。把“数据”改成“取款单、存折”把“结果”改成“合格存折、取款单”。一个简单的自测方法把名字念给旁边的人听他能不能猜出这股数据大概是什么。猜不出就重写。5.4 现象一上来就画最细的图画到一半发现漏了外部项原因没有自顶向下直接扎进细节。细节一多边界就模糊了。解决强制自己先画关联图再画第一层再决定要不要拆第二层。每层画完停一下问“这一层的外部项和数据存储齐了吗”。入门阶段画到两层就够了别追求一次画到底。5.5 现象同一股数据流在两个加工之间来回画了好几条线原因没分清“一股数据”和“多股数据”。两个符号之间可以有多个数据流但每条都应该是不同的数据内容不是同一股数据拆成几条画。解决合并同名同内容的数据流。如果确实是两股不同数据比如“合格单”和“不合格单”那就分别命名、分别画。画完数一数两个框之间的箭头超过三条就停下来想想是不是可以合并或者分层。6. 下一步学什么从会画一张图到画清楚一套图画完银行取款那张图你算是迈过了门槛。但数据流图真正用起来往往不是一张图而是一套图关联图、顶层图、一层图、二层图层层往下拆。下一步我建议你按这个顺序练别跳步。阶段练什么具体做法第一周把四个符号画熟每天拿一个生活场景点外卖、借书、挂号画关联图只画外部项和一个加工第二周练一层分解把关联图里的加工拆成两到三个子加工补上数据存储第三周练检查和讲图画完找一个人用大白话讲一遍记录他问的问题并补图第四周练一个完整小系统选“图书预订”这类有明确输入输出的场景画到两层图练的时候有两条建议。第一先别碰画图软件用纸和笔。纸笔改起来快软件容易让你把时间花在调框的大小和对齐上。第二每张图都写一行“图名 层号”比如“银行取款系统一层图”不然过两天你自己都分不清哪张是哪张。如果你想再往深走一步可以去了解数据词典。数据流图上的每个数据流名、加工名、存储名在数据词典里都有一条定义说明它由哪些数据项组成。数据流图配数据词典才算把逻辑模型说完整。入门阶段不用急着学但知道有这个东西画图时命名会更谨慎。最后说一个我自己的习惯。从那以后我每次画完数据流图都强制走一遍“三问”这股数据从哪来经过谁最后到哪去三个问题答不上来的箭头一律删掉或者补全。这个习惯帮我省掉了无数次返工。希望帮到你从今天这张银行取款图开始动手画你的第一张。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →