mis2006第5章_第1页
mis2006第5章_第2页
mis2006第5章_第3页
mis2006第5章_第4页
mis2006第5章_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 结构化设计方法5.1结构化设计方法概述5.1.1结构化设计方法的任务和目标在众多系统设计的方法中,结构化设计方法(structured design,SD)特别适合于开发管理信息系统。它与系统分析阶段使用的结构化分析方法(SA)和后继实施阶段使用的结构化程序设计方法(SP)都有很好的衔接性。结构化设计的基本思想是把系统设计成由若干相对独立且功能单一的模块组成的有机集合体。系统设计分为总体设计和详细设计两个阶段。总体设计主要决定系统的模块结构,而详细设计考虑的是每一个模块内部具体用什么算法。一般地,结构化设计属于总体设计,主要包括以下内容:(1)将系统划分成模块。(2)决定每个模块的功能

2、。(3)决定模块间的调用关系。(4)决定模块间信息的传递。结构化设计的目标是使系统模块化,并尽可能地减少模块间的联系,尽可能地增大模块内的联系。模块划分的好坏直接影响着系统结构,是个不容忽视的问题。结构化方法主要有以下4个特点:(1)采用功能分解的方法建立系统的物理结构。(2)采用标准的设计工具。 (3)系统中模块结构是树型的。 (4)有一组评价标准和质量优化技术。5.1.2结构化设计方法的设计原则 结构化设计方法要遵循以下7个原则:1. 简单性在达到系统预定的目标、具备所需要的功能的前提下,系统应当尽量简单。2. 灵活性 灵活性是指允许系统被修改和维护的难易程度。3. 一致性必须在系统分析和

3、设计的过程中,始终采用结构化一致性。这样有利于子系统之间以及多系统之间的联系与合作。因此,系统当中信息编码、采集、信息通信要具备一致性,设计规范应标准。由于系统是作为一个统一的整体而存在的,所以系统的功能应当尽量完整。4. 可靠性 系统的可靠性指系统硬件和软件在运行过程中抵抗异常情况的干扰及保证系统正常工作的能力。5. 经济性 系统的经济性是指系统的收益应大于系统支出的总费用。特别是对于管理信息系统,它的效益之中,有很大一部分效益不能以货币来衡量。6. 高效性系统的效率由以下3个指标来衡量:(1)处理能力,即在单位时间内处理的事务个数。(2)处理速度,即处理单个事务的平均时间。(3)响应时间,

4、即从发出处理要求到给出回答的时间的计算机实现时间。7. 安全性 系统的安全性是指系统的保密功能和防病毒功能。上述七个方面系统设计的原则,在一定程度上既是互相矛盾又是相辅相成的。例如,为了提高可靠性而采取各种校验和控制措施,则会延长机器工作时间,降低工作效率或提高成本;但是高的可靠性也使工作效率得到了保证。从系统开发和维护的角度考虑,系统的灵活性是最重要的指标。只有灵活性好,才能使系统容易被修改以满足对其他指标的要求,从而使系统始终具有较强的生命力。对于不同的系统,由于功能及系统目标的不同,对上述原则的要求会有所侧重。如对于联机检索系统,响应时间是最重要的指标;而对于银行系统,可靠性与安全性则是

5、首要考虑的因素。5.2子系统的划分与模块设计5.2.1子系统的划分原则结构化设计根据数据流程图和数据字典,借助一套标准的设计工具,自顶向下逐层分解,将一个复杂的系统设计转为若干个子系统和一系列基本模块的设计,从而使各子系统彼此独立,接口明确且简单,尽量适应用户的组织体系,有适当的共用性。通过长期的实践经验,人们摸索出了一套划分子系统的方法,划分时请注意以下原则:1. 子系统要具有相对独立性2. 提高共享的可能,减少数据的冗余3. 子系统应便于系统分阶段实现4. 子系统应易于扩展5. 应考虑合理并充分地利用各类资源5.2.2子系统划分方法总的来说,划分方法主要有6种,如表5-1 所示。1. 按业

