理论教育 数据流程分析|管理信息系统

数据流程分析|管理信息系统

时间:2023-08-17 理论教育 版权反馈
【摘要】:数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程图是系统逻辑模型的重要组成部分。数据流程图具有抽象性和概括性。绘制数据流程图的过程是系统分析的主要过程,同时也是一个多次反复的过程。绘制顶层的数据流程图,表示销售部门接到用户的订单后,根据库存情况决定向用户发货,如图5—9所示。

数据流程分析|管理信息系统

数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通过程中的数据流程不畅、前后数据不匹配、数据处理过程不合理等问题,以期在新系统中加以改进。

现有的数据流程分析多是通过分层的数据流程图(Data Flow Diagram,DFD)来实现的。数据流程图能够反映信息在系统中流动和处理的情况,它是描述系统逻辑模型的工具之一,是便于用户理解系统数据流程的图形表示。它能精确地在逻辑上描述系统的功能、输入、输出和数据存储等,从而摆脱了其物理内容。数据流程图是系统逻辑模型的重要组成部分。

数据流程图具有抽象性和概括性。抽象性表现在,它完全舍去了具体的物质,如具体的组织机构、工作场所、物质流等都已经去掉,只剩下数据的流动、加工处理和存储;概括性表现在,它把系统对各种业务的处理过程联系起来考虑,形成一个整体,可反映出数据流之间的概括情况。

(一)数据流程图的基本图形符号

数据流程图由四种基本符号组成,如图5—6所示。

例如,图5—7是一个简单的数据流程图,它表示数据X从源S流出,经P1加工转换成Y,接着经P2加工转换为Z,在加工过程中从F中读取数据。

图5—6 数据流程图的基本符号

图5—7 数据流程图示例

下面来详细讨论各种基本符号的使用方法。

1.数据流

数据流由一组确定的数据组成。例如,“发票”为一个数据流,它由品名、规格、单位、单价、数量等数据组成。数据流用带有标识并具有箭头的线段表示,标识称为数据流名,表示流经的数据,箭头表示流向。数据流可以从加工流向加工,也可以从加工流进、流出文件,还可以从源点流向加工或从加工流向终点。

对数据流的表示有以下约定:

(1)对流进或流出文件的数据流不需标注,因为文件本身就足以说明数据流。而别的数据流则必须标识,标识应能反映数据流的含义。

(2)数据流标识不允许同名。

2.加工处理

加工处理是对数据进行的操作,它把流入的数据流转换为流出的数据流。每个加工处理都应取一个名字表示它的含义,并规定一个编号用来标识该加工在层次分解中的位置。名字中必须包含一个动词,如“计算”、“打印”等。

对数据加工转换的方式有两种:

(1)改变数据的结构,例如,将数据按倒序重新排序。

(2)产生新的数据,例如,对原来的数据求和、求平均值等。

3.文件

文件是存储数据的工具。文件名应与它的内容一致,写在开口长条内。从文件流入或流出数据流时,数据流方向是很重要的。如果是读文件,则数据流的方向应从文件流出,写文件时则相反;如果是又读又写,则数据流是双向的。在修改文件时,虽然必须首先读文件,但其本质是写文件,因此数据流应流向文件,而不是双向。

4.数据源或终点

数据源和终点表示数据的外部来源和去处。它通常是系统之外的人员或组织,不受系统控制。

为了避免在数据流程图上出现线条交叉,同一个源点、终点或文件均可在不同位置多次出现,这时要在源(终)点符号的右下方画小斜线,或在文件符号左边画竖线,以示重复,如图5—8所示。

图5—8 重复的源点、终点或文件

由图5—8可见,数据流程图可通过基本符号直观地表示系统的数据流程、加工、存储等过程。但它不能表达每个数据和加工的具体、详细的含义,这些信息需要在“数据字典”和“加工说明”中表达。

(二)绘制数据流程图的步骤(www.daowen.com)

一般遵循“由外向里”的原则,即先确定系统的边界或范围,再考虑系统的内部,先画加工的输入和输出,再画加工的内部。

1.识别系统的输入和输出,画出顶层图

此步骤即确定系统的边界。在系统分析初期,系统的功能需求等还不很明确,为了防止遗漏,不妨先将范围定得大一些。系统边界确定后,那么越过边界的数据流就是系统的输入或输出,将输入与输出用加工符号连接起来,并加上输入数据来源和输出数据去向就形成了顶层图。

