首页 理论教育 结构化设计技术

结构化设计技术

时间:2022-11-21 理论教育 版权反馈
【摘要】:功能模块结构图的导出指的是依照结构化设计思想和原则,怎样从数据流程图出发,导出系统的功能模块结构图。我们不妨假设利用以前的结构化分析方法已经得到了账务核算子系统的数据流程图,如图3-19所示。按照前面的结构化设计技术,对图3-19数据流程图中的数据流逐一进行分析,以确定系统的逻辑输入、逻辑输出及中心加工区。

三、结构化设计技术

(一)功能模块结构图的导出

功能模块结构图的导出指的是依照结构化设计思想和原则,怎样从数据流程图出发,导出系统的功能模块结构图。系统结构的标准形式有两种:变换型和事务型。因而结构化设计技术所使用的导出方法也有两种:事务分析设计方法和变换分析设计方法。下面分别作介绍。

1.事务分析设计方法

事务型的数据流程图是一种束状结构。即系统的业务处理有好几种,需要根据不同的判断结果,进行不同的业务处理,如图3-14所示。它将输入分解成一束平行的数据流,即输出流,那么位于平行源束,即输出流的起点B就是所谓的事务中心。确定了事务中心后,下一步就是将事务型的数据流程图映射成一个初始的模块结构图。映射的关键是确定事务中心的位置和它的范围,换句话说就是确定输入、输出的边界。为此,需要从物理输入端,即数据流源点处开始,逐步向中心位置移动,直到数据流不能被看成是系统的输入源为止,那么这个数据流就是中心的边界,此数据流之前的一个数据流就是系统的逻辑输入,它具有离数据源点处最远的特点。

img62

图3-14 事务型数据流程图

确定逻辑输出源的方法与上述类似,从数据终点即物理输出端开始,逐步向系统中心内部移动,直到数据流仍能被看成系统的输出源为止,那么该数据流就是逻辑输出源,它同样具有离物理输出端最远的特点。

应用上述方法,对图3-14事务型数据流程图进行事务分析,可知B是事务中心,A是输入源,C、D、E为输出源。通过以上方法可以找出一个或多个输入、输出流。

接下来进行数据流程图的映射,即导出初始的模块结构图。模块结构图是一种自顶向下、逐层分散的控制结构,当遇到一个事务中心时,该数据流程图就可映射成一个控制模块结构,以控制输入、事务中心、输出三种信息处理。图3-15表示了这种映射图,控制模块即事务控制位于结构的顶层,它协调第一层的两个模块A和B。输入控制模块A控制着输入信息的接受工作;发送者B是一个事务中心,它具有分析事务类型、协调或调度下属模块的功能。然后再将事务中心B所属的多条分支映射为其下属模块。

img63

图3-15 导出初始模块结构图

2.变换分析设计方法

首先,要确定是否为变换性的数据流程图。变换性数据流程图是一种线状结构,如图3-16(1)所示,图中较明显地由输入、中心加工和输出三部分组成。但实际情况,有些可能是混合型的,即数据流程图中既有变换型,又有事务型。那么,在进行分析时,要把握全局,从总体上确定一种类型即可。如图3-16(2)所示,从总体上判断,可以认为是变换型的;其次,同样需要确定中心加工的位置和它的范围,也就是确定输入、输出的边界。其确定方法与前述类似;第三,就是进行数据流程图的映射。这是一个逐级分解,形成分散控制的过程。当数据流程图是变换型时,数据流程图分解成一个信息处理机构,此机构控制着输入处理模块(控制并协调所有输入信息的接受工作)、变换中心处理模块(控制和协调所有变换工作)、输出处理模块Pc(控制和协调所有输出信息工作);最后,进行逐级分解。其做法是:将数据流程图中的各个具体加工映射成相应的信息处理机构(模块结构图)中的模块,先从加工中心的边界开始,沿输入向外移动,将输入源的所有信息处理,映射成输入处理的下属模块。同理,可将输出源的各个信息处理,映射成输出处理的各种下属模块。此后将加工中心的各个加工处理,映射成加工中心处理各种下属模块。

在图3-16中,数据流程图中的加工处理和模块结构图中的控制模块是相互对应的,控制模块间传递的数据与数据流程图中传递的数据,也是相互对应的。