6、务处理功能划分这是目前最常用的一种划分方法。把具有相同或相似的处理逻辑功能分在一个子系统里。例如,把“对所有业务输入数据进行编辑和校对”的功能放入一个子系统。那么不管是库存、财务还是人事,只要业务输入数据都由这个子系统来校对和编辑。2. 按先后顺序划分它的依据是系统分析阶段得到的业务流程分析的结果,这种划分方式在一些时间和处理过程顺序特别强的系统中常常采用。例如,库存管理系统总是遵循采购、入库、出库、销售和统计分析几个步骤的。这些步骤无法调换顺序,不采购就没有东西入库,同样仓库中不存在也就无法销售,整个过程是一环扣一环的。可以根据以上顺序将整个系统划分成采购子系统、入库子系统、出库子系统、销售

7、子系统和统计分析子系统。表 5-1 子系统的划分方法方法分类划分方式连接形式可修改性可读性紧凑性功能划分按业务处理功能划分好好好非常好顺序划分按业务先后顺序划分好好好非常好数据拟合按数据拟合的程度划分好好较好较好过程划分按业务处理过程划分中中较差一般时间划分按业务处理时间划分较差较差较差一般环境划分按实际环境和网络分布划分较差较差较差较差3. 按数据拟合程度划分把相互之间有较多数据传输的处理结合成一个子系统。这样可减少子系统与子系统间的通讯,使接口简单。这种划分方式的子系统内部内聚度强,外部通讯压力小。但也会对系统造成一定的影响,例如子系统划分的过大,即一个子系统完成的功能过多,不利于系统的集

8、成和管理。因此,注意在子系统的规模和通讯量中取得平衡。4. 按业务处理过程划分严格地说这不是一种很好的方式,但在某些系统开发资源限制较大的场合,特别是要分段实现开发工作时,不得已而被采用,即按工作流程划分。通常可能的原因是资金不够或者由于其他原因导致项目搁浅。这种划分方法将使得同一子系统的许多功能都相似的,可读性较差。5. 按业务处理时间划分把要在同一对间段执行的各种处理结合成一个子系统。可能子系统的功能并没有太多的联系,只是同一个时间要完成的两个或多个不同的功能。硬要放在一起,破坏了子系统的独立性,也容易由于并发控制难于解决而带来麻烦。6. 按实际环境和网络分布划分严格地说这也是不太合理的划

9、分方法,但在某些特定的场合也有这种划分的情况。5.2.3模块划分模块的主要目的是使得每个模块完成一个相对独立、单一的功能,从而降低复杂系统的开发难度,提高可维护性。一般说来,模块间的联系越复杂,相互之间的依赖程度越高,独立性就会越低,这是人们所不希望的。因此,模块独立性问题就显得尤为重要了。衡量模块的独立性程度有两个重要的指标:耦合和聚合。耦合,又称块间联系,它是用来衡量不同模块彼此之间互相依赖的紧密程度的。聚合,又称块内联系,它是用来衡量一个模块内部各个元素彼此结合的紧密程度的。1. 耦合根据模块之间接口的复杂程度、调用的方式和通过接口的信息,模块之间的连接方式可以分为数据耦合、控制耦合、公

10、共耦合和非法耦合4种方式。(1) 数据耦合数据耦合指的是两个模块彼此间通过参数交换信息且每一个参数仅仅为数据。也就是说,如果两个模块之间的传递的信息只是数据,则这种耦合方式称为数据耦合。例如,为了计算总成绩,“成绩管理”模块必须把各个单项成绩和各个单项成绩所占的百分比传输给“计算总成绩”模块,而“计算总成绩”模块将每一项成绩和它相应的百分比相乘,再累计求和得出总成绩,最后将总成绩送回到“输入成绩管理”模块。数据耦合还有另外一种方式,即两个模块彼此通过相同的模块特征进行连接,这是现在很常用的一种耦合方式。这种方式中,也存在数据传递,只是它不像刚才那样传递的是简单变量,而是像数组、结构体这样的数据

11、结构。这种耦合对系统的影响比较小,是一种较好的耦合方式,但为了减少接口的复杂性,应尽量防止传输不必要的数据。(2) 控制耦合如果两个模块之间传输的信息不仅有数据,还有控制信息,则该耦合方式称为控制耦合。传送的控制信息可分成两类:一类是判定参数,调用模块通过该判定参数控制被调用模块的工作方式,若判定参数出错则导致被调用模块按另一种方式工作;另一种是地址参数,调用模块直接转向被调用模块内部的某一地址,这时若改动一个模块则必将影响另一模块。因为控制耦合方式的耦合程度较高,应尽量避免采用地址参数的方式。控制耦合可以适当地转化为数据耦合。(3) 公共耦合 两个或两个以上的模块彼此通过一个公共的数据区域传

