第九章 面向数据流的设计方法_第1页
第九章 面向数据流的设计方法_第2页
第九章 面向数据流的设计方法_第3页
第九章 面向数据流的设计方法_第4页
第九章 面向数据流的设计方法_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章第九章 面向数据流的设计方法面向数据流的设计方法 面向数据流的设计方法面向数据流的设计方法,即结构化方法(简称SD方法),是根据需求阶段对数据流的分析设计软件结构。数据流主要描绘信息在系统内部加工和流动的情况,面向数据流的设计方法根据数据流的特性定义两种“映射”,这两种映射能机械将数据流转换为程序结构。该方法的目标是为软件结构设计提供一个系统化的途径,使设计人员对软件有一个整体的认识。 本章所描述技术用于概要设计描述,包括模块、界面和数据结构的定义。理论上讲,任何软件系统都可以用数据流图表示,面向数据流的设计方法可用于任一软件系统的开发。该方法对那些顺序处理信息且不含层次数据结构的系统最

2、为有效。 面向数据流的设计方法面向数据流的设计方法( (SD)以数据流图为基础,以数据流图为基础,它定义了把它定义了把DFD变换成变换成软件结构软件结构的不同的不同映射映射方法方法. .映射映射DFD( (问题结构问题结构) )软件系统的结构软件系统的结构( (程序结构程序结构) )映射方法涉及信息(数据)流的类型.9.1 基本概念和设计过程基本概念和设计过程1、基本概念、基本概念(1)变换型数据流图变换型数据流图输入变换输出 变换型数据流变换型数据流(变换流变换流):在基本系统模型中信息通常以在基本系统模型中信息通常以“外部外部”所具有的形式进入系统,经过处理后又以这种形式离开系统,所具有的

3、形式进入系统,经过处理后又以这种形式离开系统,如图如图9.1。输入信息流沿传入路径进入系统,同时由外部形式变。输入信息流沿传入路径进入系统,同时由外部形式变换为内部形式,经系统变换中心加工、处理,作为输出信息流换为内部形式,经系统变换中心加工、处理,作为输出信息流又沿传出路径离开系统又沿传出路径离开系统,并还原为外部形式并还原为外部形式.如果数据流图所描如果数据流图所描述的信息流具有上述特征述的信息流具有上述特征,则称作变换流则称作变换流.图图 9.1(2)事务型数据流图事务型数据流图事务中心活动通路T事务 事务型数据流事务型数据流(事务流事务流):由于基本系统呈现变换流,所以任意由于基本系统

4、呈现变换流,所以任意系统中的信息均可以用变换流刻画。但是如果数据流如图系统中的信息均可以用变换流刻画。但是如果数据流如图9.2所所示,则称为事务流。此时,单个数据项示,则称为事务流。此时,单个数据项(事务事务)沿传入路径沿传入路径(接受接受通道通道)进入系统进入系统,由外部形式变换为内部形式后到达事务中心由外部形式变换为内部形式后到达事务中心,事事务中心根据数据项计算结果从若干动作路径中选定一条继续执务中心根据数据项计算结果从若干动作路径中选定一条继续执行行.图图 9.2基本模型基本模型变换型变换型数据流数据流 结构结构事务型事务型数据流数据流 结构结构传入传入变换变换传出传出变换变换中心中心

5、传传入入部分部分传出传出部分部分事务事务分析分析事务事务中心中心动作动作 1 1动作动作 2 2动作动作 3 3接受接受接受接受部分部分变换型数据流举例变换型数据流举例输入输入信息信息物理物理输入输入格式格式检查检查处理处理显示显示正确正确信息信息结果结果物理物理输出输出数据数据变换中心变换中心逻辑逻辑输入输入逻辑逻辑输出输出传传入入部分部分传出部分传出部分特点:特点:具有明确的具有明确的传传入、变换入、变换( (或称主加或称主加 工工) ) 和和传传出界面的出界面的DFD事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH 值得注意的是在大系统的数据流中,变换流和事务流值得注意的是

6、在大系统的数据流中,变换流和事务流往往交织在一起。如,在基于事务流的系统中,当信息沿往往交织在一起。如,在基于事务流的系统中,当信息沿动作路径流动时,可能呈现变换流的特征,因此,在具体动作路径流动时,可能呈现变换流的特征,因此,在具体进行面向数据流的软件设计时,两种方法交叉使用。进行面向数据流的软件设计时,两种方法交叉使用。T T事务中心事务中心传入传入变换变换传出传出变换变换中心中心输入输入输出输出变换型结构事务事务中心中心接受接受路径路径动动作作路路径径事务型 结构由输入、变换由输入、变换中心和输出三中心和输出三部分组成部分组成具有在多种事具有在多种事务中选择执行务中选择执行某类事物的能某

7、类事物的能力力根据信息流类型根据信息流类型, ,系统结构特征可归纳为两种典型形式系统结构特征可归纳为两种典型形式: :变换变换型结构和事务型结构型结构和事务型结构. .其其基本模型特征如下基本模型特征如下: :SD方法是基于模块化、自顶而下逐步求精、结构化程序设方法是基于模块化、自顶而下逐步求精、结构化程序设计等技术发展起来,能够方便地将数据流图转换为软件结计等技术发展起来,能够方便地将数据流图转换为软件结构,其过程分为六步:构,其过程分为六步: (1)(1)分析分析DFD,DFD,精化精化DFD.DFD.(2)(2)确定确定DFDDFD类型类型, ,划定边界划定边界. .(3)(3)映射为软

8、件结构映射为软件结构. .把把DFDDFD映射到系统模块结构映射到系统模块结构, ,设计出模块设计出模块结构的上层结构的上层; ;基于基于DFDDFD逐步分解高层模块逐步分解高层模块, ,设计出下层模块设计出下层模块. .(4)(4)提取层次控制结构提取层次控制结构. .(5)(5)通过设计复审和使用启发式策略进一步精化模块结构通过设计复审和使用启发式策略进一步精化模块结构. .(6)(6)模块接口描述模块接口描述2. 设计过程设计过程精化数据流图精化数据流图区分事务中心区分事务中心和数据接收路径和数据接收路径映射成变换结构映射成变换结构流类型流类型区分输入和区分输入和输出分支输出分支映射成事

9、务结构映射成事务结构用启发式设计规则精化软件结构用启发式设计规则精化软件结构导出接口描述和全程数据结构导出接口描述和全程数据结构复查复查详细设计详细设计“事务事务”“变换变换”事务分析事务分析变换分析变换分析面向数据流方法的设计过程面向数据流方法的设计过程提取控制结构提取控制结构SDSD方法的两种映射过渡方法方法的两种映射过渡方法变换型变换型DFD事务型事务型DFD初始初始SC初始初始SC变换分析变换分析事务分析事务分析初始的初始的SCSC主模块主模块输入模块输入模块主加工模块主加工模块输出模块输出模块事务控制模块事务控制模块接受模块接受模块动作发送模块动作发送模块动作动作1 1模块模块动作动

10、作2 2模块模块动作动作3 3模块模块由由变换分变换分析析产生产生由事务由事务分分析析产生产生1.1.变换分析设计方法变换分析设计方法变换分析由一系列设计步骤组成,经过这些步骤就能够把具有变换流特点的数据流图按照事先确定的模式映射成软件结构。步骤如下: 1)复审基本系统模型)复审基本系统模型基本系统模型是指顶级数据流图和所有由外部提供的信息。该步骤是对系统规格说明书进行评估评估。这两个文档是描述软件界面上信息的流程和结构。2)复审和精化软件数据流图)复审和精化软件数据流图主要是对软件规格说明书中的分析模型进行精化,直至获得足够详细的数据流图。逐步求精,逐层细化,底层的加工和数据流都应该进行分解

