当前位置: 首页 > news >正文

软件工程。

UML

数据流图(DFD)

1,数据流图概念

描绘信息流和数据从输入移动到输出的过程中所经受的变换。
也就是 数据流+图
数据流图以图形的方式描绘数据在系统中流动和处理的过程

数据流图(DFD,Data Flow Diagram)也称分层数据流图,是在需求分析阶段用到的一种工具,在结构化的需求分析中,DFD的使用频度极高。

在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。也就是数据流图中没有 分支条件或循环。
数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。
通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理,数据流图的基本要点是描绘 “做什么”,而不考虑 “怎样做”。

2,数据流图特征

1)抽象性 数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况;

2)概括性 数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体。

3,数据流图基本元素

数据流基本元素:数据流;加工;数据存储;外部实体(源点或终点)

数据流图有4种基本符号:
正方形(或立方体)表示数据的源点或终点;
圆角矩形(或圆形)代表变换数据的处理;
开口矩形(或两条平行横线)代表数据存储;
箭头表示数据流,即特定数据的流动方向。

外部实体是指存在于软件系统外的人员,组织或物品,还可以是其他的系统。
在这里插入图片描述
数据流基本符号:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4,数据流图的层次结构

(1)分层数据流图

自顶向下分解,按照层次结构绘制,每张图中的加共个数可大致控制在“7加减2”的范围内

顶层图:描述了软件系统与外界之间的数据流,只有一张图,一个加工。(代表整个软件系统)

0层图:顶层图中的加工经过分解之后的图,也只有一张。

中间层:除了顶层、0层、底层的其他图

底层图:处于最底层的图,底层图中所有的加工不能再分解。

(2)图和加工的编号

在这里插入图片描述

(3)分层数据流图审查

判断绘制的数据流图是否存在问题。
1,父图与子图的平衡。
父图与子图平衡是指任何一张DFD的子图边界上的输入/输出数据,必须与其父图中对应的输入/输出数据流保持一致。
(如下的图是错误的)
在这里插入图片描述
2,数据流图的完整性
(1)每个加工至少有一个输入数据流和一个输出数据流
(3.1.2没有输出数据流。3.1.3只有输出,没有输入。 这两种情况都是错误的)
(2)在整套分层数据流图中,每个数据存储应至少有一个加工对其进行读操作,另一个加工对其进行写操作。
对于某一张DFD来说,可以只读不写或者只写不读。
(3)分层数据流中,每个数据流和文件都必须命名。
数据流:名词或形容词+名词
加工:动词或动宾
数据存储:名词
外部实体:可以用实际的人或组织的名称来命名。

绘制DFD数据流图

DFD的绘制是一个自顶向下、由外到里的过程,通常按照以下几个步骤进行:

1)画系统的输入和输出。

2)画DFD的内部。

3)为每一个数据流命名。

4)为每一个加工命名,采用动宾短语。

画分层数据流图的步骤:
(1)构建顶层DFD。(输入+软件系统+输出)。
(2)对顶层DFD图进行细化,构建0层DFD。(比如1个加工,2个加工,3个加工)(加工,主要寻找系统中的功能)
(3)逐层细化。(根据上一层,也就是加工上面的加工分解)

绘制顶层数据流图(顶层DFD)的要素:
1,输入、输出(也可称为源点/终点,外部实体。 一般是人/组织)
2,软件系统
3,数据流

注意事项
1)所有图形符号只有数据流、加工、数据存储和外部实体4种,并且都要有名字。

2)每个加工至少有一个输入数据流和输出数据流,只有输入没有输出,或者只有输出没有输入都不对。

3)加工的输入数据流和输出数据流名字不能相同,即使组成完全一样。

4)外部实体不能直接关联数据存储,只能通过加工。

5)整套DFD中,数据存储必须既有读的数据流,又有写的数据流,但在具体的某张子图中,不受这个限制。

6)子图必须与它的上层加工对应。

7)DFD中可以加入物质流,但不能夹带控制流。

数据流图案例

证券交易平台

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

工厂订单报表


http://www.mrgr.cn/news/69491.html

相关文章:

  • C 语言变量
  • 计算机毕业设计Python+大模型动漫推荐系统 动漫视频推荐系统 机器学习 协同过滤推荐算法 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计
  • 硬件基础知识补全计划【七】MOS 晶体管
  • Oasis AI Minecraft:全球首个全AI驱动实时生成游戏的潜力与挑战
  • 移动应用开发:简易登录页
  • 【DCCMCI】多模态情感分析的层次去噪、表征解纠缠和双通道跨模态-上下文交互
  • 不想付费?这款免费软件满足你所有文件同步的需求
  • 从经典到应用:探索 AlexNet 神经网络
  • html5+css3(css2现状,css3选择器,属性选择器,结果伪类选择器,伪元素选择器)
  • 智能合约在供应链金融中的应用
  • HTML5+css3(浮动,浮动的相关属性,float,解决浮动的塌陷问题,clear,overflow,给父亲盒子加高度,伪元素)
  • 2024系统分析师---统一过程(淘宝押题)
  • 【Ubuntu24.04】部署服务(基础)
  • 使用VSCode远程连接服务器并解决Neo4j无法登陆问题
  • windows C#-使用异常
  • k8s中基于overlay网络和underlay网络的网络插件分别有哪些
  • Jenkins配置步骤
  • md5等摘要算法的「撞库」与「加盐」(Ⅰ)
  • npm i 的时候报错: npm ERR! Error: EPERM: operation not permitted, rename
  • vue3使用element-plus,树组件el-tree增加引导线