数据流图

       数据流图(Data Flow Diagram,简称DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经历的变换,其既提供了功能建模机制也提供了信息建模机制。是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。

 一、DFD中的基本符号:

    数据流图有四种基本图形符号:

    →:箭头,表示数据流
    〇:圆或椭圆,表示加工,即变换数据的处理
    =:双杠(或开口矩形),表示数据存储
    □:方框,表示数据的源点或汇点

 

二、DFD中的4中元素:

    (1)数据流:数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。 数据流是流   动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
    (2)加工(数据处理):对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。
    (3)数据存储(文件):指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
    (4)数据源点或终点(外部实体):是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。一般只出现在数据流图的顶层图。

 

三、画数据流图的步骤:

(1)首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。

    (2)画系统内部,即画下层数据流图。不再 分解的加工称为基本加工。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间 的数据接口和活动关系。例如,在上面的机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系 起来,0层数据流图如图。


                                                          

    (3)注意事项:

    ①命名:不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。
    ②画数据流而不是控制流:数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
    ③一般不画物质流:数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
    ④每个加工至少有一个输入数据流和一个输出数据流:反映出此加工数据的来源与加工的结果。
    ⑤编号:如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。

    ⑥父图与子图的平衡:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
    ⑦局部数据存储:当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。
    ⑧提高数据流图的易懂性:注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。

       

四、数据流程图的主要作用:

    1、便于用户表达功能需求和数据需求及其联系

    2、便于两类人员共同理解现行系统和规划系统的框架

    3、清晰表达数据流的情况 

    4、有利于系统建模

 

五、常见错误检测:

    1、数据流图中所有图形符号只能是4种基本符号

    2、数据流图的主图(非顶层图)必须包含4中基本元素,缺一不可

    3、主图的数据流必须封闭在外部实体之间,外部实体可以不只1个

    4、每个加工至少有1个输入数据流和1个输出数据流

    5、数据流图中必须按层给加工框编号,编号需体现各个层次的关系

    6、任何数据流子图均与上层的一个加工对应,且父图与子图平衡

    7、图上每个元素都必须有名字

    8、数据流图中不可夹带控制流

    9、实体和实体之间不能有数据流

   10、存储文件和存储文件之间不能有数据流


转载于:https://www.cnblogs.com/jpa2/archive/2011/10/20/2527371.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[react] 你对immutable有了解吗?它有什么作用?

[react] 你对immutable有了解吗?它有什么作用? 让 react 的渲染符合预期,比如我们使用 ref 保留对象引用后,传递给子组件渲染,如果这是对象内的属性变更,不会触发子组件重新渲染,如果使用 immu…

lwip+freeRTOS 实现热插拔功能

1、lwip启用LWIP_NETIF_CALLBACK 宏,cubeMX会自动生成相关函数()。 /* Set the link callback function, this function is called on change of link status*/netif_set_link_callback(&gnetif, ethernetif_update_config); 回调函数在v…

iOS设计模式 - 享元

iOS设计模式 - 享元 原理图 说明 享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结…

C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll]

前言 当你认真的写完客户端和服务器端的时候可能不需要再继续往下看关于播放器的代码和说明,因为你已经掌握了如何转换VC代码的技巧了,加上GOOGLE再来完成这个播放器应该算小菜了。但是作为我的系列,我还是有必要认真的将这部分写完才算完整&…

[react] React16废弃了哪些生命周期?为什么?

[react] React16废弃了哪些生命周期?为什么? React16废弃的生命周期有3个will: componentWillMount componentWillReceiveProps componentWillUpdate 废弃的原因,是在React16的Fiber架构中,调和过程会多次执行will周…

lwip+freeRTOS 故障容错 客户端主动发起连接

1、简单的需求 STM32终端为tcp客户端,主动向TCP服务器发起连接,然后进行通信。 流程:STM32网卡初始化-----lwIP初始化--------DHCP-------------creat socket Client-------send-------recv 2、实际情况 (1)如何处…

JS正则表达式大全【转】

正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原&#xff0c…

C++回调函数用法