11、。9.2 变换分析变换分析变换分析设计方法变换分析设计方法3)确定)确定DFD的特性,判定它为事务流还是变换流的特性,判定它为事务流还是变换流一般来讲,系统内部的信息流总可以用变换流表示,如果为明显的事务流特性,还应该采用针对事务流的映射方法。因此,分析人员首先要判定DFD中占主导地位的信息流,并且确定其特性,然后孤立具有变换特性或者事务特性的支流,这些支流将用于精化由主导数据流推出的程序结构。4)划定输入流和输出流的边界、孤立变换中心)划定输入流和输出流的边界、孤立变换中心即区分传入、变换中心、传出部分,在 DFD 上标明分界线,输入和输出流的边界的划分可能因人而异,不同的人员可能把边界沿着

12、数据通道向前推进或后退一个处理框,不过这对最后的软件结构影响不大。BCADEQPRWUVabcedrpuwv变换中心变换中心传传入入部分部分传传出出部分部分变换分析设计方法变换分析设计方法 5)执行)执行“一级分解一级分解” 一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层为模块执行输入、计算和输出功能;中间层次为控制和协调底层的工作。即区分逻辑输入、输出和中心变换部分。在结构图中,方框表示模块,方框内注明模块名称或主要功能。方框之间的有向边表示模块间的调用关系。对于变换流可以得到一级的分解结构图的上两层如下:第一级分解的方法第一级分解的方法第一级分解后的第一级分解后的SCSC