12、递信息,这种耦合方式可以大大提高编码效率。其中,公共信息可以是一个全局变量,可以是一个全局性的数据结构,可以是一段公共的程序代码,也可以是一个共享模块。公共耦合的图像解释如图 5-1 所示。(4) 非法耦合 两个模块之间,不经过任何调用关系,彼此直接使用或修改对方的数据,即一个模块直接调用另一个模块的内容。这将会给维护过程带来很大的不便,因此,设计中要禁止出现非法耦合。上述4种耦合方式的比较如表 5-2所示。设计时,要多使用数据耦合,必要时才使用控制耦合,对公共耦合的使用要谨慎并加以限制,严禁使用非法耦合。模块1模块2模块3模块4模块5模块7模块6共享区图 5-1 公共耦合表 5-2 各种耦合

13、方式的对比耦合方式数据耦合控制耦合公共耦合非法耦合相互影响程度弱中强很强可修改性好不好不好差可读性好不好差差通用性好不好差差2. 聚合 聚合主要包括以下7种方式。(1) 偶然聚合偶然聚合是指模块各组成部分之间毫无联系,只是为了减少运行速度而将它们拼凑在一起,整个模块如同一盘散沙。这种聚合可读性差,不易修改或维护。(2) 逻辑聚合将若干具有相似逻辑功能的成分聚合到一个模块中,这些成分有类似的处理动作,但往往在功能和用途上,彼此之间联系不紧密。例如,在“打印报表”模块中,有如图 5-2 所示的内部成分。打印报表 打印销售总表打印出库报表打印月统计报表打印入库报表打印年统计报表图 5-2 逻辑聚合

14、逻辑聚合的块内联系稍强于偶然聚合,但仍然很有限,不方便修改和维护。(3) 时间聚合一个模块内部的各个组成部分所包含的处理动作必须在同一时间内完成。例如,初始化各种变量,同时打开若干文件等等。再如,在做月统计报表时,它要从各个数据库中同时提取出数据,并备份到该模块中统计出该月份的月报表。时间聚合比逻辑聚合强,但时间聚合的紧凑性较低,修改性和维护性仍较差。(4) 过程聚合一个模块内部的各个组成部分的处理动作不相同,彼此之间也没有什么关系,但它们之间是有一个控制流来支配执行次序的。过程聚合模块通常是程序流程图直接演变的结果。一个控制流支配下的次序并不一定只是顺序结构,还可能有选择结构或循环结构。(5

15、) 通讯聚合一个模块内各组成部分的处理动作都使用了同一个输入数据或产生同一个输出数据,例如统计成绩时,输入全班的成绩,根据这一组数据,可以产生平均成绩、总成绩、最高分、最低分和5段统计成绩。这种聚合方式内部的紧凑性比过程聚合要强,但由于通讯聚合的各部分执行顺序是随机的,因此往往容易产生重复的动作。(6) 顺序聚合一个模块的各组成部分的处理动作的顺序具有一定的规则,某一成分的输出是下一个成分的输入,类似于流水线的工作过程。例如,对于银行的账目来说,总是先录入日进账和日出账,再汇总成每日账目明细,然后统计成月报表或年报表,最后打印成各类报表。这种聚合方式各成分之间关系比较紧密,与其他模块联系较少,

16、聚合程度较高,但是,它往往包含的功能很多,降低了模块的独立性。解决的办法是,将一个较大的顺序模块分解成几个较小规模的模块,模块与模块尽量采用数据耦合方式来耦合。(7) 功能聚合 一个模块只包含某个单一的功能,即所有成分都是为了完成某一个具体的任务而必须存在的,少了任何一个该任务都不可能完成。这样的聚合会使模块功能惟一,界面清楚,与其他模块的联系少,可读性、可修改性、维护性和可测试性都很好。而且,许多功能聚合方式的模块通过组合,可以集成为一个新的系统,对软件的复用大有好处。上述7种聚合方式的比较如表 5-3 所示。由此可见,应提倡采用聚合程度较好的顺序聚合方式和功能聚合方式。表 5-3 各种聚合