From: http://blog.csdn.net/wubin1124/article/details/4386269 一回调函数 我们经常在C设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢&#x…

[react] 举例说明什么是高阶组件(HOC)的属性代理

[react] 举例说明什么是高阶组件(HOC)的属性代理 function HOC(WrappedComponent) {return class HOC extends Component {render() {const newProps { type: HOC };return <div><WrappedComponent {...this.props} {...newProps} /></div>}} }hoc class O…

树莓派使用STEP8:使能串口调试

1、打开SD卡根目录"config.txt"文件&#xff0c;文末增加dtoverlaypi3-miniuart-bt并且保存 &#xff1b; 2、修改根目录"cmdline.txt"&#xff0c;清空原内容&#xff0c;增加 dwc_otg.lpm_enable0 consoletty1 consoleserial0,115200 root/dev/mmcblk0p…

【C++模板】特化与偏特化 template [partial] specialization

1 template specialization 模板特化 一般情况下类模板定义如下&#xff1a; template<class Window, class Controller> class Widget {... 泛化实现代码 ... };特化是指把类模板中指定的class T变成具体的类型&#xff1a;class Widget<ModalDialog, MyController&g…

正则表达式匹配中文字符串的文章URL

http://www.cnblogs.com/yitian/archive/2008/11/14/1333569.html转载于:https://www.cnblogs.com/llcdbk/p/4932172.html

[react] React中你有使用过getDefaultProps吗?它有什么作用?

[react] React中你有使用过getDefaultProps吗&#xff1f;它有什么作用&#xff1f; createReactClass 参数对象内的一个方法&#xff0c;用于初始化组件属性 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主…

GCC优化选项:一般的文档里不容易找到的-Os

From: http://hi.baidu.com/ah__fu/item/9287dd5227227c908d12ed50 在研究编译驱动的makefile的时候&#xff0c;发现GCC的命令行里面有一个-Os的优化选项。 遍查GCC文档&#xff0c;发现了-O0, -O1, -O2, -O3&#xff0c;就是没有发现-Os。 祭出GOOGLE大法搜了一下…

带箭头的菜单列表

<title>带箭头的菜单列表</title><style>body{background-color:#999;}#menu{font-size:16px;width:140px;margin:0 auto;border:solid 1px #ccc;}#menu a,#menu a:visited{text-decoration:none;text-align:center;color:#c00;display:block;padding:4px;ba…

电网交流采样

电能表计量、谐波分析等待应用场景需要用到交流采样&#xff0c;相应地当采集的信号是变换平缓的直流信号时叫直流采样。 1、采样方法 一般交流采样有三种方式&#xff1a;同步采样法、非同步采样法、准同步采样法。 2、频谱泄露问题 当交流信号经采样、AD转换后进行数字处…

[react] React中getInitialState方法的作用是什么

[react] React中getInitialState方法的作用是什么 使用es5创建组件caerteClass getInitialState&#xff08;初始化state&#xff09; 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前…

Android--发送短信,并且通知发送方

1、发送短信涉及到权限&#xff0c;我们需要把权限加上 2、当我们发送短信时&#xff0c;不管发送是否成功&#xff0c;接收方是否接收到&#xff0c;系统都会发送广播 3、这时我们注册广播去接收一下就可以了 4、布局文件很简单&#xff0c;里面就两个EditText和一个button 下…

gcc编译选项-Os的用法

From: http://hi.baidu.com/caosicong/item/e61fa700581980d11ff0469c **********************gcc/egcs 的主要选项********* gcc 命令的常用选项 选项 解释 -ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色&#xff0c; 例如 asm 或 typeof 关键词。…

Sharepoint2007个人网站不能同步域信息的处理方法

如果在AD上改变的帐户的信息&#xff0c;比如邮箱地址&#xff0c;可能sharepoint不能自动更新。 sharepoint管理中心&#xff0d;共享服务管理&#xff0d;sharedServices1&#xff0d;用户配置文件和属性 在些处可导入&#xff0c;编辑帐户信息。 当然也可以直接开始完全导入…