软件工程-概要设计全解课件_第1页
软件工程-概要设计全解课件_第2页
软件工程-概要设计全解课件_第3页
软件工程-概要设计全解课件_第4页
软件工程-概要设计全解课件_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

系统设计4.1概述4.2任务4.3设计原理4.4模块独立性4.5图形工具4.6面向数据流的设计方法4.7数据库设计4.8小结系统设计4.1概述4.3设计原理4.4模块独立性4.64.1概述软件设计分为两个阶段:总体设计(又称概要设计)通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。详细设计详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。4.1概述软件设计分为两个阶段:总体设计(又称概要设计)通4.1概述软件分析映射软件设计4.1概述软件分析映射软件设计4.1概述4.1概述4.2任务1.制定规范确定设计的目标和优先顺序选定设计方法规定设计文档的编制标准文档体系、详细程度、图形画法、纸张样式编码形式接口约定、命名规则4.2任务1.制定规范确定设计的目标和优先顺序规定设计4.2任务2.系统的结构设计划分层次结构确定模块功能确定模块调用关系确定模块的接口评估模块划分的质量、导出模块结构规则4.2任务2.系统的结构设计划分层次结构确定模块调用关4.2任务3.数据结构设计确定输入、输出文件的结构数据库设计4.可靠性设计(质量设计)5.书写文档概要设计说明书、数据库设计说明书、用户手册、初步的测试计划4.2任务3.数据结构设计确定输入、输出文件的结构4.4.2任务6.评审可追溯性确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求接口确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内风险确认该设计在现有技术条件下和预算范围内是否能按时实现4.2任务6.评审可追溯性确认该设计是否复盖了所有已确定4.2任务实用性确认该设计对于需求的解决方案是否实用技术清晰度确认该设计是否以一种易于翻译成代码的形式表达可维护性确认该设计是否考虑了方便未来的维护质量确认该设计是否表现出良好的质量特征4.2任务实用性确认该设计对于需求的解决方案是否实用技术清4.2任务各种选择方案看是否考虑过其它方案,比较各种选择方案的标准是什么限制评估对该软件的限制是否现实,是否与需求一致其它具体问题对于文档、可测试性、设计过程……等进行评估4.2任务各种选择方案看是否考虑过其它方案,比较各种选择方4.3设计原理模块化抽象逐步求精信息隐藏4.3设计原理模块化逐步求精4.3.1模块化什么是模块?模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。4.3.1模块化什么是模块?模块是由边界元素限定的相邻的程4.3.1模块化什么是模块化?就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。4.3.1模块化什么是模块化?就是把程序划分成独立命名且可图:模块化和软件成本图:模块化和软件成本4.3.1模块化五条标准模块可分解性把问题分解为子问题模块可组装性可复用模块可理解性无需参考其他模块,易于构造和修改模块连续性微小修改只导致对个别模块模块保护性异常影响局限在模块内部4.3.1模块化五条标准模块可分解性把问题分解为子问题模块人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。4.3.2抽象人类在认识复杂现象的过程中使用的最强有力的思维4.3.2抽象4.3.3逐步求精求精实际上是细化过程。我们从在高抽象级别定义的功能陈述(或信息描述)开始。也就是说,该陈述仅仅概念性地描述了功能或信息,但是并没有提供功能的内部工作情况或信息的内部结构。求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。4.3.3逐步求精求精实际上是细化过程。我们从在高抽象级别4.3.4信息隐藏设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。只有那些为了完成软件的总体功能而必需在模块间交换的信息,才允许在模块间进行传递。4.3.4信息隐藏设计和确定模块时,使得一个模块内包含的信4.4模块独立性模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。模块的独立性可以由两个定性标准度量:耦合用于衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度。4.4模块独立性模块独立性概括了把软件划分为模块时要遵守耦4.4.1耦合耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。在软件设计中应该追求模块间尽可能松散耦合的系统。4.4.1耦合耦合是对一个软件结构内不同模块之间互联程耦合4.4.1耦合耦合的七种类型1.非直接耦合2.数据耦合3.特征耦合4.控制耦合5.外部耦合6.公共耦合7.内容耦合4.4.1耦合耦合的七种类型1.非直接耦合4.4.1耦合1、非直接耦合(NondirectCoupling)