13、MCMTMAME第一层第一层顶层顶层c,ec,e u,wu,w传入模块传入模块传出模块传出模块中心变中心变换模块换模块输入流控制模块,接收所有输入数据;变换流控制模块,对内部形式数据进行加工、处理;输出流控制模块,产生输出数据。变换分析设计方法变换分析设计方法 6)执行)执行“二级分解二级分解” ( (分解分解SCSC各分支各分支) )自顶向下分解,设计出每个分支的中、下层模块自顶向下分解,设计出每个分支的中、下层模块. .二级分解的任务是把数据流图中每个处理框映射成程序结构中一个适当的模块,二级分解过程是从变换中心的边界开始沿输入,输出通道向外移动,把遇到的每个处理模块映射为程序结构中的一个

14、模块。程序结构的模块名称已隐含了模块的功能,但仍然有必要为每个模块写一个简要的处理说明,应该包括:(1)进出模块的信息(接口描述);(2)模块的局部信息;(3)处理过程陈述,包括主要的判断点和任务;(4)对有关性质和一些特性的简要说明。传入分支的分解传入分支的分解(1)(1)MACBAbacEDdec,e传入分支的分解传入分支的分解(2)(2)MAGet C CbacRead Ddec,eB to CbcdeabGet E EGet BD to EA to BRead D传出分支的分解传出分支的分解MEWWrite Vuuw,uvvvPut UU to VMEUWrite Wwwuw,uV(1

15、)(1)(2)(2)中心加工分支的分解中心加工分支的分解MTPQRec,pru,wpr变换分析设计方法变换分析设计方法 7)采用启发式设计策略,精化所得程序结构)采用启发式设计策略,精化所得程序结构雏形,改良软件质量雏形,改良软件质量对于程序结构的雏形,以“模块独立”为指导思想,对模块合并或分解,旨在追求高内聚、低耦合,易于实现、易于测试和维护的软件结构。上述七个步骤的目标是给出软件的一个整体的描述。一旦有了这样的描述,设计人员就可以从整体角度评价和精化软件的总体结构,此时修改所需耗费不多,却能够大大低提高软件质量。2. 举例举例(P209)例例1:“家庭保安系统家庭保安系统”的传感器检测子系

16、统的传感器检测子系统(1) 复查基本系统模型复查基本系统模型(2) 复查并精化数据流图复查并精化数据流图(3) 确定确定DFD的特性,判定它为变换流还是事务的特性,判定它为变换流还是事务流流(4) 划定输入流和输出流的边界,孤立变换中心划定输入流和输出流的边界,孤立变换中心(5) 执行执行“一级分解一级分解”(6) 执行执行“二级分解二级分解”7)采用启发式设计策略,精化所得得程序结构)采用启发式设计策略,精化所得得程序结构雏形,改良软件质量雏形,改良软件质量1. 1. 事务分析设计方法事务分析设计方法任何情况下都可使用变换分析方法设计软任何情况下都可使用变换分析方法设计软件结构,但如数据流具