17、方式的比较类型偶然聚合逻辑聚合时间聚合过程聚合通信聚合顺序聚合功能聚合聚合形式差差不好中中好好可修改性差差不好中中好好可靠性差差差不好不好好好紧凑性013579105.3模块结构图 本节介绍了如何用图形来表达模块结构图,以及如何从数据流程图导出模块结构图的三种重要方法。5.3.1模块结构图的基本成分和表示法模块结构图是一种强有力的图形表达工具,用于表达系统内部各部分的结构和相互关系。常用的几种符号如图 5-4 所示。模块 循环调用 判断处理 数据传递和调用图 5-4 模块结构图的符号集在模块结构图中,用方框表示模块,并在方框中写上模块的名字,一个模块的名字应当反映出该模块功能。箭头表示模块间的

18、调用关系,箭头总是由调用模块指向被调用的模块。调用分成4种情况,即顺序调用、条件调用、循环调用和重复调用。顺序调用是指一个模块调用另一个模块的过程,如图 5-5 所示,A调用B和C。ABC图 5-5 顺序调用条件调用是指一个模块是否调用另一个模块决定于调用模块内部的判断条件,采用菱形符号表示。如图 5-6 所示,表示A有条件地调用B,C。ABC图 5-6 条件调用循环调用是指一个模块通过其内部的循环功能循环地调用一个或多个模块,采用弧形表示循环调用。如图 5-7 所示,表示A循环地调用B,C。ABC图 5-7 循环调用重复调用表示B被A调用,又被C模块调用。这样可以避免线条交叉过多,尤其是在复

19、杂的结构图中,采用圆表示该模块被多次调用,如图 5-8 所示。BAC图 5-8 重复调用5.3.2模块结构图的设计 模块结构图的设计方法是从数据流程图转化成模块结构图,具体有三种类型,即变换型、事务型以及混合型,下面分别来叙述这三种类型。1. 变换型如果数据流程图呈一种线性结构,通常会使用变换型方法导出模块结构图。它的功能是从某处获得数据,再对这些数据作处理,然后将结果送出。变换型是最常用的一种方式,它可以有多种输入,多个主变换,多个输出。具体方式是,首先提炼出数据流程图中的加工处理过程作为主模块,主加工模块的功能就是整个系统要做的工作。然后分别找出它的输入和输出,即确定它的输入模块和输出模块

20、。主加工模块是模块结构图的“顶”,现在就可按“自顶向下,逐步细化”的思想来画模块结构图顶下的各层了。每一层均需按输入、变换、输出等分支来处理。模块结构图第一层的画法是,首先为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据;然后为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出;最后为主处理画一个变换模块,其功能是把逻辑输入变换成逻辑输出。 该过程自顶向下递归进行,直到系统的物理输入端或物理输出端为止 例如有如图 5-9 所示的数据流程图,则相应的变换型模块结构图,如图 5-10 所示。账目明细采购信息入库单录入购买信息分类汇总编制报表报表录入卖出信息订货单出货单图 5-9

21、变换型数据流程图财务管理输入入库单分类汇总报表处理输入出库单输入校验输入校验编制打印查询图 5-10 变换型模块结构图2. 事务型当数据流呈现“束状”结构时,应采用事务分析的设计方法。即在数据流程图中,如果沿着输入到达某个处理,该处理根据输入的信息进行判断,在接下来的若干个动作中选择一个执行,具有这种结构的可以用事务型来分析。具体方法是,从一个分支到多个分支的地方可以视为分界点,分界点之前为主模块,分界点之后为子模块。对于每一个层次,都采用上述办法,自顶向下地一层层画出模块结构图。通常对事物进行分层、分类处理。一般事务型有4个层次:主模块层、事务层、操作层和共享层。例如有如图 5-11 所示的

22、数据流程图,则相应的事务型模块结构图,如图 5-12 所示。要输入的信息输入信息输入基本信息输入库存信息输入仓库信息输入客户信息输入产品信息入库单信息出库单信息图 5-11 事务型数据流程图企业库存信息管理基本信息管理库存信息管理产品信息管理仓库信息管理客户信息管理入库单管理出库单管理图 5-12 事务型模块结构图3. 混合结构分析对于规模较大的系统来说,这两种结构都存在,通常会将两种方法结合使用。以事务分析为主线,先找到系统总的输入、输出和主要的加工处理过程,画出上层结构。然后依次分解数据流程图的特点,相应地采用变换型或事务型分析方法将其转换为模块结构图。例如有如图 5-13 所示的数据流程图,则相应的混合型模块结构图,如图 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论