1. 数据流图的介绍
1.1 数据流图的概念
数据流图(Data Flow Diagram,DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图的优点:
在数据流图中没有任何具体的物理元素,它只是描绘信息在软件中流动和被处理的情况。
因为数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,所以是分析员与用户之间极好的沟通工具。
设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需考虑怎样具体地实现这些功能,因此,它也是今后进行软件设计很好的出发点。
数据流图可以在任何抽象层次上被用来表示系统或软件。事实上,数据流图可以被分层次地画,层次越低(在数据流图中1层比0层的层次更等)表现出的信息流细节和功能细节也越多。数据流图既提供了功能建模机制、也提供了信息流建模机制。
1.2 数据流图的基本符号
数据流图有4种基本符号:
- 正方形(或立方体)表示数据的源点或终点;
- 圆角矩形(或圆形)代表变换数据的处理;
- 开口矩形(或两条平行横线)代表数据存储;
- 箭头表示数据流,即特定数据的流动方向。
1.3 数据流图命名规范
数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。
因此,给这些成分起名字时应该仔细推敲。
数据源点/终点并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图的核心内容,只不过是目标系统的外围环境部分(可能是人员、计算机外部设备或传感器装置)。通常,为数据源点 / 终点命名时采用它们在问题域中习惯使用的名字
数据流(或数据存储)命名:
名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。
不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。
如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。
处理命名:
通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。
名字应该反映整个处理的功能,而不是它的一部分功能。
名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作为名字。
通常名字中仅包括一个动词。如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。
如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。
1.4 数据流图设计原则
1、父图-子图平衡原则
即父图输入输出数据流等于子图输入输出数据流。
2、数据守恒原则
3、守恒加工原则
每个加工至少有一个输入数据流和一个输出数据流
2.示例
1、计算机储蓄系统
顶层数据流图
0/1层数据流图
2、图书预定系统
顶层数据流图
0层数据流图
1层数据流图
3、订货系统
顶层数据流图
0层数据流图
1层数据流图