软工系列之--数据流图(DFD图)
软件需求分析的基础:机构化分析方法。
结构化分析方法适用于数据处理类型软件的需求分析。它提供的主要建模工具包括 数据流图、数据字典、机构化英语、判定表、和判定树等。
在这里主要说明DFD图的使用和画法。
数据流图(DFD--Data Flow Diagram)作用
指明数据在系统中移动时如何被变换,描述对数据流进行交换的功能和子功能。
DFD图的特性。
抽象性、概括性、层次性。
DFD图的用途。
1)系统分析员用这种工具可以自顶向下分析系统信息流程。
2)可在图上画出需要计算机处理的部分。
3)根据数据存贮,进一步作数据分析,向数据库库设计过渡。
4)根据数据流向,定出存取方式。
5)对应一个处理过程,用相应的语言、判定表等工具表达处理方法。
DFD图的优缺点。
1)总体概念强,每一层都明确签掉“干什么”,“需要什么”,“给出什么”
2)可以反映出数据的流向和处理过程。
3)由于自顶向下分析,容易及早发现系统各个部分的逻辑错误,也容易修正。
4)容易与计算机处理相对照。
5)不直观,一般都要咋作业流程分析的基础上加以概括、抽象、修正来得到。
6)如果没有计算机系统的帮助,人工绘制会太麻烦,工作量较大。
数据流图的画法。
1 组成符号
2、命名。
1)名字应代表整个数据流( 或是存储)内容。
2)不要使用空洞的、缺乏具体含义的名字。
3)如果某个数据流起名字时遇到了困难,可能是因为对数据流分解不恰当引起的,应重新分解。
4)名字要反映整个处理的功能,而不是一部分功能。
5)名字最好有一个及物动词加上一个具体的名词或是名次组组成。应该尽量避免使用“加工”,“处理“,等空洞笼统的动名词。
6)数据的源点和终点并不需要在系统中实现,它们代表着系统的外部环境。数据源采用他们习惯的名字,如”学生“,“管理员”。
分层数据流图。
画法:
第0层DFD称为系统基本模型,可以将整个软件系统表示为一个具有输入和输出的黑匣子。用一个圆圈表示。
上一层DFD中的每一个圆圈可以进一步扩展成一个独立的数据流图,以揭示系统中程序的细节部分。
这种循序渐进的习惯过程可以继续进行,直到最低层的图仅描述原子过程操作为止。
每一层数据流图必须与它上一层数据流图保持平衡和一致,因此,子图的所有输入输出流要与其父图相匹配。
概括的就是说:自外向内,自顶向下,逐层细化,完善求精。
确定系统的输入和输出,以反映系统关于外界环境的接口。第0层DFD将整个系统表述一个加工;它并未表达数据加工的要求,需要近一步细化。确定并标出主要的输入和输出,从输入端开始,根据业务工作流程,画出数据流经的个加工框,以反映数据的实际处理过程,逐步画出输出端,得到第一层数据流图。图中的加工分贝加以编号。细化每一个加工框。如果加工框内还有数据流,可将这个加工框再细分成为几个“子加工”并在各子加工框之间画出数据流。一次比一次细化加工。重复步骤,直到所有加工只重复一个简单的操作可以很容易的用程序来实现。
为了表达处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚和理解整个系统。
可以把系统分为三个子系统,一层 DFD/L1、 DFD/L2 、DFD/L3。再对第二层分层 DFD/1.1 DFD/1.2 ....等等。
eg:
这是以前画的图。首先说说这个图的缺点。一是,在这个图中没有画出数据存储的文件。二是,图中数据流起名有些问题吧。
下面是我曾经画过的餐厅点菜系统的DFD图。
还是在实践中学习吧,不断的改正和探索。
软工系列之--数据流图(DFD图)相关推荐
- 计算机学习入门指北——计科软工网络信安侧重图析、解读专业术语、岗位分类、未来规划
申明:本博文偏技术向,主观性较强,其中部分理解必有偏差和误解,望指出改正! 计算机学习入门指北: 作为刚入学的计算机系学生,面对一片专业术语十分蒙.区块链?大数据?开源?数据库?嵌入式开发?前端后端? ...
- 软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)
结构化分析方法 结构化分析是一种半形式化的建模技术,即抽取系统的本质要素,描述数据和行为的模型.注意:系统模型不是系统的代替表示,而是摈弃细节后的系统的抽象. 其要完成的主要目标:描述客户的需要:建立 ...
- 机房收费系统个人重构版:软工文档中那些图
[前言] 图,提到这个字的时候脑海中就会出现许许多多的图像,它的重要性相信大家都明白,相比于文字来说它更生动形象正好符合人类大脑的记忆规律:很多人也知道动画片制作原理也是用一张张图片只不过转换的 ...
- 数据流图——从软考真题中学画数据流图DFD
文章目录 题目 画顶层图 画0层图 解题技巧 题目 建议将题目复制到word后与此文分屏查看.后面需要多次查看题目. 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩, ...
- 软工复习一万字资料大全总结超强无敌版稳过乱过
学习通作业一 选择题 软件工程最基本的目标是保证质量 软件工程是一种层次化技术,3个层次一般指过程.方法和工具 瀑布模型属于一种线性模型 "软件危机"是指开发出的软件不能满足需求 ...
- [软工导论①]复习题库
[软工导论②]TYUT太理真题题集 填空题 在信息处理和计算机领域内,一般认为软件是 _程序____._文档____ 和_数据____ . 数据流图的基本组成部分有 _数据的源点与终点____. 数据 ...
- 西北大学软工专硕专业课面试可能会问到的问题
20届西北大学软工专硕刚刚上岸,本着上岸分享资料的想法, 把自己复试期间整理的一点东西(包括但不仅限于这些问题)分享出来,供大家参考,内容只代表我的观点,假如与标准答案有所不同,敬请谅解! Ps:今年 ...
- 【软件工程】之软工视频初印象
最近在学习软工的视频,第三章到了结尾,就让我来说一下自己看视频的感受吧,顺便总结这三章. 首先,我看这个视频的前几集讲第一章的时候,就有一种特别熟悉的感觉,为什么呢?听完以后再一想,呦!这不是跟自考书 ...
- 论激情引领探索,探索产生成就感,成就感反馈激情之螺旋上升——大学阶段最酷的体验之软工实践
这个作业属于哪个课程 2022年福大-软件工程W班 这个作业要求在哪里 软件工程实践总结&个人技术博客 这个作业的目标 总结回顾学习过程 其他参考文献 - 前言: 我承认,这个标题确实有点标题 ...
最新文章
- 论新时代软件测试人员的工作之道(一)之一个故事
- 压缩目录Linux常用的几种文件压缩解压方法
- html 文本强调,CSS Emphasis Marks 文本强调标记
- 在事务方法中调用另外一个事务方法,被调用方法的事务没起作用
- 计算机考到贴吧的试题,2014年全国计算机二级VB上机考试试题七
- solr后台登录验证
- 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
- vim ,vi总是卡死,终于找到原因了。
- 模拟电路和数字电路区别
- Excel如何批量删除所有空格
- 爱五笔iWuBi for Mac(五笔练习工具)
- Codeforces Round #828 (Div. 3) E2. Divisible Numbers (hard version)
- 一篇文章轻松搞定SpringSecurity权限框架!
- Mifare S50与Mifare S70
- 局域网内即时通信软件 ZSCQ -工作进度记录表
- 模拟unity自带地形的grass
- (13)TranslateMessage函数
- js手机号中间四位_为什么手机号码会影响我们?一个适合自己的手机号码有多重要?...
- 2018红帽杯线上预选赛 wp---MISC
- 腾讯云基础认证是什么?多少分通过?
热门文章
- 一期每日一GO群分享-flag、viper、协程池、异常处理
- 素数总结(包含素数表)
- 【愚公系列】2021年12月 Redis数据库-集群的搭建
- git拆分子目录作为新仓库并保留log记录
- 根据手机号查询归属地以及制式信息
- 小百合海外站 lilybbs.us or woft.net 教育网 paradiso.cn:10078
- arm-linux-strip,arm-linux-strip
- “被裁员后,我领悟到的8个残酷真相”
- BFS - Dungeon Master
- MybatisPlus报错can not find lambda cache for this entity