作者:opLW
参考:《软件工程》第三版
目录
1.数据流图
-
1.1 数据流图概述(DFD:data flow diagram数据流图) 俗话说:没图说个🐓👦。数据流图就是用最直接明了的图形化代替冗杂的文字描述,来说明系统工作过程。
- 基本元素包括: 数据流,加工,文件,源或宿。
- 内部元素: 数据流,加工,文件用于构建软件系统内部的数据处理模型。
- 外部元素: 源或宿表示存在于系统之外的对象,帮助我们理解系统数据的来源和去向。
-
1.2 具体元素介绍
-
源或宿 源或宿通常是指存在于软件系统之外的人员或组织,表示软件系统的输入数据的来源和输出数据的去向,也称为系统源点和终点。源和宿可以为同一个个体也可以为不同个体:
- 源或宿是不同个体 例如一个考务处理系统,考生向系统提供报名单(输入数据流),所以考生是该系统的源;而考务处理系统将成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿。
- 源或宿是同一个个体 例如报名系统,考生向系统提供报名单(输入数据流),系统根据信息生成一个准考证并发送给考生(输出数据流),在这个过程中考生既是源又是宿。
如果把数据流图比作制作水果罐头的生产线,则源代表着把水果放上生产线的工人、宿代表着最后一箱箱装好的罐头。
-
加工 加工描述了输入数据流到输出数据的变换,即将输入数据流转换为输出数据流。每一个加工用一个定义明确的名字标识。一个加工至少有一个输入数据流和一个输出数据流。
加工就好比生产线上的一个个过程,比如制作水果罐头的生产线,就有削皮、清洗、切块等加工
-
数据流 数据流由一组固定成分的数据组成。
- 每一个数据流用一个定义明确的名字标识。但是如果是从文件流出或流向文件,由于它们代表了文件的一个记录,所以不必为他们命名。 (文件为另外一种数据流图元素)
- 数据流具有流向的特点: 数据流的流向 从一个加工流向另外一个加工,从加工流向文件(写文件),从文件流向加工(读文件),从源流向加工,从加工流向宿。
经过“切块”这个加工后的水果,它们可以由名为“水果”的数据流,转而变成名为“水果碎块”的数据流。因此经过加工后的数据流可能在名称上会发生变化。
-
文件 文件用于存放数据。通常一个数据流流入一个加工之后就会消失,会变成其他输出数据流。所以整个系统就需要文件来存放原始数据流或其他数据流。
- 每一个文件用一个定义明确的名字标识。可以有数据流流入文件表示写文件,可以有数据流流出文件表示读文件,也可以同时有数据流流入和流出表示修改文件。
生产水果罐头的过程可能无法一步到位,所以中间可能需要暂存一些加工后的数据流,因此就有了”文件“这种元素。
-
-
1.3 数据流图的扩充符号
在DFD中,一个加工可以有多个输入数据流和多个输出数据流,此时可以添加其他符号来描述多个数据流之间的关系。如最后水果罐头的封装,不单单需要水果,可能还需要各种防腐剂,所以需要配合着扩展符号来表示。因此即将进入“封装”这个加工的数据流可能是:水果碎块 * 防腐剂
详细关系如下:
- 星号(*) 表示数据流之间存在 “ 与 ” 的关系。
- 如果是输入数据流,则表示所有输入数据流到达之后,才可以进行加工处理;
- 如果是输出数据流,则表示加工结束之后将同时产生所有的输出流数据。
- 加号(+) 表示数据流之间存在 “ 或 ” 的关系。
- 如果是输入数据流,则表示其中任意一个数据流到达之后就可以开始加工。
- 如果是输出数据流,则表示加工处理的结果至少产生其中一个输出数据流。
- 异或(⊕) 表示数据流之间存在 “ 异或 ” 的关系。
- 如果是输入数据流,则表示当且仅当其中一个输入数据流到达之后才可以进行加工处理;
- 如果是输出数据流,则表示加工结束之后仅产生这些输出流数据中的一个。
- 星号(*) 表示数据流之间存在 “ 与 ” 的关系。
2.数据字典
- 2.1 数据字典概述
- 当你通过数据流图一通比划:来左边跟我画个🐉,右边画一道🌈…后领导和你说:这一块你讲的太粗了,讲详细点时,你就需要数据字典了。
- 数据字典与数据流图密不可分,两者构成软件的逻辑模型。数据字典的条目分为5类:数据流,文件,数据项(组成数据流和文件的数据),加工,源或宿。数据字典主要用来进一步描述数据流图中各项的内容。
- 2.2 数据字典使用的描述符号 数据字典可能需要使用到的符号:
- 2.3 数据字典的条目分类 数据字典分为不同的条目,因为数据字典就是对数据流图的进一步补充,所以数据字典条目的分类与数据流图类似。不同的条目对于数据项的要求不同 ,下面简单列出常见的数据项,其中黄色是必须的项。
-
2.3.1 数据流条目
名称 数据流的名字 别名 名称的另外一个名字 简述 对数据流的简单说明 数据流组成 描述数据流由哪些内容组成 数据流来源 描述数据流从哪一个加工或源流出 数据流去向 描述数据流流入哪个加工或宿 数据量 系统中该数据流的总量,如考务系统中“ 报名单 " 的总量是10000张 峰值 某段时间处理的最大数量 注解 对该数据的其他补充说明 其中数据流组成是数据流条目的核心,列出了组成该数据流的各数据项。
如上面加工水果罐头需要用到的”防腐剂“数据流,它可以包含多种不同的化学成分,因此对于”防腐剂”这个数据流的数据流组成可以描述为:防腐剂=化学品A+化学品B+化学品C -
文件条目
名称 文件名 别名 名称的另外一个名字 简述 对文件的简单说明 文件组成 描述文件由哪些数据项组成 写文件的加工 描述哪些加工对文件进行写的操作 读文件的加工 描述哪些加工对文件进行读的操作 文件组织 描述文件的存储方式(顺序,索引)等 使用权限 描述不同类型用户的权限 -
数据项条目
名称 数据项名 别名 名称的另外一个名字 简述 对数据项的简单说明 数据类型 描述数据项的类型,如整型,字符串等 计量单位 指明数据项的计量单位,如条,公斤等 取值范围 描述数据项允许的域值,如1…100等 -
加工条目
名称 加工名 别名 名称的另外一个名字 简述 对加工功能的简单说明 加工号 加工在DFD中的编号 加工逻辑 简要描述加工的大体过程 -
源或宿条目
名称 源或宿名 别名 名称的另外一个名字 简述 简要说明,包括指明该实体是源还是宿,还是两者兼具
-
数据字典是对数据流图进行补充说明,其可通过列表的方式进行说明,类似我们常见的书本附录。
3.ER图
- ER图主要用于描述数据库中表的关系,参考另外一篇文章数据库:ER图
总结 这三者在平时学习时经常用到。ER图描述的是实体之间的关系;数据流图则以更直观的方式展示实体在系统中的处理流程;数据字典则是作为一个补充说明。
万水千山总是情,麻烦手下别留情。
如若讲得有不妥,文末留言告知我,
如若觉得还可以,收藏点赞要一起。