数据流图模型建立

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据流图模型建立(功能模型)
最初,结构化分析方法仅讨论数据流建模。

目标系统被表示成如图4-2-1所示的数据变换流程图。

系统的功能体现在核心的数据变换中。

图4-2-1数据流图(DFD)
功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。

根据DeMarco的论述,功能模型使用了数据流图来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定表与判定树来描述。

一、数据流图
图4-2-2是描述储户携带存折去银行办理取款手续的数据流图。

从图中可以看到,数据流图的基本图形元素有四种,如图4-2-3所示。

图4-2-2办理取款手续的数据流图
图4-2-3DFD的基本图形符号
在数据流图中,如果有两个以上数据流指向一个加工,或是从一个加工中引出两个以上的数据流,这些数据流之间往往存在一定的关系。

为表达这些关系,在这些数据流的加工可以标上不同的标记符号。

所用符号及其含意在图4-2-4中给出。

图4-2-4表明多个数据流与加工之间关系的符号
二、分层数据流图
为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。

稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工。

这样的数据流图看起来很不清楚。

层次结构的数据流图能很好地解决这一问题。

按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。

图4-2-5给出分层数据流图的示例。

数据处理S包括3个子系统1、2、3。

顶层下面的第一层数据流图为DFD/L1。

第二层数据流图DFD/L2.1、DFD/L2.2及DFD/L2.3分别是子系统1、2和3的细化。

对任何一层数据流图来说,我们称它的上层图为父图,在它下一层的图则称为子图。

图4-2-5分层数据流图
画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。

检查和修改的原则为:
①数据流图上所有图形符号只限于前述四种基本图形元素。

②顶层数据流图必须包括前述四种基本元素,缺一不可。

③顶层数据流图上的数据流必须封闭在外部实体之间。

④每个加工至少有一个输入数据流和一个输出数据流。

⑤在数据流图中,需按层给加工框编号。

编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。

⑥规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。

此即父图与子图的平衡。

⑦可以在数据流图中加入物质流,帮助用户理解数据流图。

⑧图上每个元素都必须有名字。

数据流和数据文件的名字应当是“名词”或“名词性短语”,表明流动的数据是什么。

加工的名字应当是“名词+宾语”,表明做什么事情。

⑨数据流图中不可夹带控制流。

⑩初画时可以忽略琐碎的细节,以集中精力于主要数据流。

三、加工规格说明
加工规格说明用来说明DFD中的数据加工的加工细节。

加工规格说明描述了数据加工的输入,实现加工的算法以及产生的输出。

另外,加工规格说明指明了加工(功能)的约束和限制,与加工相关的性能要求,以及影响加工的实现方式的设计约束。

必须注意,写加工规格说明的主要目的是要表达“做什么”,而不是“怎样做”。

因此它应描述数据加工实现加工的策略而不是实现加工的细节。

目前用于写加工规格说明的工具有结构化英语、判定表和判定树。

四、示例
商店业务处理系统:其主要管理业务销售与采购工作,即营售,当然也要其中的帐务管理。

经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。

主要数据流输入的源点和输出终点是顾客和供应商。

然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图。

(1)首先建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换。

根据软件系统与外部环境的关系确定顶级数据流图中外部实体以及它们与软件系统之间的数据流。

商店业务管理处理系统的顶层数据流图如图4-2-6;
图4-2-6商店处理系统的顶层数据流图
(2)对用户需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体、数据源或数据流,动词构成潜在的处理功能。

结合分析人员对问题域和用户需求的理解,确定软件系统的主要功能以及它们之间的数据流。

根据分析,本例中的系统可以分为3个主要处理功能模型(如图4-2-7)。

分别是销售、采购和会计。

下面分析对每一个处理功能进一步细化下去。

图4-2-7商店处理系统的第0层数据流图
(3)采用通常的功能分解方法,按照“强内聚、松藕合”原则逐个对处理功能进行精化;与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。

“强内聚、松藕合”原则是指被分解出来的各子功能之间的联系相对构松散、简单,子功能内部各部分的联系相对紧密、复杂。

这一原则对于目标软件系统的可修改性、可扩充性大有益处,因为开发人员可以缩小软件修改或扩充的影响传播范围。

对数据流的精化包含两方面的意义。

首先,伴随着功能分解的进行,数据流的内容及各项特征将逐步彰现,所以要将其作为数据字典的一个条目,并不断精化、调整内容。

其次,在父数据流图中的复合数据项可被分解为子数据项,这种数据流分解并不违背平衡准则。

对本例,进一步分析可得如图4-2-8与图4-2-9两子数据流图。

(4)在精化过程中必须维持各级数据流图的平衡。

(5)精化过程应适可而止,避免涉及软件设计细节。

一般说来,如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解。

图4-2-8销售子处理细化数据流图
图4-2-9采购子处理细化数据流图。

相关文档
最新文档