软件工程 -- 数据流图的画法

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 第二层数据流图



以上是关于软件工程 -- 数据流图的画法的主要内容,如果未能解决你的问题,请参考以下文章

转:数据流图的画法

数据流图的画法

winform BoxPolt 箱形图的画法

程序员必备UML类图的画法

架构这7种UML图的画法每个程序员都应该掌握

Rose UML 活动图的画法