软件工程 -- 数据流图的画法
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程 -- 数据流图的画法相关的知识,希望对你有一定的参考价值。
1. 数据流图的画法
1.1 数据流图的概念
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
说明:
在数据流图中没有任何具体的物理部件,
它只是描绘数据在软件中流动和被处理的逻辑过程。
数据流图是系统逻辑功能的图形表示,
即使不是专业的计算机技术人员也容易理解它,
因此是分析员与用户之间极好的通信工具。
此外,设计数据流图时只需考虑系统必须完成的基本逻辑功能,
完全不需要考虑怎样具体地实现这些功能,
所以它也是今后进行软件设计的很好的出发点。
1.2 数据流图的基本符号
补充:数据流说明
2. 示例:工厂订单报表
假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下述数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。
2.1 第一步可以从问题描述中提取数据流图的4种成分
- 数据源点:仓库管理员(通过放在仓库中的CRT终端把事务报告给订货系统)
- 数据终点:采购员(采购部每天需要一张订货报表)
2.2 第二步:再一次阅读问题描述,“采购部需要报表”
因此必须有一个用于产生报表的处理。
事务的后果是改变零件库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理。
注意,在问题描述中并没有明显地提到需要对事务进行处理,但是通过分析可以看出这种需要。
2.3 第三步:考虑数据流和数据存储
系统把订货报表送给采购部,因此订货报表是一个数据流;
事务需要从仓库送到系统中,显然事务是另一个数据流。
产生报表和处理事务这两个处理在时间上明显不匹配--每当有一个事务发生时立即处理它,
然而每天只产生一次订货报表。
因此,用来产生订货报表的数据必须存放一段时间,也就是应该有一个数据存储
2.4 上述分析的结果
2.5 开始画数据流图
2.5.1 顶层数据流图
2.5.2 第一层数据流图
2.5.3 第二层数据流图
当进一步分解将涉及如何具体地实现一个功能时就不应该再分解了。
当对数据流图分层细化时必须保持信息连续性,
也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
2.6 补充: 命名规范
数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。
因此,给这些成分起名字时应该仔细推敲。
数据流命名时应注意的问题:
- 名字应代表整个数据流的内容,而不是仅仅反映它的某些成分。
- 不要使用空洞的、缺乏具体含义的名字。
- 通常先为数据流命名,然后再为与之相关联的处理命名。
- 名字应该反映整个处理的功能,而不是它的一部分功能。
- 名字最好由一个具体的及物动词加上一个具体的宾语组成。
- 通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。
- 在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解。
3. 练习
3.1 教务管理子系统
教务管理是一项需求周密计划、严谨安排的工作,要依据教师、学生信息进行合理安排。
教务管理子系统的需求描述:
- 开学阶段,需要教师提交开课申请进行开课,学生根据老师的开课信息,选择课程,教务处生成学生课表、教师课表。
- 期末阶段,需要根据开课情况对学生进行考试安排,对教师进行监考安排,以及学生考试成绩管理。
- 学期结束,需要对学生成绩进行统计,计算绩点,排名,评定奖学金。
3.1.1 顶层数据流图
3.1.2 第一层数据流图
3.1.3 第二层数据流图
3.2 图书馆管理子系统
图书馆管理子系统的需求描述:
- 借书过程,学生到图书馆查询图书信息,出示借书证,办理借书。
- 还书过程,判断是否超期、图书是否破损,办理还书。
3.2.1 顶层数据流图
3.2.2 第一层数据流图
3.2.3 第二层数据流图
以上是关于软件工程 -- 数据流图的画法的主要内容,如果未能解决你的问题,请参考以下文章