由数据流图到系统结构图的转换
2010-04-19 17:04阅读:
由数据流图所呈现出的特征,将其分为变换型数据流图、事务型数据流图、混合型数据流图。
针对不同类型有不同的转化方法:
变换分析
一、变换流与变换型系统结构
变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。如图
7-2-1所示。这三步反映了变换型问题数据流的基本思想。其中,变换数据是数据处理过程的核心工作,而取得数据只不过是为它做准备,给出数据则是对变换后的数据进行后处理工作。

图 7-2-1 变换型数据流
变换型系统结构图如图
7-2-2所示,相应于取得数据、变换数据、给出数据,系统的结构图由输入、中心变换和输出等三部分组成。

图 7-2-2 变换型的系统结构图
二、变换映射
变换映射是体系结构设计的一种策略。运用变换映射方法建立初始的变换型系统结构图,然后对它做进一步的改进,最后得到系统的最终结构图。设计的步骤如下。
步骤1:复审基本系统模型(0层数据流图和支持信息)。评估系统规格说明和软件需求规格说明。
步骤2:复审和细化软件的数据流图。重画数据流图时, 可以从物理输入到物理输出,或者相反.
还可以从顶层加工框开始,逐层向下。
步骤3:确定数据流图中含有变换流
特征还是含有事务流特征。通常,系统的信息流总能表示为变换型,但其中也可能遇到明显的事务流特征,这时可
采用变换型为主,在局部范围采用事务型的设计方法。
步骤4:区分输入流 、输出流和中心变换部分,即标明流的边界。
不同的设计人员可能选择不同的流边界,这将导致不同的系统结构图。
步骤5:进行一级“因子化”分解,设计顶层和第一层模块。
首先设计主模块,用程序名字为它命名,将它画在与中心变换相对应的位置上。做为系统的顶层,它调用下层模块,完成系统所要做的各项工作。
系统结构第一层的设计方针:为每一个逻辑输入设计一个输入模块,它为主模块提供数据;为每一个逻辑输出设计一个输出模块,它将主模块提供的数据输出;为中心变换设计一个变换模块,它将逻辑输入转换成逻辑输出。第一层模块与主模块之间传送的数据应与数据流图相对应。
步骤6:进行二级“因子化”分解
,设计中、下层模块。这一步工作是自顶向下,逐层细化,为每一个输入模块、输出模块、变换模块设计它们的从属模块。
输入模块要向调用它的上级模块提供数据,因而它
必须有两个下属模块:一个是接收数据;另一个是把这些数据变换成它的上级模块所需的数据。输出模块是从调用它的上级模块接收数据,用以输出,因而
也应当有两个下属模块:一个是将上级模块提供的数据变换成输出的形式;另一个是将它们输出。中心变换模块的下层模块没有通用的设计方法,一般应参照数据流图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。
步骤7:利用一些启发式原则来改进系统的初始结构图 ,直到得到符合要求的结构图为止
事务分析
一、事务流与事务型系统结构图
事务型数据处理问题的工作机理是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
我们把完成选择分派任务的部分叫做事务处理中心。或分派部件。这种事务型数据处理问题的数据流图如图7-3-1所示。其中,输入数据流在事务中心T处做出选择,激活某一种事务处理加工。D1~D4是并列的供选择的事务处理加工。

图 7-3-1 事务型数据处理问题
事务型数据流图所对应的系统结构图就是事务型系统结构图。如图7-3-2所示。

图 7-3-2 事务型系统结构图
在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一个事务处理模块执行。各个事务处理模块是并列的,依赖于一定的选择条件,分别完成不同的事务处理工作。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。
不同的事务处理模块可以共享一些操作模块。同样,不同的操作模块又可以共享一些细节模块。顶层模块是事务中心,事务中心下属由:输入模块、调度模块和输出模块。
事务型系统结构图在数据处理中经常遇到,但是更多的是变换型与事务型系统结构图的结合。例如,变换型系统结构中的某个变换模块本身又具有事务型的特点。
二、事务映射
在很多应用中,
存在某种作业数据流,它可以引发一个或多个处理。这种数据流就叫做事务。与变换映射类似,事务映射也是从分析数据流图开始,自顶向下,逐步分解,建立系统结构图。所不同的是由数据流图映射成的系统结构图不同。
步骤1:复审基本系统模型。
步骤2:复审和细化软件的数据流图。
步骤3:确定数据流图中含有变换流特征还是含有事务流特征 。以上三步与变换映射中的相应工作相同。
步骤4:识别事务中心和每一条操作路径上的流特征
。事务中心通常位于几条操作路径的起始点上,可以从数据流图上直接找出来。输入路径必须与其他所有操作路径区分开来。
步骤5:将数据流图映射到事务型系统结构图上
。事务流应映射到包含一个输入分支和一个分类事务处理分支的程序结构上。输入分支结构的开发与变换流的方法类似。分类事务处理分支结构包含一个调度模块,它调度和控制下属的操作模块。
步骤6:“因子化”分解和细化该事务结构和每一条操作路径的结构。每一条操作路径的数据流图由它自己的信息流特征,可以是变换流也可以是事务流。与每一条操作路径相关的子结构可以依照前面介绍的设计步骤进行开发。
步骤7:利用一些启发式原则来改进系统的初始结构图。
混合型分析
一些大型问题往往是以上两者的结合,这时候,
一般以变换型问题为主,首先找出变换中心,设计出结构图的上层;然后根据数据流图的各部分具体类型分别映射得到它们的结构图。