17、有明显的事务特点时件结构,但如数据流具有明显的事务特点时 ( (有一个明显的有一个明显的事务和事务中心事务和事务中心 ),),以采用事务以采用事务分析方法为宜。分析方法为宜。事务分析法的步骤和变换分析事务分析法的步骤和变换分析法基本类似,主要区别在于从数据流到程序结法基本类似,主要区别在于从数据流到程序结构的映射。事务分析法的步骤可以概括如下:构的映射。事务分析法的步骤可以概括如下:9.3 事务分析事务分析事务分析设计方法事务分析设计方法1)复审基本系统模型;)复审基本系统模型;2)复审并精化软件数据模型;)复审并精化软件数据模型;3)确定数据流图的特性;)确定数据流图的特性;显然,前三步和变

18、换分析法相同。4)指出事务中心,)指出事务中心,在在DFDDFD上确定事务中心、接收部分上确定事务中心、接收部分和发送部分。和发送部分。确定有事务中心发出的每一动作路径的数据流特性。数条动作路径的公共源头就是事务中心,事务中心确定为“启动命令处理”框。事务中心一旦确定,即可以划定接受路径与所有动作路径的界限,随后判定每一个动作路径上数据流的特性。事务分析设计方法事务分析设计方法5)把数据流图映射为事务处理型的程序结构)把数据流图映射为事务处理型的程序结构。画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块。事务处理型的程序结构由“输入输入”和和“散转散转”两部分组成

19、,输入部分的构成方法如变换分析法,即从事务处理中心开始,沿输入通路向外推进,每个处理框映射为一个模块。“散转”部分的顶层为一“散转”模块,它总控所有对应于每一动作路径的控制模块,每条动作路径都根据它的信息流特征映射为一个程序子结构。6)分解并精化事务结构以及每条动作路径所对应的结构分解并精化事务结构以及每条动作路径所对应的结构。这些子结构是根据流经每一动作路径的数据流特征,采用上述的设计步骤一一导出的。7)使用启发式设计策略使用启发式设计策略,精化所得的程序结构雏形,改良软件质量。这个步骤和变换分析法相同。 事务分析的映射方法事务分析的映射方法总控调度C路径B路径A路径A路径B路径C C路径路

20、径接收接收路径路径事务流设计模型举例事务流设计模型举例IMLNABCDFEG事务中心事务中心事务流设计模型举例事务流设计模型举例 取取 A 总控总控ALMNGDBCFE(主模块)(主模块)事务加工模块事务加工模块动作分支的典型结构动作分支的典型结构PT 2T 1T iA 2D 2A 1D 1A 3A jD k事务层事务层操作层操作层细节层细节层处理层处理层主模块主模块事务加事务加工模块工模块操作操作模块模块细节细节模块模块事务流设计举例事务流设计举例 取 A 总控总控ALMNGDBCFE动作动作1 1动作动作n n.细节模块细节模块1 1细节模块细节模块2 2.(操作模块)(操作模块)(细节模

21、块)(细节模块)事务型数据流图模型举例事务型数据流图模型举例IMLNOABCDFEGH事务流设计举例事务流设计举例 (另一种画法另一种画法) 输入 AXX系统系统变换控制变换控制ALMAGDBCFE 输出 E、F、GE、F、GE、F、G输出输出H HOE、F、GHHN2. 混合流设计举例混合流设计举例3412675810911变换中心变换中心传传入入传传出出事务型事务型混合流设计举例混合流设计举例T事务事务中心中心传入传入变换变换传出传出接收接收部分部分发发送送部部分分混合流设计举例混合流设计举例ABT1变换中心变换中心传传入入传传出出T2T3abb1b2b3c1c2c3degfjm事务流子系

22、统事务流子系统BCCDDEEHHKFJKLLMhk混合流设计举例混合流设计举例输入输入DXX系统系统变换控制变换控制输出输出K输入输入Cdc输出输出L LCDDEFJEHHKKLcddkkkLL输出输出MLMmmL事务子系统事务子系统3. 举例举例“家庭保安系统家庭保安系统”用户命令交互子系统用户命令交互子系统 (P216)(1) 复查基本系统模型复查基本系统模型(2) 复查并精化数据流图复查并精化数据流图(3) 确定确定DFD的特性,判定它为变换流还是的特性,判定它为变换流还是事务流事务流(4) 指出事务中心,确定由事务中心发出的指出事务中心,确定由事务中心发出的每一动作路径的数据流特性每一