如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。4.4.1耦合1、非直接耦合(NondirectCoup4.4.1耦合2、数据耦合(DataCoupling)如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。4.4.1耦合2、数据耦合(DataCoupling)4.4.1耦合3、标记耦合(StampCoupling)如果一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。4.4.1耦合3、标记耦合(StampCoupling4.4.1耦合4、控制耦合(ControlCoupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。4.4.1耦合4、控制耦合(ControlCoupli4.4.1耦合5、外部耦合(ExternalCoupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。6、公共耦合(CommonCoupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。4.4.1耦合5、外部耦合(ExternalCoupli4.4.1耦合公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。4.4.1耦合公共耦合的复杂程度随耦合模块的个数增加而显著4.4.1耦合7、内容耦合(ContentCoupling)如果发生下列情形,两个模块之间就发生了内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只可能出现在汇编语言中);一个模块有多个入口。4.4.1耦合7、内容耦合(ContentCoupli4.4.1耦合耦合性应采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。4.4.1耦合耦合性应采取下述设计原则:尽量使用数据耦合,

4.4.2内聚

七种内聚:1.偶然内聚2.逻辑内聚3.时间内聚4.过程内聚5.通信内聚6.顺序内聚7.功能内聚信息内聚 4.4.2内聚6.顺序内聚信息内聚4.4.2内聚1、偶然内聚(CoincidentalCohesion)又称巧合内聚当模块内各部分之间 没有联系,或者即使 有联系,这种联系也 很松散,则称这种模 块为偶然内聚模块。 它是内聚程度最低的 模块。4.4.2内聚1、偶然内聚(CoincidentalCo4.4.2内聚2、逻辑内聚(LogicalCohesion)这种模块把逻辑相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。例如一个模块读取各种不同类型外设的输入。4.4.2内聚2、逻辑内聚(LogicalCohesio4.4.2内聚3、时间内聚(ClassicalCohesion)时间内聚又称为经典内聚,或瞬时内聚(TemporalCohesion)。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。问题:一般在某个系统中什么模块会是时间内聚的?答案:程序的初始化模块和终止模块。4.4.2内聚3、时间内聚(ClassicalCohes4.4.2内聚4、过程内聚(ProceduralCohesion)如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。问题:请大家举个生活中必须遵照特定次序的例子?答案:排队买饭(队列,要求先进先出)。4.4.2内聚4、过程内聚(ProceduralCohe

4.4.2

内聚5、通信内聚(CommunicationCohesion)

如果一个模块内各功能部分都使用了相同的输入 数据,或产生了相同的输出数据,则称之为通信 内聚模块。A打印报告1打印报告2打印B存入打印C修改删除打印

报告2其他定义:如果一个模块的所有成分都操作同一数据集或生成同一数据集。 4.4.2内聚A打印报告1打印打印B存入打印C修改删除4.4.2内聚4.4.2内聚

4.4.2内聚6、顺序内聚(SequenceCohesion)

这种模块要求各个成分顺序执行,并且通常上一个 输出是下一个输入。读入编辑A数据累加打印B结果 4.4.2内聚读入编辑A数据累加打印B结果4.4.2内聚信息内聚(InformationalCohesion)模块多个功能在同一数据结构上操作,每一项功能有一个唯一的入口点。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此它是一个信息内聚的模块。4.4.2内聚信息内聚(InformationalCo4.4.2内聚7、功能内聚(FunctionalCohesion)一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。4.4.2内聚7、功能内聚(FunctionalCoh4.4.2内聚内聚度设计内聚原则:设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。4.4.2内聚内聚度设计内聚原则:设计时应力争做到高内聚,4.5图形工具层次图HIPO图结构图4.5图形工具层次图HIPO图4.5.1层次图也称H图是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次结构。层次图中的每个方框代表一个模块,方框间的连线表示模块间的调用关系。4.5.1层次图也称H图是在总体设计阶段最常使用的图形工具4.5.2HIPO图

由H图和IPO图两部分组成4.5.2HIPO图 由H图和IPO4.5.3结构图4.5.3结构图4.5.3结构图

结构图中的每个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块间的调用关系。在结构图中通常还用带注释的箭头表示模块调用过程中模块之间传递的信息。注释箭头尾部是空心圆表示传递的是数据。注释箭头尾部是实心圆则表示传递的是控制信息。4.5.3结构图 结构图中的每个方框代表一个模块,框内注明4.5.3结构图大学职业介绍系统4.5.3结构图大学职业介绍系统4.5.3结构图模块模块用矩形框表示,并用模块的名字标记它。4.5.3结构图模块模块用矩形框表示,并用模块的名字标记它4.5.3结构图模块的调用关系和接口模块之间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块。4.5.3结构图模块的调用关系和接口模块之间用单向箭头联结4.5.3结构图条件调用循环调用4.5.3结构图条件调用循环调用4.5.3结构图4.5.3结构图4.6面向数据流的设计方法目标是给出设计软件结构的一个系统化的途径。面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。通常所说的结构化设计方法,也就是基于数据流的设计方法。4.6面向数据流的设计方法目标是给出设计软件结构的一个系统4.6.1概念面向数据流的设计方法把数据流映射成软件结构,数据流的类型决定了映射的方法。数据流有两种类型:变换流事务流4.6.1概念面向数据流的设计方法把数据流映射成软件结变换

图:变换流

54 图:变换流54图:事务流图:事务流图:混合型整体?中间?图:混合型整体?2023/8/18目标系统的DFDSC图---StructuredChart该图常用来表示系统的软件结构。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间的联系。SD目标系统的SC2023/8/5目标系统的DFDSC图---Struc2023/8/18ASC

图中的主要内容1、模块--在SC图中用矩形框表示,并用名字来标记它--模块调用关系2、模块的调用关系和接口B被调用模块调用模块A(查询学生)B(查找学生记录)数据信号控制信号学号查找成功信号--模块间接口的表示2023/8/5ASC图中的主要内容1、模块--在SC图中2023/8/18产生最佳解得到好的输入计算最佳解输出结果读输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化显示结果解格式化的解SC

图的一般格式2023/8/5产生最佳解得到好的输入计算最佳解输出结果读输2023/8/181、在系统结构图中的模块一、典型的系统结构形式原子模块:在系统结构图中通常是指不能再分割的底层模块完全因子分解系统如果一个软件系统,它的全部实际加工(即数据计算或处理)都是由底层的原子模块来完成,而其它所有非原子模块仅仅执行控制或协调功能。2023/8/51、在系统结构图中的模块一、典型的系统结构形2023/8/18传入模块AA传入模块从下属模块取得数据,进行某些处理,再将其结果传给上级模块。在此,将它传送的数据流称为逻辑输入数据流。在系统结构图中有四种类型的模块:逻辑输入数据流成绩处理成绩录入2023/8/5传入模块AA传入模块从下属模块取2023/8/18传出模块从上级模块获得数据,进行某些处理,再将其结果传给下属模块。在此,将它传送的数据流称为逻辑输出数据流。传出模块DD逻辑输出数据流成绩处理成绩输出2023/8/5传出模块从上级模块获得数据,进行2023/8/18变换模块也叫加工模块。它是从上级模块获得数据,进行特定的处理,将其转换为其他形式,再传回上级模块它所加工的数据流叫做变换数据流。变换模块CB变换数据流审查并开发票发票购书单2023/8/5变换模块也叫加工模块。它是从上级2023/8/18协调模块对所有下属模块进行协调和管理的模块。在一个好的系统结构图中,协调模块应在较高层出现。协调模块YXYX2023/8/5协调模块对所有下属模块进行协调和2023/8/182、典型的系统结构形式之一(变换型系统结构图)取得数据iaeo变换数据给出数据传入部分变换中心传出部分--------具有变换型数据流图2023/8/52、典型的系统结构形式之一(变换型系统结构图2023/8/18主模块C变换成D取得C给出D取得BB变换成CD变换成E给出E取得AA变换成BAABBBCCDCDED取得数据CD变换数据给出数据协调模块变换模块传出模块--------具有变换型系统结构图DFD--SC传入模块2023/8/5主模块C变换成D取得C给出D取得BB变换成C2023/8/183、典型的系统结构形式之二(事务型系统结构图)“事务”引起、触发或启动某一动作或一串动作的任何数据、控制信号、事件或状态的变化。由它接受一项事务,根据事务处理的特点和性质

选择分配一个适当的处理单元,然后给出结果。2023/8/53、典型的系统结构形式之二(事务型系统结构图2023/8/18输入------事务型数据流图1ABC3DEFGH24567中心变换输出逻辑输入物理输入逻辑输出物理输出2023/8/5输入------事务型数据流图1ABC32023/8/181ABC3DEFGH24567MT3逻辑输入逻辑输出CDCD,E,F456------事务型数据流图(DFD)------事务型系统结构图(SC)2023/8/51ABC3DEFGH24567MT3逻辑输入2023/8/18事务中心输入已分析的作业内部表示的作业结果------事务型系统结构(层次)图输出结果调度作业信息读入作业分析作业事务1事务2事务3事务4操作2操作3操作4操作5操作6操作1细节2细节3细节4细节5细节6细节1细节7结果2023/8/5事务中心输入已分内部表示的作业结果-----2023/8/18------简化的事务型系统结构图事务中心得到作业作业结果输出结果分析调度事务1事务2事务32023/8/5------简化的事务型系统结构图事务中心得2023/8/18二、从DFD图导出SC图的步骤开始细化修改SRS中的DFD图判断DFD图的结构类型是变换型吗?F事务分析变换分析完善SC图T对最终的SC图进行评审结束2023/8/5二、从DFD图导出SC图的步骤开始细2023/8/181、变换分析----是将具有变换型的DFD图导出SC图变换分析从物理输入、物理输出及变换中心进行由顶向下的分解得出各个分支的所有组成模块在数据流图上区分系统的逻辑输入、逻辑输出和变换中心部分,并标出它们的分界。进行一级分解,设计系统模块结构的顶层和第一层。进行二级分解,设计中、下层模块。2023/8/51、变换分析----是将具有变换型的DFD图2023/8/18(1)在DFD

图上标出逻辑输入、逻辑输出和变换中心的分界AeBaCbDcEdPQRwuvwuvrp变换中心c,e逻辑输入w,u逻辑输出--------具有变换型数据流图2023/8/5(1)在DFD图上标出逻辑输入、逻辑输出2023/8/18(2)完成第第一级分解AabcPwuvrpBCDdeEQRWUVMcMAMTMEC,eC,eU,wU,w变换中心顶层第一层第一级分解后的SC图协调模块YXYX2023/8/5(2)完成第第一级分解AabcPwuvrp2023/8/18AabcPwuvrpBCDdeEQRWUV第一级分解后的SC图(另一种画法)McMA1ME1C

eUMA2QPRME2e

c,p

pr

r

w,uw2023/8/5AabcPwuvrpBCDdeEQRWUV第2023/8/18(3)完成第第二级分解AabcPwuvrpBCDdeEQRWUVMA变换中心对逻辑输入的分解CEBADabdeccbaABCMAEDde逻辑输入模块的调用与执行过程2023/8/5(3)完成第第二级分解AabcPwuvrp2023/8/18MACEBADabdecMAGetCGetEBtoCAtoBDtoEaecReadDGetBReadAc,eabbbcde2023/8/5MACEBADabdecMAGetCGet2023/8/18AabcPwuvrpBCDdeEQRWUVME变换中心对输出的分解WUVvuwMTQPR

eC,prU,w对变换中心加工的分解

prw,u2023/8/5AabcPwuvrpBCDdeEQRWUVM2023/8/18MACBAEDMTQPR从变换分析导出的初始SC

图MEWUVMCc,eW,uW,uC,e(4)获得完整的SC

图2023/8/5MACBAEDMTQPR从变换分析导出的初始2023/8/18运用变换分析方法建立系统的SC时需注意以下几点:

模块设计的次序时,应遵循对一个模块的全部直接下属模块都设计完成后,再转向另一个模块的下层模块的设计。在设计下层模块时,应考虑模块的耦合和内聚问题,以提高设计初始SC图的质量。注意“黑盒”技术的使用。2023/8/5运用变换分析方法建立系统的SC时需注意以下几2023/8/18主模块ABCA1A2A3A11A12A132023/8/5主模块ABCA1A2A3A11A12A132023/8/18低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚高强弱

内聚性模块独立性低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合高弱强耦合性模块独立性具有高内聚低耦合的模块才是模块独立性比较强的模块。2023/8/5低功能信息通信过程时间逻辑巧合性内聚高强弱2023/8/18具有高内聚低耦合的模块才是模块独立性比较强的模块。模块A模块D模块C模块B非直接耦合通过参数传递数据(数据耦合)通过参数表传递数据结构(标记耦合)具有松散型

的耦合类型2023/8/5具有高内聚低耦合的模块模块A2023/8/18请将上列给出的具有变换型的DFD图导出它的SC图练习A1A2a1a2PB

b1C1c1C2c1p1P22023/8/5请将上列给出的具有变换型的DFD图导出它的S2023/8/182、事务分析----是将具有事务型的DFD图导出SC图IALMNOBCDEFGH事务中心事务源2023/8/52、事务分析----是将具有事务型的DFD图2023/8/18IALMNOBCDEFGH主模块给出H取得ALMNA

GHBECF

D2023/8/5IALMNOBCDEFGH主模块给出H取得A2023/8/18发送部分请将下列给出的采购子系统DFD

图转换成SC图练习2.12.22.3书库保管员F2F1F5F6F7加工名称:2.1按书号汇总缺书2.2按出版社汇总缺书2.3修改教材库存和待购量文件名称:F1

教材存量表F2

缺书登记表F5

待购教材表F6

教材一览表F7

进书登记表2023/8/5发送部分请将下列给出的采购子系统DFD图2023/8/18发送部分采购按书号汇总缺书登记表统计缺书登记进书按出版社汇总打印缺书单修改教材存量表修改教材待购量统计命令登记命令待购教材表暂缺书单暂缺书单进书通知进书通知------采购子系统的SC图-------缺书登记表={班号+姓名+书号+数量}2023/8/5发送部分采购按书号缺书统计缺书登记进书按2023/8/18三、软件模块结构的改进一、模块功能的完善化执行指定的功能部分出错处理的部分。2023/8/5三、软件模块结构的改进一、执行指定的功能部分2023/8/18二、消除重复功能,改善软件结构。完全相似局部相似2023/8/5二、完全相似局部相似消除重复功能,改善软件结构完全相似:在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。局部相似:找出其相同部分,分离出去,重新定义成一个独立的下一层模块。还可以与它的上级模块合并。消除重复功能,改善软件结构完全相似:在结构上完全相似,可能只2023/8/18XYR1R2

物理输入相似部分XYR1R2RX+R1Y+R2R相似模块的各种合并方案的示意图2023/8/5XYR1R2物理相似部分XYR1R2R2023/8/18三、模块的作用范围应在控制范围之内。作用范围:是模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。控制范围:包括模块本身及其所有的从属模块(即供它调用的模块)。

如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的结构是不简单的。2023/8/5三、作用范围:是模块的作用范围2023/8/18模块的控制范围:包括模块本身及其所有的从属模块(即供它调用的模块)。ABDCEFG关于模块的控制范围示意图

2023/8/5模块的控制范围:包括模块本身及其所有的从AB2023/8/18一个模块的作用范围,是指受这个模块中的判定所影响的模块。关于模块的作用范围/控制范围的关系示意图

TopABCDEGGDBC控制耦合2023/8/5一个模块的作用范围,是指受这个模块中2023/8/18TopCDEB2BDGC理想的情况,应该使判定的作用范围和判定所在模块的控制范围尽可能地吻合(即应使模块的作用范围尽可能地在控制范围之内)。符合作用范围/控制范围的理想判定位置

DCGBA对于一个理想SC图中的模块设计,所有受到一个判定影响的模块应该都从属该判定所在的模块,最好位于作出判定的那个模块本身及它的直接下属模块。2023/8/5TopCDEB2BDGC理想的情况2023/8/18计算实发工资取得工资数据计时工人实发工资计薪工人实发工资编外人员实发工资计时制工资额税收扣款薪金制工资额常规扣款编外人员工资编外人员税款编外人员扣款2023/8/5计算取得计时工人计薪工人编外人员计时制税收薪2023/8/18四、尽可能地减少高扇出结构,随着深度增大扇入。扇入:指模块的上级模块数。(即共有多少个模块需要调用这个模块)扇出:指模块调用其下属模块数目。调用的下属模块数应控制在小于3-4个模块。MM2023/8/5四、扇入:指模块的上级模块数。2023/8/18PPP1P2QQ1Q2Q3Q一个设计得好的软件模块结构,通常上层扇出比较高,中间层扇出较少,底层扇入到有高扇入的公用模块中。2023/8/5PPP1P2QQ1Q2Q3Q一个设计得好的2023/8/18五、模块的大小要适中。模块的大小,可以用模块中所含语句的数量的多少来衡量。把模块的大小限制在一定的范围之内。通常规定其语句行数在50~100左右,保持在一页纸之内,最多不超过500行。体积大的模块往往是由于分解不充分,因此可以对功能进一步分解,生成一些下级模块或同级模块。反之,对于体积过小的模块也可以考虑是否可能与调用它的上级模块合并。2023/8/5五、模块的大小,可以用模块中所含体积20

温馨提示

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

评论

0/150

提交评论