img64

图3-16(1) 变换型数据流程图

img65

图3-16(2) 二级分解

下面我们从一个简单的账务核算流程图,按照上述变换分析的方法思路,导出其模块结构图。如图3-17是一个简单的账务核算流程(为标识方便,我们暂使用方型框来表示加工):

img66

图3-17 简化的账务核算流程图

我们先找出其加工中心为登账处理和报表编制,系统输入为凭证输入,系统输出为账簿、报表打印输出。根据以上分析,我们可得到系统顶层模块结构图。然后再对各模块设计其下层模块,从而得到简单的账务核算系统的模块结构图如图3-18所示。

img67

图3-18 账务核算模块结构图

(二)导出方法的使用步骤

在使用上述两种结构化设计技术的模块图导出方法时,通常按以下步骤进行:

(1)分析系统的人机界面。任何系统都存在着手工处理方式和计算机处理方式并存的问题,因此也就存在着人机界面并存的问题。解决人机界面的关键是确定其输入和输出,它决定了系统的职能范围。

输出界面的分析是按照手工需要的处理结果(账簿和报表)进行的。输入界面的分析则是根据数据来源的内容进行的。

(2)利用结构化设计技术从系统数据流程图出发导出模块结构图。

(3)模块图的补充。根据数据流程图导出的模块结构图是一个最基本的模块结构图,若从用户的角度看,其功能可能是很不完整的,必须做一定的补充。需要考虑的因素有:

可靠性与安全性。如针对密码维护、期末数据结转、初始化及断电后数据恢复等问题,应补充设置相应的模块。

②代码维护。代码的增、删、改在会计业务中是经常发生的。为满足用户的这种需要,必须要设置代码的维护模块。

③资料查询。会计数据的查询,也是会计业务中经常发生的工作,在会计信息系统开发时必须要考虑设置该类查询功能模块,以满足查询的需要。

另外,对其他可能出现的新问题和意外事故,也要有相应的模块来进行处理,以使系统具有更完整的功能。

(三)功能模块图中的模块说明

结构设计的最后一项工作,就是编写功能模块结构图中各模块的说明书。模块说明书是对每个模块的处理要求及内容进行的说明。模块说明书也称为程序说明书,它是程序员用来编写程序的依据。模块说明书所包含的主要内容如下:

(1)模块说明。说明该模块所在的系统和子系统名称及本模块名称,说明被选择的程序设计语言及所用环境。

(2)输入、输出数据和文件说明。包括文件名称、数据项名称,输入、输出设计,输入、输出数据,以及模块之间的接口关系等。

(3)处理概要说明。包括处理内容、处理过程和处理方法。

我们下面以一个简化了的“账务核算”系统模块说明为例,简述如下:

系统名称:会计信息系统

模块名称:账务核算子系统(即图3-18中标识的“主处理”)

直接上级模块:财务会计信息系统

输入:原始凭证或转账凭证

处理:包括除其他子系统设置的明细账(如存货明细账、固定资产卡片账、成本计算单等)以外的所有一、二、三级科目等设置的全部分类账、明细账和日记账的账务核算。

直接下属模块:凭证输入、审核、记账、结账、报表编制等。

输出:各种账簿、报表等。

(四)结构化设计技术使用举例——账务核算子系统功能模块结构图的设计

上面我们在介绍变换分析设计方法时,已经就简单的账务核算流程图分析了如何导出模块结构图的问题。下面我们再就较为复杂的账务核算流程图介绍这一导出过程,目的在于加强这一结构化设计技术的练习。我们不妨假设利用以前的结构化分析方法已经得到了账务核算子系统的数据流程图,如图3-19所示。以此我们来映射出其初始的模块结构图。

img68

图3-19 账务核算子系统数据流程图

1.确定系统的输入、输出与加工中心

按照前面的结构化设计技术,对图3-19数据流程图中的数据流逐一进行分析,以确定系统的逻辑输入、逻辑输出及中心加工区。