23、动作路径的数据流特性(如下图)(如下图)用户命令交互子系统用户命令交互子系统DFD (P217)读用户读用户命令命令密码命令密码命令密码密码显示显示信息信息系统参数系统参数数据数据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令命令类型类型开开/ /关关命令命令建立配建立配置文件置文件原配置原配置数据数据启动启动/ /停止系统停止系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试重试信息信息四位四位数字数字检验检验信息信息检验检验信息信息A/DA/D信信息息格式化格

24、式化配置配置数据数据格式化格式化配置数据配置数据用户命令交互子系统初始的用户命令交互子系统初始的SCSC用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器启动启动/停止停止系统系统系统设置系统设置控制器控制器()把数据流映射为事务处理型的程序结构()把数据流映射为事务处理型的程序结构用户命令交互子系统用户命令交互子系统读用户读用户命令命令密码命令密码命令密码密码显示显示信息信息系统参数系统参数数据数据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令命令类型类型开开/ /关关命令命令建立

25、配建立配置文件置文件原配置原配置数据数据启动启动/停止停止系统系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试重试信息信息四位四位数字数字检验检验信息信息检验检验信息信息A/DA/D信信息息格式化格式化配置配置数据数据格式化格式化配置数据配置数据用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器启动启动/停止系统停止系统系统设置系统设置控制器控制器读系统读系统数据数据建立配建立配置文件置文件显示信息显示信息与状态与状态()分解并精化事务结构以及每条动作路径所对应()分解并精化事务结构以及每条动作路

26、径所对应的结构下图为的结构下图为用户命令交互子系统的用户命令交互子系统的SC用户命令交互子系统用户命令交互子系统读用户读用户命令命令密码命令密码命令密码密码显示显示信息信息系统参数系统参数数据数据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令命令类型类型开开/ /关关命令命令建立配建立配置文件置文件原配置原配置数据数据启动启动/停止停止系统系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试重试信息信息四位四位数字数字检验检验信息信息检验检验信息信息A/DA/D信信

27、息息格式化格式化配置配置数据数据格式化格式化配置数据配置数据用户命令交互子系统的用户命令交互子系统的SC(雏形)(雏形)产生产生无效信息无效信息用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器启动启动/停止系统停止系统系统设置系统设置控制器控制器读系统读系统数据数据建立配建立配置文件置文件显示信息显示信息与状态与状态读读密码密码用文件用文件比较密码比较密码密码输出密码输出控制器控制器()使用启发式设计策略,精化程序结构雏形()使用启发式设计策略,精化程序结构雏形补充内容:变换分析举例补充内容:变换分析举例2我们通过一个汽车数字仪表板的设计来介绍变换分析的

28、过程。假设仪表板的功能如下:(1)通过模数(AD)转换实现传感器和微处理机接口;(2)在发光二极管(LCD)面板上显示数据;(3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4)指示加速或减速;(5)超速警告:如果车速超过55英里小时,则发出超速警告铃声。在软件需求分析阶段,应该对上述每项性能和其它要求进行全面的分析,并建立起相应的文档资料,得出数据流图。具体的设计步骤如下:1、复查基本、复查基本系统模型系统模型2、复查并精化、复查并精化数据流图数据流图SPSmph超速值计算里程产生加速/减速显示读入旋转信号收集并求平均旋转信号信号数/秒(SPS)确定加速/减

29、速箭头指示下箭头水平线上箭头转换成转/分(rpm)计算mph和超速值计算燃料消耗产生mpg显示读入并核实计算gph燃料流量传感器信号燃料流量gphmphmpgmpg显示产生里程显示英里显示发出警告铃声警告铃声产生mph显示mph显示rpmSPSrpm3、确定数据流图的类型、确定数据流图的类型这一步的任务是确定数据流图是变换型数据流图还是事务型数据流图。从上图中可以看出,数据沿着两条输入通路(旋转信号和燃料流量传感器信号)进入系统,然后沿着五条通路(4个显示,一个警告铃声)离开,没有明显的事务中心(虽然变换“计算mph与超速值”可以看作是一个事务中心)。因此,可以认为这个数据流图的类型是变换型数

