初次认识数据流图

标签: 认识 数据流图 | 发表时间:2014-05-30 01:03 | 作者:lovemenghaibin
出处:http://blog.csdn.net

    数据流图

    说到数据流图,这算是在一个系统前期对一个系统的数据的很好的描述,正所谓一张图抵得上千言万语,所以在软件需求说明书中的至关重要的一个环节,所以在这里我为大家简单的的介绍一下软件需求说明书中的数据流图。

概念

    数据流图(Data Flow Diagram)

是一种图形化的系统模型,它在一张图中展示信息系统的数据流向——即系统的输入与输出数据分别是什么,数据从哪里来并最终流向何处,以及数据存储在什么地方。

画图的目的

    需求分析阶段,为了获得一个对新系统的框架认识、概念性认识,需要对新系统建模。而用图形表示需求,就是需求建模,获得分析模型。需求分析方法中的结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析,并且也是与客户交流很重要的交流。

基本组成

    数据流(-->):是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。

    加工(〇):加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。

 

数据存储 (=):数据存储表示暂时存储的数据。每个数据存储都有一个名字。

外部实体(□):外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地,也就是源点和终点。

如何画图

第一步:确定系统的输入输出

    应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。这张图成为顶层图

第二步:由外向里画系统的顶层数据流图

    首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。

   可以用下述方法来确定加工:

       1.在数据流的组成或值发生变化的地方应该画出一个加工,这个加工的功能就是实现这一变化,也可以根据系统的功能决定加工。例如我们登录时的验证信息,就是一个简单的加工过程

       2.确定数据流的方法

   用户把若干数据当作一个单位来处理(这些数据一起到达、一起处理)时,可以把这些数据看成一个数据流。

       3.关于数据存储

    对于一些以后某个时间要使用的数据,可以组织成为一个数据存储来表示。

第三步:自顶向下逐层分解,绘出分层数据流图

     对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。

       

应该注意的问题:

1. 应适当的为数据流、加工、数据存储以及外部实体命名,名字应该反映该成分的实际含义,避免使用空洞的名字。

2.  画数据流图,不是画控制流。

3. 一个加工的输出数据流,不应与输入数据流同名,及时他们的组成完全相同。

4. 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。

5.保持父图与子图的平衡。也就是说,父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字上相同。值得注意的是,如果父图中的一个输入(输出)数据流对应于子图中的几个输入(输出)数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流,那么他们仍然算是平衡的。

6. 在自顶向下的分解过程中,若一个数据存储首次出现时,只与一个加工有关系,那么这个数据存储应作为这个加工的内部文件而不必画出。

7. 保持数据守恒,也就是,一个加工的所有输出数据流中的数据必须能从该加工的输出流中直接获得,或者通过该加工能产生的数据。

8. 每个加工必须既有输入数据流,又有输出数据流。

9. 在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但是在某张子图中,可能只有读没有写,或者只有写没有读。

下面便是我对机房收费系统的一张数据流图,仅仅是对大家做个参考。

作者:lovemenghaibin 发表于2014-5-29 17:03:15 原文链接
阅读:99 评论:1 查看评论

相关 [认识 数据流图] 推荐:

初次认识数据流图

- - CSDN博客架构设计推荐文章
    说到数据流图,这算是在一个系统前期对一个系统的数据的很好的描述,正所谓一张图抵得上千言万语,所以在软件需求说明书中的至关重要的一个环节,所以在这里我为大家简单的的介绍一下软件需求说明书中的数据流图.     数据流图(Data Flow Diagram). 是一种图形化的系统模型,它在一张图中展示信息系统的数据流向——即系统的输入与输出数据分别是什么,数据从哪里来并最终流向何处,以及数据存储在什么地方.

认识Google Now

- - 搜索引擎周边
谷歌在早前的Google I/O开发者大会上推出了Google Now,这也是本次大会的亮点之一,其贴心和个性化的的服务吊足许多人的胃口. 比如,Google Now会告诉你今天的天气和交通情况,上班等车时它会告诉你下一班车大约何时到到,并根据你的喜好推送你喜欢的体育赛事或球队比分等等. 下面是 分文博客上的一篇对Google Now的介绍文章,可以让你对Google Now有个大致的了解:.

初步认识 LESS

- - 博客 - 伯乐在线
来源: 申毅&邵华@IBM DevelopWorks. LESS 提供了多种方式能平滑的将写好的代码转化成标准 CSS 代码,在很多流行的框架和工具盒中已经能经常看到 LESS 的身影了(例如 Twitter 提供的 bootstrap 库就使用了 LESS). 它和 SASS 等样式表语言又有何区别呢.

重新认识JavaScript

- - C++博客-首页原创精华区
   JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识.    公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo. pomelo是基于Node.js的高性能,分布式游戏服务器框架. 它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.

mysql索引认识

- - 数据库 - ITeye博客
数据在磁盘中是以 “块”的形式存储的,所以一张表涉及的数据可能会存在多个块中,而在磁盘中查询数据则会根据字段是否为有序与无序来区分,. 无序情况:1.数值具有唯一性则需要查找 总块数/2.                   2.无序+无唯一性则需要查找  总块数. 有序情况:1.数值唯一性:log2(总块数/2)   (log2是二分查找算法).

Docker认识基础

- - CSDN博客推荐文章
作者:chszs,版权所有,未经同意,不得转载. 博主主页: http://blog.csdn.net/chszs. Docker是一个C/S架构的容器引擎,它包括镜像、容器和库这三个重要的概念. Docker是一个开源平台,它包含容器引擎和Docker Hub注册服务器. 1)Docker容器引擎.

Redis几个认识误区

- Class4 - Tim[后端技术]
前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键.

我认识的乔布斯

- Donson - Apple4.us
本文是华尔街日报的「莫博士」于乔布斯去世后撰写的纪念文章. 后者曾多次在苹果产品发布会上引用莫的评论,也曾多次接受其采访. 文/Walt Mossberg   图/Wired.com. 在他八月辞去苹果 CEO 一职以后,说史蒂夫·乔布斯是个天才,一个影响了好几个产业数十亿人的话已经被写过很多遍了.

认识“市场先生”

- 冰醇拿铁 - laoba1梁军儒的BLOG
    本杰明·格雷厄姆和沃伦·巴菲特的投资哲学均以对市场本质的看法为基础. 格雷厄姆还给投资市场起了“市场先生”这么一个人格化的名字.     在写给伯克希尔·哈撒韦公司持股者的一封信中,沃伦·巴菲特是这样描写“市场先生”的:.     本杰明·格雷厄姆,我的朋友和老师,很久以前就提出了对待市场波动的正确态度,我相信这种态度是最容易带来投资成功的.

我认识的乔布斯

- Frank - Apple4.us
本文是华尔街日报的「莫博士」于乔布斯去世后撰写的纪念文章. 后者曾多次在苹果产品发布会上引用莫的评论,也曾多次接受其采访. 文/Walt Mossberg   图/Wired.com. 在他八月辞去苹果 CEO 一职以后,说史蒂夫·乔布斯是个天才,一个影响了好几个产业数十亿人的话已经被写过很多遍了.