2.画系统内部的数据流、加工与文件,画出一级细化图

从系统输入端到输出端(也可反之),逐步用数据流和加工连接起来,当数据流的组成或值发生变化时,就在该处画一个“加工”符号。画数据流程图时还应同时画上文件,以反映各种数据的存储处,并表明数据流是流入还是流出文件。最后,再回过头来检查系统的边界,补上遗漏但有用的输入输出数据流,删去那些没被系统使用的数据流。

3.加工的进一步分解,画出二级细化图

同样运用“由外向里”方式对每个加工进行分析,如果在该加工内部还有数据流,则可将该加工分成若干个子加工,并用一些数据流把子加工连接起来,即可画出二级细化图。二级细化图可在一级细化图的基础上画出,也可单独画出该加工的二级细化图,二级细化图也称为该加工的子图。

绘制数据流程图的过程是系统分析的主要过程,同时也是一个多次反复的过程。一个数据流程图往往需要经过多次修改和讨论,才能最终确定。

下面以绘制一个订货处理系统的数据流程图为例,说明绘制数据流程图的方法。

按照上面的步骤,首先确定系统的数据源——用户。绘制顶层的数据流程图,表示销售部门接到用户的订单后,根据库存情况决定向用户发货,如图5—9所示。然后,绘制下一层的数据流程图。对顶层数据流程图的分解从“加工(处理)”开始,将“销售处理”分解为3个处理逻辑,得到第一层的数据流程图,如图5—10所示。

图5—9 订货处理系统的顶层DFD

图5—10 订货处理系统的一层DFD

此外,根据具体情况还应该对低层数据流程图再进行细分和分解,并考虑处理过程中的例外情况。

(三)画分层数据流程图时应注意的问题

下面从四个方面讨论画分层数据流程图时应注意的问题。

1.合理编号

分层数据流程图的顶层称为0层,称它是第1层的父图,而第1层既是0层图的子图,又是第2层图的父图,以此类推。为了便于管理,应按下列规则为数据流程图中的加工过程编号:子图中的编号为父图号和子加工的编号组成。为简单起见,约定第1层图的父图号为0,编号只写加工编号1、2、3……,下面各层由父图号1、1.1等加上子加工的编号1、2、3……组成。按上述规则,图的编号既能反映出它所属的层次以及它的父图编号的信息,还能反映子加工的处理信息。例如1表示第1层图的1号加工处理,1.1、1.2、1.3……表示父图为1号加工的子加工,1.3.1、1.3.2、1.3.3……表示父图号为1.3加工的子加工。

2.注意子图与父图的平衡

子图与父图的数据流必须平衡,这是分层数据流的重要性质。这里的平衡指的是子图的输入、输出数据流必须与父图中对应加工的输入、输出数据流相同。但下列两种情况是允许的,一是子图的输入/输出流比父图中相应加工的输入/输出流表达得更细。例如,在图5—11中,若父图的“订货单”数据流是由客户、品种、账号、数量四部分组成,则图中的子图和父图是平衡的。在实际中,检查该类情况的平衡,需借助于数据词典进行。二是考虑平衡时,可以忽略枝节性的数据流。例如图5—11,在4号加工的子图中,4.3号子加工中增加了一个输出,表示出错的数据流(由虚线所示),则子图和父图仍可看作是平衡的。

图5—11 子图与父图的平衡图片

3.分解的程度

对于规模较大的系统的分层数据流程图,如果一下子把加工直接分解成基本加工单元,一张图上画出过多的加工将使人难以理解,也增加了分解的复杂度。然而,如果每次分解产生的子加工太少,会使分解层次过多而增加作图的工作量,阅读也不方便。经验表明,一般来说一个加工每次分解量最多不要超过七个为宜。同时,分解时应遵循以下原则:

(1)分解应自然,概念上要合理、清晰。

(2)上层可分解得快些(即分解成的子加工个数多些),这是因为上层是综合性描述,对可读性的影响小;而下层应分解得慢些。

(3)在不影响可读性的前提下,应适当地多分解成几部分,以减少分解层数。

(4)一般来说,当加工可用一页纸明确地表述时,或加工只有单一输入/输出数据流时(出错处理不包括在内),就应停止对该加工的分解。另外,对数据流图中不再作分解的加工(即功能单元),必须作出详细的加工说明,并且每个加工说明的编号必须与功能单元的编号一致。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