《13讲系统设计系统模块结构设计的详细讲述课件》由会员分享,可在线阅读,更多相关《13讲系统设计系统模块结构设计的详细讲述课件(63页珍藏版)》请在金锄头文库上搜索。
1、主讲:宫小全主讲:宫小全 副教授副教授单位:北方交通大学经管学院信息管理系单位:北方交通大学经管学院信息管理系第第11-1311-13讲讲 管理信息系统的系统设计管理信息系统的系统设计( (系统模块结构设计的详细讲述系统模块结构设计的详细讲述) )管 理 信 息 系 统2系统模块结构设计系统模块结构设计 如前所述,总体结构设计的主要内容之一是如前所述,总体结构设计的主要内容之一是系统模块结构系统模块结构设计,其任务是设计,其任务是合理地进行模块的分解和定义,把合理地进行模块的分解和定义,把每个子每个子系统划分成一个个模块系统划分成一个个模块,并通过模块结构图把分解的模块,并通过模块结构图把分解
2、的模块按层次结构联系起来。按层次结构联系起来。模块与模块分解模块与模块分解模块结构图模块结构图 模块结构的标准形式模块结构的标准形式如何画模块结构图如何画模块结构图模块结构图的改进模块结构图的改进高内聚低耦合高内聚低耦合在改进模块结构图时还应注意的问题在改进模块结构图时还应注意的问题管 理 信 息 系 统3(一)(一)模块与模块分解模块与模块分解模块是组成系统的基本单位,它的特点是可以组合、分解模块是组成系统的基本单位,它的特点是可以组合、分解和更换。和更换。系统中任何一个处理功能都可以看成是一个模块。根据模系统中任何一个处理功能都可以看成是一个模块。根据模块功能具体化程度的不同,可以分为逻辑
3、模块和物理模块。块功能具体化程度的不同,可以分为逻辑模块和物理模块。在系统逻辑模型中定义的处理功能可视为逻辑模块。在系统逻辑模型中定义的处理功能可视为逻辑模块。物理模块是逻辑模块的具体化,可以是一个计算机程序、物理模块是逻辑模块的具体化,可以是一个计算机程序、子程序或若干条程序语句,也可以是人工过程的某项具体子程序或若干条程序语句,也可以是人工过程的某项具体工作。工作。1、概述、概述管 理 信 息 系 统4(一)(一)模块与模块分解模块与模块分解2、模块的四个要素、模块的四个要素输入和输出输入和输出处理功能处理功能内部数据内部数据程序代码程序代码管 理 信 息 系 统5(一)(一)模块与模块分
4、解模块与模块分解3 3、模块分解、模块分解系统逻辑模型中数据流图中的模块是逻辑处理模系统逻辑模型中数据流图中的模块是逻辑处理模块,模型中没有说明模块的物理构成和实现途径,块,模型中没有说明模块的物理构成和实现途径,同时也看不出模块的层次分解关系,为此在系统同时也看不出模块的层次分解关系,为此在系统结构设计中要将数据流图上的各个逻辑处理模块结构设计中要将数据流图上的各个逻辑处理模块进一步分解,用模块结构图确定系统的层次结构进一步分解,用模块结构图确定系统的层次结构关系,并将系统的逻辑模型转变为物理模型。关系,并将系统的逻辑模型转变为物理模型。管 理 信 息 系 统6(一)(一)模块与模块分解模块
5、与模块分解3 3、模块分解、模块分解(1 1)划分模块的依据)划分模块的依据 一个合理的子系统或模块划分,应该是子系统或一个合理的子系统或模块划分,应该是子系统或模块内部联系强,子系统或模块间尽可能独立,模块内部联系强,子系统或模块间尽可能独立,接口明确、简单,尽量适应用户的组织体系,有接口明确、简单,尽量适应用户的组织体系,有适当的共用性。适当的共用性。管 理 信 息 系 统7(一)(一)模块与模块分解模块与模块分解3 3、模块分解、模块分解(2)模块分解的方式)模块分解的方式 按逻辑划分:把相类似的处理逻辑功能放在一个模按逻辑划分:把相类似的处理逻辑功能放在一个模块里。块里。 按时间划分按
6、时间划分 按过程划分按过程划分 按通信划分按通信划分 按职能划分按职能划分按职能划分按职能划分子系统、按逻辑划分子系统、按逻辑划分模块模块所形成的系统所形成的系统管 理 信 息 系 统9(二)模块结构图(二)模块结构图模块结构图是把分解的一个个模块按层次结构联模块结构图是把分解的一个个模块按层次结构联系起来的图。系起来的图。模块结构图是结构化设计中描述系统结构的图形模块结构图是结构化设计中描述系统结构的图形工具。作为一种文档,它必须严格地定义模块的工具。作为一种文档,它必须严格地定义模块的名字、功能和接口,同时还应当在模块结构图上名字、功能和接口,同时还应当在模块结构图上反映出结构化设计的思想
7、。反映出结构化设计的思想。序号序号名称名称符符 号号含含 义义 说说 明明1 1模块模块表示一个功能模块,模块名称标注在方框的内部表示一个功能模块,模块名称标注在方框的内部2 2预定义预定义表示一个预先定义的模块,模块名称标注在方框的内部,预先定义表示一个预先定义的模块,模块名称标注在方框的内部,预先定义模块是指不必在编程实现的模块,通常是应用程序中的一个程序。模块是指不必在编程实现的模块,通常是应用程序中的一个程序。3 3调用调用表示模块与模块之间的调用关系,箭头部分指示被调用模块,箭尾表示模块与模块之间的调用关系,箭头部分指示被调用模块,箭尾部分指示调用模块。部分指示调用模块。4 4数据数
8、据表示模块与模块之间的数据流,数据项名称或编号标注在旁边。表示模块与模块之间的数据流,数据项名称或编号标注在旁边。5 5控制信息控制信息表示模块与模块之间的控制流,控制变量的名称或编号标注在旁边。表示模块与模块之间的控制流,控制变量的名称或编号标注在旁边。6 6判断分支判断分支表示模块内部包含有判断逻辑,根据判定结果调用哪些功能模块。表示模块内部包含有判断逻辑,根据判定结果调用哪些功能模块。7 7循环调用循环调用表示模块内部包含有循环调用某个或某些模块的功能。表示模块内部包含有循环调用某个或某些模块的功能。8 8转接转接模块结构图需要转接到另外一张纸上,或为了避免图上线条交叉时,模块结构图需要
9、转接到另外一张纸上,或为了避免图上线条交叉时,都可使用转接符号,圆圈内加上标号。都可使用转接符号,圆圈内加上标号。管 理 信 息 系 统11(二)模块结构图(二)模块结构图1、模块、模块 系统设计中所说的模块为物理模块,通常是指用一个名系统设计中所说的模块为物理模块,通常是指用一个名字就可以调用的一段程序语句。字就可以调用的一段程序语句。用长方形框表示一个模块,对于现成的模块,则以双纵边矩用长方形框表示一个模块,对于现成的模块,则以双纵边矩形框表示。形框表示。长方形中间标上模块名,模块名通常由一个动词和一个作为长方形中间标上模块名,模块名通常由一个动词和一个作为宾语的名词组成。宾语的名词组成。
10、模块的名字应当能够表明该模块的功能。模块的名字应当能够表明该模块的功能。模块的表示模块的表示管 理 信 息 系 统12(二)模块结构图(二)模块结构图2 2、调用、调用在模块结构图中,用联接两个模块的箭头表示调用,箭头总是由调用在模块结构图中,用联接两个模块的箭头表示调用,箭头总是由调用模块指向被调用模块,但是应该理解成被调用模块执行后又返回到调模块指向被调用模块,但是应该理解成被调用模块执行后又返回到调用模块。用模块。如果一个模块是否调用一个从属模块,决定于调用模块内部的判断条如果一个模块是否调用一个从属模块,决定于调用模块内部的判断条件,则该调用称为判断调用。件,则该调用称为判断调用。如果
11、一个模块通过其内部的循环功能来循环调用一个或多个从属模块如果一个模块通过其内部的循环功能来循环调用一个或多个从属模块, ,则该调用称为循环调用则该调用称为循环调用。模块调用模块调用管 理 信 息 系 统13(二)模块结构图(二)模块结构图3 3、数据、数据当一个模块调用另一个模块时,调用模块可以把数据传送当一个模块调用另一个模块时,调用模块可以把数据传送到被调用模块处供处理,而被调用模块又可以将处理的结到被调用模块处供处理,而被调用模块又可以将处理的结果数据送回到调用模块。果数据送回到调用模块。管 理 信 息 系 统14(二)模块结构图(二)模块结构图4 4、控制信息、控制信息为了指导程序下一
12、步的执行,模块间有时还必须传送某些为了指导程序下一步的执行,模块间有时还必须传送某些控制信息,例如,数据输入完成后给出的结束标志,文件控制信息,例如,数据输入完成后给出的结束标志,文件读到末尾所产生的文件结束标志等。读到末尾所产生的文件结束标志等。控制信息与数据的主要区别是前者只反映数据的某种状态,控制信息与数据的主要区别是前者只反映数据的某种状态,不必进行处理。不必进行处理。管 理 信 息 系 统15(二)模块结构图(二)模块结构图5 5、转接符号、转接符号当模块结构图在一张图面上画不下,需要转接到另外一张当模块结构图在一张图面上画不下,需要转接到另外一张纸上,或为了避免图上线条交叉时,都可
13、使用转接符号,纸上,或为了避免图上线条交叉时,都可使用转接符号,圆圈内加上标号,如圆圈内加上标号,如图图所示。所示。 转接符号的使用转接符号的使用管 理 信 息 系 统16(三)模块结构图的标准形式(三)模块结构图的标准形式 一个系统的模块结构图有两种标准形式一个系统的模块结构图有两种标准形式: :q变换型模块结构变换型模块结构q事务型模块结构事务型模块结构管 理 信 息 系 统17(三)模块结构图的标准形式(三)模块结构图的标准形式1 1、变换型模块结构、变换型模块结构变换型模块结构描述的是变换型系统,变换型系统变换型模块结构描述的是变换型系统,变换型系统由三部分组成:由三部分组成:输入输入
14、数据加工(中心变换)数据加工(中心变换)输出输出变换型模块的功能是将输入的数据经过加工后输出。变换型模块的功能是将输入的数据经过加工后输出。变换型系统工作的顺序:变换型系统工作的顺序:首先主模块受到控制,然后控制沿着结构逐层达到底层的输入模块,当底层模块首先主模块受到控制,然后控制沿着结构逐层达到底层的输入模块,当底层模块输入数据后,由下至上逐层传送,逐步由输入数据后,由下至上逐层传送,逐步由“物理输入物理输入”变成变成“逻辑输入逻辑输入”C C;在主控模块控制下,在主控模块控制下, “ “逻辑输入逻辑输入”经中心变换模块转换成经中心变换模块转换成“逻辑输出逻辑输出”D D,D D再由上至下逐
15、层传送,逐步把再由上至下逐层传送,逐步把“逻辑输出逻辑输出”变成变成“物理输出物理输出”E E。 这里的这里的“逻辑输入逻辑输入”和和“逻辑输出逻辑输出”分别为系统主处理的输入数据流和输出数分别为系统主处理的输入数据流和输出数据流,而据流,而“物理输入物理输入”和和“物理输出物理输出”是指系统输入端和系统输出端的数据。是指系统输入端和系统输出端的数据。管 理 信 息 系 统19(三)模块结构图的标准形式(三)模块结构图的标准形式2、事务型模块结构、事务型模块结构事务型系统由三层组成:事务型系统由三层组成:事务层事务层操作层操作层细节层细节层 事务型模块的功能是对接收的事务,按其类型选事务型模块
16、的功能是对接收的事务,按其类型选择某一类事务处理。择某一类事务处理。事务型系统工作的顺序:事务型系统工作的顺序:主模块将按事务的类型选择调用某一事务处理模块,主模块将按事务的类型选择调用某一事务处理模块,事务处理模块又调用若干个操作模块,而每个操作模块又调用若干个细节模块。事务处理模块又调用若干个操作模块,而每个操作模块又调用若干个细节模块。 在实际系统中,由于不同的事务可能有共同的操作,而不同操作又可能有共同在实际系统中,由于不同的事务可能有共同的操作,而不同操作又可能有共同的细节,因此事务型系统的操作模块和细节模块可以达到一定程度的共享。的细节,因此事务型系统的操作模块和细节模块可以达到一
17、定程度的共享。变换型和事务型模块结构都有较高的模块内聚和较低的块间耦合,因此便于修变换型和事务型模块结构都有较高的模块内聚和较低的块间耦合,因此便于修改和维护。在管理信息系统中,经常将这两种结构结合使用。改和维护。在管理信息系统中,经常将这两种结构结合使用。管 理 信 息 系 统21(四)如何画初始的模块结构图(四)如何画初始的模块结构图 下面介绍通过下面介绍通过“变换分析变换分析”和和“事务分析事务分析”技术,技术,导出导出“变换型变换型”和和“事务型事务型”初始结构图的方法。初始结构图的方法。q变换分析变换分析q事务分析事务分析q混合结构的分析混合结构的分析管 理 信 息 系 统22(四)
18、如何画初始的模块结构图(四)如何画初始的模块结构图1、数据流图的两种典型结构、数据流图的两种典型结构系统分析阶段,我们采用结构化分析方法得到了由数据流系统分析阶段,我们采用结构化分析方法得到了由数据流图、数据字典和加工说明等组成的系统的逻辑模型。现在,图、数据字典和加工说明等组成的系统的逻辑模型。现在,可根据一些规则从数据流图导出系统初始的模块结构图。可根据一些规则从数据流图导出系统初始的模块结构图。管理信息系统的数据流图通常也可分为两种典型的结构管理信息系统的数据流图通常也可分为两种典型的结构:变换型结构和事务型结构。变换型结构和事务型结构。管 理 信 息 系 统23(四)如何画初始的模块结
19、构图(四)如何画初始的模块结构图1、数据流图的两种典型结构、数据流图的两种典型结构变换型结构变换型结构: : 变变换换型型结结构构的的数数据据流流图图呈呈一一种种线线性性状状态态,它它所所描描述述的的工工作作可可表示为:输入、主处理、输出。表示为:输入、主处理、输出。管 理 信 息 系 统24(四)如何画初始的模块结构图(四)如何画初始的模块结构图1、数据流图的两种典型结构、数据流图的两种典型结构事务型结构事务型结构: : 事事务务型型结结构构的的数数据据流流图图则则呈呈束束状状形形,即即一一束束数数据据流流平平行行流流入或流出,可能同时有几个事务要求处理。入或流出,可能同时有几个事务要求处理
20、。管 理 信 息 系 统25(四)如何画初始的模块结构图(四)如何画初始的模块结构图1、数据流图的两种典型结构、数据流图的两种典型结构上述两种典型的数据流图结构分别可通过上述两种典型的数据流图结构分别可通过“变换变换分析分析”和和“事务分析事务分析”技术,导出技术,导出“变换型变换型”和和“事务型事务型”初始的模块结构图。初始的模块结构图。这两种方法的思想是首先设计顶层模块,然后自这两种方法的思想是首先设计顶层模块,然后自顶向下,逐步细化,最后得到一个满足数据流图顶向下,逐步细化,最后得到一个满足数据流图所表示的用户要求的系统的模块结构图,即系统所表示的用户要求的系统的模块结构图,即系统的物理
21、模型。的物理模型。管 理 信 息 系 统26(四)如何画初始的模块结构图(四)如何画初始的模块结构图 2 2、“变换分析变换分析”技术技术 因为变换型结构由输入,主处理和输出三部分组因为变换型结构由输入,主处理和输出三部分组成,所以从变换型结构的数据流图导出变换型模成,所以从变换型结构的数据流图导出变换型模块结构图,可分三步进行。块结构图,可分三步进行。q找出系统的主加工找出系统的主加工q设计顶层模块和第一层模块设计顶层模块和第一层模块q设计中、下层模块设计中、下层模块(1 1)找出系统的主加工)找出系统的主加工为了处理方便,先不考虑数据流图中的一些支流,如出错处理等。为了处理方便,先不考虑数
22、据流图中的一些支流,如出错处理等。通常在数据流图中多股数据流的汇合处理往往是系统的主加工。通常在数据流图中多股数据流的汇合处理往往是系统的主加工。若没有明显的汇合处,则可先确定哪些数据流是逻辑输入和逻辑输出,若没有明显的汇合处,则可先确定哪些数据流是逻辑输入和逻辑输出,从而获得主加工。从而获得主加工。(2 2)设计顶层模块和第一层模块)设计顶层模块和第一层模块q顶层模块:顶层模块:首先在与主加工对应的位置上画出主模块首先在与主加工对应的位置上画出主模块, ,主模块的功能就是整个系统主模块的功能就是整个系统要做的工作,主模块又称为主控制模块。要做的工作,主模块又称为主控制模块。主模块是模块结构图
23、的主模块是模块结构图的“顶顶”。现在我们就可按现在我们就可按“自顶向下,逐步细化自顶向下,逐步细化”的思想来画模块结构图顶下的的思想来画模块结构图顶下的各层了。每一层均需按输入、变换、输出等分支来处理。各层了。每一层均需按输入、变换、输出等分支来处理。为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据。为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据。为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出。为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出。为主处理画一个变换模块,其功能是把逻辑输入变换成逻辑输出。为主处理画一个变换模块,其功能是把逻辑输入变换
24、成逻辑输出。 至至此此,结结构构图图第第一一层层就就完完成成了了。在在作作图图时时应应注注意意主主模模块块与与第第一一层层模模块块之之间间传送的数据,要与数据流图相对应。传送的数据,要与数据流图相对应。(2 2)设计顶层模块和第一层模块)设计顶层模块和第一层模块q第一层模块第一层模块(3 3)设计中层模块和下层模块)设计中层模块和下层模块因为输入模块的功能是向调用它的模块提供数据,所以它自已也需要一个数因为输入模块的功能是向调用它的模块提供数据,所以它自已也需要一个数据来源。此外,输入模块必须向调用模块提供所需的数据,因此它应具有变换据来源。此外,输入模块必须向调用模块提供所需的数据,因此它应
25、具有变换功能,能够将输入数据按模块的要求进行变换后,再提交该调用模块。从而,功能,能够将输入数据按模块的要求进行变换后,再提交该调用模块。从而,要为每个输入模块设计两个下层模块,其中一个是输入模块,另一个是变换模要为每个输入模块设计两个下层模块,其中一个是输入模块,另一个是变换模块。块。同理,也为每个输出模块设计两个下层模块,一个是变换模块,将同理,也为每个输出模块设计两个下层模块,一个是变换模块,将调用模块所提供的数据变换成输出的形式,另一个是输出模块,将变调用模块所提供的数据变换成输出的形式,另一个是输出模块,将变换后的数据输出。该过程由顶向下递归进行,直到系统的物理输入端换后的数据输出。
26、该过程由顶向下递归进行,直到系统的物理输入端或物理输出端为止。或物理输出端为止。每设计出一个新模块,应同时给它起一个能反映模块功能的名字。每设计出一个新模块,应同时给它起一个能反映模块功能的名字。管 理 信 息 系 统32(四)如何画初始的模块结构图(四)如何画初始的模块结构图3、“事务分析事务分析”技术技术 当数据流图呈现当数据流图呈现“束状束状”结构时,应采用事务分结构时,应采用事务分析的设计方法。就步骤而言该方法与变换分析方法析的设计方法。就步骤而言该方法与变换分析方法大部分类似,主要差别在于由数据流图到模块结构大部分类似,主要差别在于由数据流图到模块结构的影射方式不同。的影射方式不同。
27、 进行事务分析时,通常采用以下四步:进行事务分析时,通常采用以下四步:确定以事务为中心的结构,包括找出事务中心和事务来源。如图所示的典型事确定以事务为中心的结构,包括找出事务中心和事务来源。如图所示的典型事务型数据流结构为例,是事务中心,则为事务来源。务型数据流结构为例,是事务中心,则为事务来源。按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。为每个事务处理模块建立全部的操作层模块。其建立方法与变换分析方法类似,为每个事务处理模块建立全部的操作层模块。其建立方法与变换分析方法类似,但事务处理模决可以共享某些操作模块。但
28、事务处理模决可以共享某些操作模块。若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享。操作模块共享。A AX X下图是一个以事务为中心的数据流图,显然,加工下图是一个以事务为中心的数据流图,显然,加工“确定事务类型确定事务类型”是它的是它的事务中心,由该数据流图经事务分析可得到的模块结构图如图所示事务中心,由该数据流图经事务分析可得到的模块结构图如图所示。4 4、混合结构的分析、混合结构的分析在规模较大的实际系统中,其数据流图往往是变换型和事在规模较大的实际系统中,其数据流图往往是变换型和事务型的
29、混合结构。此时可把变换分析和事务分析应用在同一务型的混合结构。此时可把变换分析和事务分析应用在同一数据流图的不同部分。数据流图的不同部分。例如,可以以例如,可以以“变换分析变换分析”为主,为主,“事务分析事务分析”为辅进行为辅进行设计。先找出主处理,设计出结构图的上层,然后根据数据设计。先找出主处理,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用流图各部分的结构特点,适当选用“变换分析变换分析”或或“事务分事务分析析” 就可得出初始结构图的某个方案。就可得出初始结构图的某个方案。其中第一层是用变换分析得到的,而模块其中第一层是用变换分析得到的,而模块“使使b b变成变成d d”
30、及及下层模块和模块下层模块和模块“变变d d为为g g” 及下层模块则是采用事务分析及下层模块则是采用事务分析得到的。得到的。变换型和事务型混合变换型和事务型混合结构的模块结构图结构的模块结构图课堂练习课堂练习: :1.1.将下面给定的数据流图转换为相应的初始将下面给定的数据流图转换为相应的初始模块结构图模块结构图xy课堂练习课堂练习: : 2.2.将下面给定的数据流图转换为相应的初将下面给定的数据流图转换为相应的初始模块结构图始模块结构图管 理 信 息 系 统39(五)模块结构图的改进(五)模块结构图的改进1 1、模块耦合和内聚的概念、模块耦合和内聚的概念一个模块内部的联系称为块内联系,穿越
31、模块一个模块内部的联系称为块内联系,穿越模块边界的联系称为块间联系。边界的联系称为块间联系。耦合是表示模块之间联系的程度;内聚则用来耦合是表示模块之间联系的程度;内聚则用来表示模块内部各成分之间的联系程度。表示模块内部各成分之间的联系程度。紧密耦合表示模块之间联系非常强,松散耦合表示紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任模块之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。何联系,是完全独立的。模块设计的标准:高内聚低耦合。模块设计的标准:高内聚低耦合。管 理 信 息 系 统40(五)模块结构图的改进(五)模块结构图的改进2 2、模
32、块的耦合方式、模块的耦合方式 数据耦合数据耦合 控制耦合控制耦合 非法耦合非法耦合(1 1)数据耦合)数据耦合如果两个模块之间的通信信息是若干数据项,则这种耦合方如果两个模块之间的通信信息是若干数据项,则这种耦合方式称为数据耦合。式称为数据耦合。例如,为了计算实发工资,例如,为了计算实发工资,“计算工资计算工资”模块必须把工资模块必须把工资总额和扣款数传输给总额和扣款数传输给“计算实发工资计算实发工资”模块,而模块,而“计算实计算实发工资发工资”模块在算出实发工资后又送回到模块在算出实发工资后又送回到“计算工资计算工资”模模块。块。这种耦合对系统的影响比较小,是一种较好的耦合方式,这种耦合对系
33、统的影响比较小,是一种较好的耦合方式,但为了减少接口的复杂性,应尽量防止传输不必要的数据。但为了减少接口的复杂性,应尽量防止传输不必要的数据。2、模块的耦合方式、模块的耦合方式(2 2)控制耦合)控制耦合如果两个模块之间传输的信息是控制信息,则该耦合称为控如果两个模块之间传输的信息是控制信息,则该耦合称为控制耦合。制耦合。传送的控制信息可分成两类,一类是判定参数,调用模传送的控制信息可分成两类,一类是判定参数,调用模块通过该判定参数控制被调用模块的工作方式,若判定块通过该判定参数控制被调用模块的工作方式,若判定参数出错则导致被调用模块按另一种方式工作。参数出错则导致被调用模块按另一种方式工作。
34、另一种是地址参数,调用模块直接转向被调用模块内部另一种是地址参数,调用模块直接转向被调用模块内部的某一些地址,这时若改动一个模块则必将影响另一模的某一些地址,这时若改动一个模块则必将影响另一模块。块。因为控制耦合方式的耦合程度较高,应尽量避免采用地因为控制耦合方式的耦合程度较高,应尽量避免采用地址参数的方式。址参数的方式。2、模块的耦合方式、模块的耦合方式(3)非法耦合)非法耦合 两个模块之间,不经过调用关系,彼此直接使用或修改对两个模块之间,不经过调用关系,彼此直接使用或修改对方的数据。方的数据。2、模块的耦合方式、模块的耦合方式管 理 信 息 系 统44(五)模块结构图的改进(五)模块结构
35、图的改进3 3、模块的内聚方式、模块的内聚方式q功能内聚功能内聚q顺序内聚顺序内聚q通信内聚通信内聚q过程内聚过程内聚q逻辑内聚逻辑内聚q巧合内聚巧合内聚耦合度耦合度 性能性能低低 好好高高 坏坏(1 1)功能内聚)功能内聚功能内聚表示模块中各成分的联系是功能性的,功能内聚表示模块中各成分的联系是功能性的,即一个模块执行一个功能,且完成该功能所必须即一个模块执行一个功能,且完成该功能所必须的全部成分都包含在模块中。的全部成分都包含在模块中。例如,计算工资、打印月报表等。由于这类模例如,计算工资、打印月报表等。由于这类模块的功能明确、模块间的耦合简单,所以便于块的功能明确、模块间的耦合简单,所以
36、便于维护。我们在系统设计时应力求按功能划分模维护。我们在系统设计时应力求按功能划分模块。块。3、模块的内聚方式、模块的内聚方式(2 2)顺序内聚)顺序内聚顺序内聚是指模块中各成分有顺序关系,某一成分顺序内聚是指模块中各成分有顺序关系,某一成分的输出是另一成分的输入。的输出是另一成分的输入。 例如,例如,“录入和汇总录入和汇总”模块、模块、“统计和打印统计和打印”模块都是顺序内聚模块。顺序内聚的模块中有可模块都是顺序内聚模块。顺序内聚的模块中有可能包含几个功能,因而会给维护带来不便。能包含几个功能,因而会给维护带来不便。3、模块的内聚方式、模块的内聚方式(3 3)通信内聚)通信内聚通信内聚是指模
37、块中各成分引用或产生共同的数通信内聚是指模块中各成分引用或产生共同的数据。据。例如报表打印模块,各成分都从若干共同的数例如报表打印模块,各成分都从若干共同的数据来源接收数据,然后转换、汇总并打印出各据来源接收数据,然后转换、汇总并打印出各种报表。种报表。3、模块的内聚方式、模块的内聚方式(4 4)过程内聚)过程内聚过程内聚是指一个模块内各组成部分的处理动作各不相同,过程内聚是指一个模块内各组成部分的处理动作各不相同,彼此也没有什么关系,但他们受同一个控制流支配,决定他彼此也没有什么关系,但他们受同一个控制流支配,决定他们的执行次序。们的执行次序。过程内聚是由一段公共的处理过程组合成的模块。过程
38、内聚是由一段公共的处理过程组合成的模块。例如,把处理过程中的所有循环部分,判定部分和顺序执例如,把处理过程中的所有循环部分,判定部分和顺序执行部分划分到一个模块,则它们都是过程内聚的,过程内行部分划分到一个模块,则它们都是过程内聚的,过程内聚的内部结构一般是由程序流程图直接演变出来的。聚的内部结构一般是由程序流程图直接演变出来的。显然,采用过程内聚时,模块间的耦合度比较高。显然,采用过程内聚时,模块间的耦合度比较高。 3、模块的内聚方式、模块的内聚方式(5 5)逻辑内聚)逻辑内聚逻辑内聚是指模块各成分的逻辑功能是相似的。逻辑内聚是指模块各成分的逻辑功能是相似的。例如,把系统中与例如,把系统中与
39、“输出输出”有关的操作抽取出有关的操作抽取出来组成一个模块,包括将数据在屏幕上显示、来组成一个模块,包括将数据在屏幕上显示、从打印机上打印、拷贝到磁盘上等,则该模块从打印机上打印、拷贝到磁盘上等,则该模块就是逻辑内聚的。就是逻辑内聚的。逻辑内聚的内聚程度稍强于巧合内聚,但仍不逻辑内聚的内聚程度稍强于巧合内聚,但仍不利于修改和维护。利于修改和维护。3、模块的内聚方式、模块的内聚方式(6 6)巧合内聚)巧合内聚巧合内聚是指模块各成分之间毫无联系整巧合内聚是指模块各成分之间毫无联系整个模块如同一盘散沙,不易修改或维护个模块如同一盘散沙,不易修改或维护。3、模块的内聚方式、模块的内聚方式管 理 信 息
40、 系 统51(五)模块结构图的改进(五)模块结构图的改进4 4、耦合和内聚的关系、耦合和内聚的关系一般说来,在系统中各模块的内聚越大,则模块一般说来,在系统中各模块的内聚越大,则模块间的耦合越小。但这种关系并不是绝对的。间的耦合越小。但这种关系并不是绝对的。耦合小使得模块间尽可能相对独立,从而各模块耦合小使得模块间尽可能相对独立,从而各模块可以单独开发和维护。可以单独开发和维护。内聚大使得模块的可理解性和维护性大大增强。内聚大使得模块的可理解性和维护性大大增强。管 理 信 息 系 统52(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题q 作用范围与控制范围作用范围与
41、控制范围q 模块的扇入和扇出数模块的扇入和扇出数q 模块分解和模块的大小模块分解和模块的大小q 消除重复的功能消除重复的功能q 补充、完善和修改补充、完善和修改管 理 信 息 系 统53(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题1 1、作用范围与控制范围、作用范围与控制范围一个判定的一个判定的作用范围作用范围是指所有是指所有受这个判定影响的模块。按照受这个判定影响的模块。按照规定:若模块中只有一小部分规定:若模块中只有一小部分加工依赖于某个规定,则该模加工依赖于某个规定,则该模块仅仅本身属于这个判定的作块仅仅本身属于这个判定的作用范围;若整个模块的执行取用范围
42、;若整个模块的执行取决于这个判定,则该模块的调决于这个判定,则该模块的调用模块也属于这个判定作用范用模块也属于这个判定作用范围。围。一个模块的一个模块的控制范围控制范围是指模块是指模块本身及其所有的下属模块。本身及其所有的下属模块。M MA AG GB BC CD DF FE E管 理 信 息 系 统54(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题分析判定的作用范围和模块的控制范围之间的关系,分析判定的作用范围和模块的控制范围之间的关系,可以较好地处理系统的模块关系,合理地分解模块。可以较好地处理系统的模块关系,合理地分解模块。因此,在分解模块时应该满足以下要求
43、:因此,在分解模块时应该满足以下要求:判定的作用范围应该在判定所在模块的控制范围之内;判定的作用范围应该在判定所在模块的控制范围之内;判定所在模块在模块层次结构中的位置不能太高;判定所在模块在模块层次结构中的位置不能太高;根据以上两点可知,最理想的模块分解是判定范围根据以上两点可知,最理想的模块分解是判定范围由判定所在模块及其直接下层模块组成。由判定所在模块及其直接下层模块组成。顶顶1顶顶122(a)(b)作用范围和控制范围的四种关系作用范围和控制范围的四种关系顶顶XY12顶顶XY12(c)(d)作用范围和控制范围的四种关系作用范围和控制范围的四种关系管 理 信 息 系 统57(六)在改进模块
44、结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题当出现作用范围不在控制范围之内时,可以当出现作用范围不在控制范围之内时,可以用以下措施纠正:用以下措施纠正:把判定所在的模块合并至上层模块中,或把判定所在的模块合并至上层模块中,或从低层模块移到高层模块使判定的位置提从低层模块移到高层模块使判定的位置提高;高;把受判定影响的模块移到模块控制范围之把受判定影响的模块移到模块控制范围之内。内。练习题:请同学们讨论下图模块设计存在问练习题:请同学们讨论下图模块设计存在问题并改正题并改正顶顶1 12 2顶顶1 12 2图图 1 1图图 2 2管 理 信 息 系 统59(六)在改进模块结构图时还
45、应注意的问题(六)在改进模块结构图时还应注意的问题2 2、模块的扇入和扇出数、模块的扇入和扇出数模块的扇入数是指有多少个上级模块直接调用该模块。模块的扇入数是指有多少个上级模块直接调用该模块。 扇出数是指某个模块直接控制或调用的模块树目。扇出数是指某个模块直接控制或调用的模块树目。B BC CD DA AA AB BC CD D如图如图中模块的扇入数等于中模块的扇入数等于3 3。如果一个规模很小的底层模块的扇入数为。如果一个规模很小的底层模块的扇入数为1 1,则可以把它合并到它的上层模块中去。若它的扇入数较大,就不能向上,则可以把它合并到它的上层模块中去。若它的扇入数较大,就不能向上合并,否则
46、将导致对该模块做多次编码和排错。合并,否则将导致对该模块做多次编码和排错。如图如图中模块中模块的扇出数等于的扇出数等于3 3。对扇出数过低。对扇出数过低(1(1或或2)2)的模块,也应进行检的模块,也应进行检查。一般,模块的扇出数应在查。一般,模块的扇出数应在7 7以内。以内。管 理 信 息 系 统60(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题3、模块分解和模块的大小、模块分解和模块的大小模块的大小是模块分解时要考虑的一个重要问题。模块的大小是模块分解时要考虑的一个重要问题。模块多大最好?有许多不同的观点。模块自顶向模块多大最好?有许多不同的观点。模块自顶向下
47、的分解,主要按功能来进行,也就是说一个模下的分解,主要按功能来进行,也就是说一个模块最好一个功能。同时要注意模块间的接口关系块最好一个功能。同时要注意模块间的接口关系以较为简单为宜。从经验上讲,为了提高可读性以较为简单为宜。从经验上讲,为了提高可读性和方便修改,一个基本模块的程序量在和方便修改,一个基本模块的程序量在1010 100100个语句之间。个语句之间。管 理 信 息 系 统61(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题4 4、消去重复、消去重复功能设计过程中若发现几个模块的功能是功能设计过程中若发现几个模块的功能是相似的,则应设法消去其中的重复功能。
48、相似的,则应设法消去其中的重复功能。因为同一功能的程序段多次出现,不仅浪因为同一功能的程序段多次出现,不仅浪费了编码时间,而且会给调试和维护带来费了编码时间,而且会给调试和维护带来困难。困难。管 理 信 息 系 统62(六)在改进模块结构图时还应注意的问题(六)在改进模块结构图时还应注意的问题5 5、补充、完善和修改、补充、完善和修改 在系统分析阶段,加工说明中所反映的用户要求在系统分析阶段,加工说明中所反映的用户要求(例如出错处理,过程信息以及种种限制等)不可能(例如出错处理,过程信息以及种种限制等)不可能完全在数据流图中反映。然而,在系统设计阶段的系完全在数据流图中反映。然而,在系统设计阶段的系统模块结构图中,必须体现出用户的所有要求。因此,统模块结构图中,必须体现出用户的所有要求。因此,由数据流图导出的初始模块结构图必须进行补充、完由数据流图导出的初始模块结构图必须进行补充、完善,还要根据模块分解的原则进行修改,才能达到用善,还要根据模块分解的原则进行修改,才能达到用户的要求。户的要求。