30、据流图。4、确定输入流和输出流的边界,从而孤立出变换中心、确定输入流和输出流的边界,从而孤立出变换中心SPSrpmmpg 显示gphmpgmph(SPS)mph超速值计算里程读入旋转信号收集并求平均旋转信号信号数/秒确定加速/减速箭头指示产生加速/减速显示下箭头水平线上箭头转换成转/分(rpm)计算mph 和超速值计算燃料消耗产生mpg显示读入并核实计算gph燃料流量传感器信号燃料流量产生里程显示英里显示发出警告铃声警告铃声产生mph显示mph 显示SPSrpm5、进行、进行“第一级分解第一级分解”CmCtCaCe第一级分解的方法第一级分解的结果数字仪表板控制数据转换控制接收传感器信号驱动仪表

31、板输入控制变换控制输出控制6、进行、进行“第二级分解第二级分解”第二级分解的方法BADCCmCa CB D A第二级分解的结果:接收传感器信号转换成 rpm计算 gph收集 sps读旋转信号读燃料流量接收传感器信号确定加速/减速计算 mph计算 mpg计算里程 未经精化的输入结构 未经精化的变换结构 未经精化的输出结构驱动仪表板加速/减速显示显示 mpg显示里程发出警告铃声显示 mph发光二极管显示7、使用设计度量和设计准则对第一次分割、使用设计度量和设计准则对第一次分割得到的软件结构进一步精化得到的软件结构进一步精化 对于从前面的设计步骤得到的软件结构,还可以进行许多修改:(1)输入结构中的

32、模块“转换成rpm”和“收集sps”可以合并;(2)模块“确定加速减速”可以放在模块“计算mph”下面,以减少耦合;(3)模块“加速减速显示”可以相应地放在模块“显示mph”的下面。精化的数字仪表板系统的软件结构数字仪表板控制接收传感器信号数据转换控制驱动仪表板计算里程计算mpg计算mph计算gph转换成rpm发出警报铃声显示里程显示mpg显示mph读旋转信号读燃料流量确定加速/减速加速/减速显示发光二极管显示9.4 启发式设计策略启发式设计策略(改进软件结构设计的指导原则)(改进软件结构设计的指导原则)(1)(1)模块功能的完善化模块功能的完善化(2)(2)改造程序结构,提高模块独立性改造程

33、序结构,提高模块独立性, ,消除重复功能消除重复功能(3)(3)将模块的影响限制在模块的将模块的影响限制在模块的控制范围内控制范围内(4)(4)深度、宽度、扇出和扇入适中深度、宽度、扇出和扇入适中(5)(5)模块大小适中模块大小适中(6)(6)降低模块接口的复杂性降低模块接口的复杂性(7)(7)模块功能可预测模块功能可预测(8)(8)根据设计约束和可移植性要对软件打包根据设计约束和可移植性要对软件打包(1) (1) 模块功能的完善模块功能的完善化化完整的模块应包括三部分:完整的模块应包括三部分:(1)(1)执行规定功能部分执行规定功能部分(2)(2)出错处理部分出错处理部分(3)(3)需返回给