流入“凭证输入”加工的记账凭证是系统的原始输入,流入“凭证校验”加工的临时凭证文件是系统的输入,经过凭证校验后而流入“登日记账”、“登明细账”、“记明细表”、“凭证存储”等加工的凭证文件仍是系统输入。此外,流入“银行对账”加工的对账单是系统输入,流入的机制凭证文件也是系统的输入。但经过处理流入“日记账文件”、“明细账文件”、“明细表文件”的是属于内部的数据流,不再是系统输入,同理从系统输出(终点)开始,逆流而上逐步向系统内移动,离输出终点最远的就仍是系统的输出者,如“对账信息”、“凭证历史文件”、“日记账文件”、“明细账文件”和“明细表文件”等,都是系统输出。我们可以在逻辑输入流和逻辑输出流上,分别标以记号“×”,然后将这些记号用虚线连接起来,形成一个封闭区域,此区域就是系统的中心加工区,如图3-19所示。

上述系统可以相应的映射成初始模块结构图,三部分加工分别映射成输入控制模块、中心加工控制模块和输出控制模块的下属模块。如图3-20所示。

img69

图3-20 初始模块结构图

2.初始模块结构图的优化

(1)按优化原则进行优化

主要是根据模块间的低耦合高内聚原则对模块结构图进行优化,力求分解成功能性模块。按照这一原则对模块结构图中的模块逐一进行考察,凡不合要求的应加以改进。

图3-20中大部分模块均是功能性模块,但有些模块结构仍有改进余地。如“编制报表模块”可以分为统计报表库数据和按格式打印输出两部分功能。为降低模块间的耦合度,模块间的联系通过数据库耦合是较好的选择,这种耦合形式,无论是从模块向数据库写入数据还是从数据库读取数据,都不影响模块间的调用关系,因此模块间的数据库耦合使得耦合度最低。在系统设计时,已设计了凭证文件、临时凭证文件、日记账文件、明细账文件、明细表文件、总账文件等,这些库文件都起着耦合模块间关系的作用,由其生成的数据流在模块结构图中可不画出来。

为减弱模块间的联系,应使模块的影响范围包含在其相应的控制范围之内。如分析模块结构图中的“银行对账”功能,通过“取对账单”才能进行“银行对账“,另外只有在传递对账结果信息后,才能“打印调节表”,那么“取对账单”和“打印调节表”两个模块就应该是“银行对账”的影响范围,应该包含在“银行对账”模块控制的范围之内。但现在的“银行对账”在中心加工区,而“取对账单”在输入部分,“打印调节表”则在输出部分,均超出了控制范围,应予以改进。我们可将这两个模块放在“银行对账”模块的下面。这样改进的好处十分明显,去掉了“对账单”数据流和“对账信息”数据流对其他功能模块的耦合作用,提高了模块的独立性,降低了模块间的耦合度。

(2)增强对环境的适应能力

企业处于多变的环境之中,模块结构必须适应环境的变化才能使所设计出的系统具有较强的生命力,为此,系统应留有便于修改和扩充的接口以适应这种变化。如条件成熟,会计分录的工作也可能由计算机自动完成,又如开户银行也可能提供对账软盘等。以考虑软盘对账为例,可在“银行对账”模块下面接入“软盘对账”模块,并调整其功能,于是便得到两种对账模式,如图3-21所示。

img70

图3-21 优化的账务核算模块结构图

(3)增加系统维护功能

为适应系统安全可靠的需要,应考虑增设系统的维护功能。这通常包括初始化、口令维护、代码维护、数据字典维护和程序维护等内容。“系统维护”模块为系统第一层模块,应直接置于“总控”模块的控制之下,如图3-21所示。

(4)完善模块结构与会计工作内容的对应性

可进一步从功能上增强模块结构与会计事务的对应性,使模块结构更加完整清晰。如对图3-21中的“输入”模块,本身不具有任何数据处理能力,应该删除,而使“凭证校验”模块作为第一层,更名为“输入”或“输入及校验”更为确切,同时也可将“凭证保存”模块挂在它的下面;模块“中心加工”应予保留,对下属的五个模块应保留其账务处理的先后次序,由于它们都是围绕登账工作进行的,故将“中心加工”更名为“登账”更为确切;对于“输出”模块同“输入”模块的处理一样,也可去掉,使其下属的“打印凭证账册”、“编制报表”、“查询凭证账册”三个模块,都上升为第一层。通过以上的改进和优化,便得到图3-21所示的账务处理优化模块结构图。

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

我要反馈