34、调用者数据时,需返回给调用者数据时, 返回是否正确结束标志。返回是否正确结束标志。(2)消除重复功能Q1Q1C CQ2Q2C CQ1Q1Q2Q2C C改进前改进前Q1Q1、Q2Q2功功能相似能相似X XY YQQX XY YX XY Y重复部分重复部分改进方法改进方法1 1:将将Q1Q1、Q2Q2合并为合并为QQ不可取不可取改进方法改进方法2 2:将将Q1Q1、Q2Q2的公共的公共部分分离出来部分分离出来(3)将模块的影响限制在模块的控制范围内将模块的影响限制在模块的控制范围内 系统结构的影响范围系统结构的影响范围: 系统中某一层上模块中的判定或者条件系统中某一层上模块中的判定或者条件语句(例

35、如语句(例如If语句)在系统中会产生多种后语句)在系统中会产生多种后果,根据该判定的结果去执行或不执行其果,根据该判定的结果去执行或不执行其他层的某个处理或数据。他层的某个处理或数据。 该处理就是该处理就是“条件依赖条件依赖”于某个判定于某个判定. 判定的判定的“影响范围影响范围”是指包含是指包含“条件依条件依赖赖”于改判定的处理的全部模块于改判定的处理的全部模块模块控制范围模块控制范围: 一个模块的一个模块的“控制范围控制范围”是指模块是指模块本身和它的全体子模块本身和它的全体子模块 影响范围应该是这个判定所在模影响范围应该是这个判定所在模块的控制范围的一个子集块的控制范围的一个子集. 但是

36、实际上,在系统中控制范但是实际上,在系统中控制范围和影响范围的关系常常并非如此围和影响范围的关系常常并非如此。影响范围和控制范围影响范围和控制范围TopAYBB1X影响范围影响范围TopABB1B2XTopYABXAYBB1B2X判定判定图图1.影响范围在控制范围之外影响范围在控制范围之外图图2.影响范围在控制范围之内,但判定位置太高影响范围在控制范围之内,但判定位置太高图图3.影响范围在控制范围之内,正确实现影响范围在控制范围之内,正确实现 图图4.理想的影响范围和控制范围理想的影响范围和控制范围CHDEGXFAILJKB模块模块C C的的控制控制范围范围: : C、D、E、F、G、H如果如

37、果模块模块C C 作出的决策影响了作出的决策影响了模块模块L L,L L超出了超出了C C 的的控制范围控制范围. .(4) (4) 减少高扇出减少高扇出在增加程序深度在增加程序深度的前提下的前提下争取高扇入争取高扇入编外编外人员人员工资工资取得取得工资工资数据数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员税款税款编外编外人员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资避免平铺结构增加中间层降低扇出增加中间层降低扇出编外编外人员人员工资工资取得工取得工资数据资数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员税款税款编外编外人

38、员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资计时工人计时工人实发工资实发工资计薪工人计薪工人实发工资实发工资编外人员编外人员实发工资实发工资(5) (5) 模块大小适中模块大小适中模块过大:可理解程度下降模块过大:可理解程度下降模块过小:开销大于有效操作模块过小:开销大于有效操作 系统接口复杂系统接口复杂(6)(6)降低模块接口的复杂性降低模块接口的复杂性 接口传递信息应简单且和模块功能一接口传递信息应简单且和模块功能一致。致。(7) (7) 模块功能可预测模块功能可预测, ,避免对模块避免对模块施加过多限制施加过多限制模块看成黑盒子,相同输入产生相同输出,模块看成黑

39、盒子,相同输入产生相同输出,其功能为可预测的。其功能为可预测的。模块带有内部状态其功能可能是不可预测模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。的。难理解、难测试、难维护。 功能单一的模块具有高内聚。但如任意限功能单一的模块具有高内聚。但如任意限制局部数据结构的大小制局部数据结构的大小,过分限制控制流中过分限制控制流中可做的选择或外部接口的模式,模块功能就可做的选择或外部接口的模式,模块功能就过分局限,使用范围过分狭窄,缺乏灵活性过分局限,使用范围过分狭窄,缺乏灵活性和可扩充性。和可扩充性。 (8)根据设计约束和可移植性需根据设计约束和可移植性需求对软件打包求对软件打包打包指用来为特定环境组装软件的技术打包指用来为特定环境组装软件的技术.设计的后处理设计的后处理在确定系统的软件结构以后,还必须做好下述工在确定系统的软件结构以后,还必须做好下述工作:作:(1) 陈述每个模块的处理过程陈述每个模块的处理过程,为每个模块开发一为每个模块开发一份功能说明;份功能说明;(2) 描述每个模块的界面描述每个模块的界面,为每个模块提供一份接为每个模块提供一份接口说明;口说明;(3) 根据数据字典定义局部的和全程的数据结构;

温馨提示

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

评论

0/150

提交评论