软件模块化设计-课件_第1页
软件模块化设计-课件_第2页
软件模块化设计-课件_第3页
软件模块化设计-课件_第4页
软件模块化设计-课件_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

第五章软件设计概述§5.1软件设计的目标和任务§5.2软件设计基本概念§5.3模块化设计1第五章软件设计概述§5.1软件设计的目标和任务1§5.1软件设计的任务软件需求:解决“做什么”

软件设计:解决“怎么做”

2§5.1软件设计的任务软件需求:解决“做什么”2软件设计的任务

问题结构(软件需求)软件结构;

从软件需求规格说明书出发,形成软件的具体设计方案。映射3软件设计的任务

映射31.软件的总体结构主要回答的问题软件的组成部分软件的层次关系模块的内部处理逻辑模块之间的界面41.软件的总体结构主要回答的问题软件的组成部分42.软件设计方法结构化设计方法(SD)面向数据结构的设计方法(JSD方法)面向对象的设计方法(OOD)52.软件设计方法结构化设计方法(SD)53.软件设计分为两个阶段:(1)概要设计(总体设计)确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。(2)详细设计确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。63.软件设计分为两个阶段:(1)概要设计(总体设计)6§5.2软件设计的基本概念1.模块化2.抽象与细化3.信息隐蔽4.软件复用7§5.2软件设计的基本概念1.模块化71.模块化模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问题的功能。模块:一个拥有明确定义的输入、输出和特性的程序实体。81.模块化模块化:把程序划分成若干个模块,每个模块完成一个子模块模块是具有一定功能的可以用名词调用的程序语句集合,如:独立的汇编程序Pascal过程9模块模块是具有一定功能的可以用名词调用的程序语句集合,如:9概要设计的基本概念将系统划分成模块决定每个模块的功能决定模块的调用关系决定模块的界面,即模块间传递的数据10概要设计的基本概念将系统划分成模块102.抽象(Abstraction)与细化抽象:解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特性而不考虑细节。

112.抽象(Abstraction)与细化11抽象(Abstraction)抽象原则应用举例WindowsNT一体化的I/O系统设计文件管理网络管理设备管理高速缓冲存储器OS对虚拟文件的字节流,虚拟文件可为任何设备和实体抽象12抽象(Abstraction)抽象原则应用举例文件管理O对虚细化:即分解。在逐步细化中,特别强调这种分解的“逐步”性质,即每一部分仅较其前一部增加“少量”的细节。这样,在相邻两部之间就只有微小的变化,不难验证它们的内容是否等效。13细化:即分解。133.信息隐蔽(InformationHiding)信息隐蔽的含义:有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的信息。换句话说:模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。信息隐蔽:对模块内部信息访问的约束信息隐蔽的基本原则:功能独立,高内聚且低耦合143.信息隐蔽(InformationHiding)信息隐蔽§5.3模块化设计1.分解2.模块独立性内聚耦合自顶向下与自底向上设计15§5.3模块化设计1.分解15模块化(Modularity)模块化是好的软件设计的一个基本准则高层模块从整体上把握问题,隐蔽细节

复杂问题较小问题

分解可减小解题所需的总的工作分解16模块化(Modularity)模块化是好的软件设计的一个C(p1)>C(p2)则E(p1)>E(p2)其中:p1和p2是两个问题C(x)是由x问题决定的复杂性E(x)是解决x问题所需要的工作量C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)试验发现模块划分得越小成本越低,但是集成成本却随着模块划分得越小成本越高。如何确定模块化分的最小成本区,并保证模块的最佳性能,是设计活动中的主要任务之一。1.分解"各个击破"理论17C(p1)>C(p2)则E(p1)>E(p2)C(p1+模块数与开发工作量的关系成本或工作量模块数量软件总成本集成成本成本/模块M最小成本区域18模块数与开发工作量的关系成本或工作量模块数量软件总成本集成成2.模块的独立性模块独立性的概念模块完成独立的功能符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小192.模块的独立性模块独立性的概念19模块独立性的度量

模块独立性取决于模块的内部和外部特征。SD方法提出的定性的度量标准:模块自身的内聚性模块之间的耦合性

20模块独立性的度量模块独立性取决于模块的内部和外部特征。202.模块独立性的度量之一:内聚性一个模块内部各成分之间相互关联的强度设计目标:高内聚(一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的)212.模块独立性的度量之一:内聚性21模块的内聚性类型:低巧合内聚内逻辑内聚聚时间内聚性过程内聚通信内聚信息内聚高功能内聚模块独立性弱(功能分散)强(功能单一)22模块的内聚性类型:低巧合内聚模弱(功能分散)强(功(1)巧合内聚(偶然内聚)

模块内各部分间无联系ABCMMOVEOTORREADFILEFMOVESTOT模块M中的三个语句没有任何联系缺点:可理解性差,可修改性差。例:23(1)巧合内聚(偶然内聚)模块内各部分间无联系ABCM(2)逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。24(2)逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一2逻辑内聚模块ABCEFGABCEFGA1B1C1EFG模块内部逻辑E、F、G逻辑功能相似,组成新模块EFG公用代码段公用代码段缺点:增强了耦合程度(控制耦合)不易修改,效率低。25逻辑内聚模块ABCEFGABCEFGA1B1C1EFG模块内(3)时间内聚模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。例如:初始化系统模块、系统结束模块、紧急故障处理模块等。26(3)时间内聚模块完成的功能必须在同一时间内执行,这些功能(4)过程内聚模块内各处理成分相关,且必须以特定次序执行。27(4)过程内聚模块内各处理成分相关,且必须以特定次序执行。过程内聚模块读入成绩单读入并审查成绩单审查成绩单统计成绩打印成绩统计并打印成绩28过程内聚模块读入读入并审查审查统计打印统计并打印28(5)通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果。29(5)通信内聚模块内各部分使用相同的输入数据,或产生29通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块30通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报(6)信息内聚信息内聚指模块完成多个功能,各个功能都在同一数据结构上操作,每个功能有唯一入口。如对同一个数据库的“查找—添加—删除—修改”模块。31(6)信息内聚信息内聚指模块完成多个功能,各个功能都在同一数(7)功能内聚模块仅包括为完成某个功能所必须的所有成分。(模块所有成分共同完成一个功能,缺一不可)内聚性最强32(7)功能内聚模块仅包括为完成某个功能所必须的所有成分。3功能内聚模块建立方程组系数矩阵高斯消去法回代高斯消去法解题流程33功能内聚模块建立方程组系数矩阵高斯消去法回代高斯模块独立性的度量之二:

耦合性是模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。

耦合性越高,模块独立性越弱34模块独立性的度量之二:耦合性是模块间相互依赖程度的度耦合强度依赖的因素:一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度35耦合强度依赖的因素:一模块对另一模块的引用35模块间耦合的类型:低非直接耦合耦数据耦合合标志耦合性控制耦合外部耦合公共耦合

高内容耦合模块独立性弱(低耦合)强(中耦合)(较强耦合)(强耦合)36模块间耦合的类型:低非直接耦合模弱((1)非直接耦合

两个模块没有直接关系(模快1和模快2),模块独立性最强。模块1模块2模块3模块437(1)非直接耦合两个模块没有直接关系(模快1和模快2)(2)数据耦合一模块调用另一模块时,被调用模块的输入、输出都是简单的数据,属松散耦合。38(2)数据耦合一模块调用另一模块时,被调用模块的输入、38数据耦合举例开发票计算水费单价数量金额39数据耦合举例开发票计算水费单价金额39数据耦合举例计算水电费计算水费计算电费用水量用电量水费电费40数据耦合举例计算水电费计算水费计算电费用水量用电量水费电费4(3)标记耦合(特征耦合)如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记偶合。41(3)标记耦合(特征耦合)如两个模块通过传递数据结构(不是标记耦合举例计算水电费计算水费计算电费住户情况水费电费住户情况“住户情况”是一个数据结构,图中模块都与此数据结构有关。“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。42标记耦合举例计算水电费计算水费计算电费住户情况水费电费住户情将标记耦合修改为数据耦合举例计算水电费计算水费计算电费本月用水量本月用电量水费电费43将标记耦合修改为数据耦合举例计算水电费计算水费计算电费本月本(4)控制耦合一模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能。44(4)控制耦合一模块通过开关量、标志、名字等控制信息,44控制耦合举例A计算平均分或最高分B平均/最高成绩45控制耦合举例A计算平均分B平均/最高成绩45控制耦合举例读入分数输出结果计算平均分计算最高分平均/最高?调用逻辑性模块B时,须先传递控制信号(平均分/最高分),以选择所需的操作。控制模块必须知道被控模块的内部逻辑,增强了相互依赖。B46控制耦合举例读入分数输出结果计算平均分计算最高分平均/控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。去除模块间控制耦合的方法:(1)将被调用模块内的判定上移到调用模块中进行;(2)被调用模块分解成若干单一功能模块。47控制耦合增加了理解和编程的复杂性,调用模块47改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算最高分B248改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算(5)外部耦合一组模块均与同一外部环境关联(例如,I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合。外部偶合必不可少,但这种模块数目应尽量少。49(5)外部耦合一组模块均与同一外部环境关联(例如,I/O模(6)公共耦合(公共数据区耦合)一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。公共数据区指:全局数据结构共享通讯区内存公共覆盖区等50(6)公共耦合(公共数据区耦合)一组模块引用同一个公用数公共耦合举例Acommon公共数据区松散的公共耦合BAcommon公共数据区紧密的公共耦合B51公共耦合举例Acommon松散的公共耦合BAcommon紧公共耦合举例A公共数据区CB模块A、B、C间存在错综复杂的联系52公共耦合举例A公共数据区CB模块A、B、C间存在错综复杂公共耦合举例所有的公共耦合关系AEBCD6个模块共享一个公共数据区F53公共耦合举例所有的公共耦合关系AEBCD6个模块共享一F53(1)软件可理解性降低(模块间存在错综复杂的连系)(2)软件可维护性差(修改变量名或属性困难)(3)软件可靠性差(公共数据区及全程变量无保护措施)慎用公共数据区和全程变量!!!公共耦合存在的问题:54(1)软件可理解性降低公共耦合存在的问题:54(7)内容耦合一模块直接访问另一模块的内部信息(程序代码或数据)。最不好内容耦合形式

!!!55(7)内容耦合一模块直接访问另一模块的内部信息(程序代码5发生内容耦合的情形:(1)一模块直接访问另一模块的内部数据(2)一模块不通过正常入口转到另一模块内(3)两模块有一部分代码重叠(4)一模块有多个入口56发生内容耦合的情形:(1)一模块直接访问另一模块的内部数据5模块化设计的原则和目标耦合是影响软件复杂程度和设计质量的重要因素目标:建立模块间耦合度尽可能松散的系统。57模块化设计的原则和目标耦合是影响软件复杂程度和设计质量的重要如何降低模块间耦合度?(1)如模块必须存在耦合,选择适当的耦合类型原则:尽量使用数据耦合少用控制耦合限制公共耦合的范围坚决避免使用内容耦合(2)降低模块间接口的复杂性58如何降低模块间耦合度?(1)如模块必须存在耦合,选择适当的接口复杂性与耦合类型的关系:接口复杂性接口方式接口数据的复杂性无接口关系直接引用过程调用语句数据项作参数数据结构,变量名作参数内容耦合其它耦合开关量,起控制变量作用公用数据区全程变量数据耦合标记耦合控制耦合外部耦合公共耦合非直接耦合59接口复杂性与耦合类型的关系:接接口方式接口数据无接口关系直接内聚与耦合密切相关,同其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合。设计目标:力争强内聚、弱耦合。60内聚与耦合密切相关,同其它模块强耦合的模块60第五章软件设计概述§5.1软件设计的目标和任务§5.2软件设计基本概念§5.3模块化设计61第五章软件设计概述§5.1软件设计的目标和任务1§5.1软件设计的任务软件需求:解决“做什么”

软件设计:解决“怎么做”

62§5.1软件设计的任务软件需求:解决“做什么”2软件设计的任务

问题结构(软件需求)软件结构;

从软件需求规格说明书出发,形成软件的具体设计方案。映射63软件设计的任务

映射31.软件的总体结构主要回答的问题软件的组成部分软件的层次关系模块的内部处理逻辑模块之间的界面641.软件的总体结构主要回答的问题软件的组成部分42.软件设计方法结构化设计方法(SD)面向数据结构的设计方法(JSD方法)面向对象的设计方法(OOD)652.软件设计方法结构化设计方法(SD)53.软件设计分为两个阶段:(1)概要设计(总体设计)确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。(2)详细设计确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。663.软件设计分为两个阶段:(1)概要设计(总体设计)6§5.2软件设计的基本概念1.模块化2.抽象与细化3.信息隐蔽4.软件复用67§5.2软件设计的基本概念1.模块化71.模块化模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问题的功能。模块:一个拥有明确定义的输入、输出和特性的程序实体。681.模块化模块化:把程序划分成若干个模块,每个模块完成一个子模块模块是具有一定功能的可以用名词调用的程序语句集合,如:独立的汇编程序Pascal过程69模块模块是具有一定功能的可以用名词调用的程序语句集合,如:9概要设计的基本概念将系统划分成模块决定每个模块的功能决定模块的调用关系决定模块的界面,即模块间传递的数据70概要设计的基本概念将系统划分成模块102.抽象(Abstraction)与细化抽象:解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特性而不考虑细节。

712.抽象(Abstraction)与细化11抽象(Abstraction)抽象原则应用举例WindowsNT一体化的I/O系统设计文件管理网络管理设备管理高速缓冲存储器OS对虚拟文件的字节流,虚拟文件可为任何设备和实体抽象72抽象(Abstraction)抽象原则应用举例文件管理O对虚细化:即分解。在逐步细化中,特别强调这种分解的“逐步”性质,即每一部分仅较其前一部增加“少量”的细节。这样,在相邻两部之间就只有微小的变化,不难验证它们的内容是否等效。73细化:即分解。133.信息隐蔽(InformationHiding)信息隐蔽的含义:有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的信息。换句话说:模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。信息隐蔽:对模块内部信息访问的约束信息隐蔽的基本原则:功能独立,高内聚且低耦合743.信息隐蔽(InformationHiding)信息隐蔽§5.3模块化设计1.分解2.模块独立性内聚耦合自顶向下与自底向上设计75§5.3模块化设计1.分解15模块化(Modularity)模块化是好的软件设计的一个基本准则高层模块从整体上把握问题,隐蔽细节

复杂问题较小问题

分解可减小解题所需的总的工作分解76模块化(Modularity)模块化是好的软件设计的一个C(p1)>C(p2)则E(p1)>E(p2)其中:p1和p2是两个问题C(x)是由x问题决定的复杂性E(x)是解决x问题所需要的工作量C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)试验发现模块划分得越小成本越低,但是集成成本却随着模块划分得越小成本越高。如何确定模块化分的最小成本区,并保证模块的最佳性能,是设计活动中的主要任务之一。1.分解"各个击破"理论77C(p1)>C(p2)则E(p1)>E(p2)C(p1+模块数与开发工作量的关系成本或工作量模块数量软件总成本集成成本成本/模块M最小成本区域78模块数与开发工作量的关系成本或工作量模块数量软件总成本集成成2.模块的独立性模块独立性的概念模块完成独立的功能符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小792.模块的独立性模块独立性的概念19模块独立性的度量

模块独立性取决于模块的内部和外部特征。SD方法提出的定性的度量标准:模块自身的内聚性模块之间的耦合性

80模块独立性的度量模块独立性取决于模块的内部和外部特征。202.模块独立性的度量之一:内聚性一个模块内部各成分之间相互关联的强度设计目标:高内聚(一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的)812.模块独立性的度量之一:内聚性21模块的内聚性类型:低巧合内聚内逻辑内聚聚时间内聚性过程内聚通信内聚信息内聚高功能内聚模块独立性弱(功能分散)强(功能单一)82模块的内聚性类型:低巧合内聚模弱(功能分散)强(功(1)巧合内聚(偶然内聚)

模块内各部分间无联系ABCMMOVEOTORREADFILEFMOVESTOT模块M中的三个语句没有任何联系缺点:可理解性差,可修改性差。例:83(1)巧合内聚(偶然内聚)模块内各部分间无联系ABCM(2)逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。84(2)逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一2逻辑内聚模块ABCEFGABCEFGA1B1C1EFG模块内部逻辑E、F、G逻辑功能相似,组成新模块EFG公用代码段公用代码段缺点:增强了耦合程度(控制耦合)不易修改,效率低。85逻辑内聚模块ABCEFGABCEFGA1B1C1EFG模块内(3)时间内聚模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。例如:初始化系统模块、系统结束模块、紧急故障处理模块等。86(3)时间内聚模块完成的功能必须在同一时间内执行,这些功能(4)过程内聚模块内各处理成分相关,且必须以特定次序执行。87(4)过程内聚模块内各处理成分相关,且必须以特定次序执行。过程内聚模块读入成绩单读入并审查成绩单审查成绩单统计成绩打印成绩统计并打印成绩88过程内聚模块读入读入并审查审查统计打印统计并打印28(5)通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果。89(5)通信内聚模块内各部分使用相同的输入数据,或产生29通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块90通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报(6)信息内聚信息内聚指模块完成多个功能,各个功能都在同一数据结构上操作,每个功能有唯一入口。如对同一个数据库的“查找—添加—删除—修改”模块。91(6)信息内聚信息内聚指模块完成多个功能,各个功能都在同一数(7)功能内聚模块仅包括为完成某个功能所必须的所有成分。(模块所有成分共同完成一个功能,缺一不可)内聚性最强92(7)功能内聚模块仅包括为完成某个功能所必须的所有成分。3功能内聚模块建立方程组系数矩阵高斯消去法回代高斯消去法解题流程93功能内聚模块建立方程组系数矩阵高斯消去法回代高斯模块独立性的度量之二:

耦合性是模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。

耦合性越高,模块独立性越弱94模块独立性的度量之二:耦合性是模块间相互依赖程度的度耦合强度依赖的因素:一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度95耦合强度依赖的因素:一模块对另一模块的引用35模块间耦合的类型:低非直接耦合耦数据耦合合标志耦合性控制耦合外部耦合公共耦合

高内容耦合模块独立性弱(低耦合)强(中耦合)(较强耦合)(强耦合)96模块间耦合的类型:低非直接耦合模弱((1)非直接耦合

两个模块没有直接关系(模快1和模快2),模块独立性最强。模块1模块2模块3模块497(1)非直接耦合两个模块没有直接关系(模快1和模快2)(2)数据耦合一模块调用另一模块时,被调用模块的输入、输出都是简单的数据,属松散耦合。98(2)数据耦合一模块调用另一模块时,被调用模块的输入、38数据耦合举例开发票计算水费单价数量金额99数据耦合举例开发票计算水费单价金额39数据耦合举例计算水电费计算水费计算电费用水量用电量水费电费100数据耦合举例计算水电费计算水费计算电费用水量用电量水费电费4(3)标记耦合(特征耦合)如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记偶合。101(3)标记耦合(特征耦合)如两个模块通过传递数据结构(不是标记耦合举例计算水电费计算水费计算电费住户情况水费电费住户情况“住户情况”是一个数据结构,图中模块都与此数据结构有关。“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。102标记耦合举例计算水电费计算水费计算电费住户情况水费电费住户情将标记耦合修改为数据耦合举例计算水电费计算水费计算电费本月用水量本月用电量水费电费103将标记耦合修改为数据耦合举例计算水电费计算水费计算电费本月本(4)控制耦合一模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能。104(4)控制耦合一模块通过开关量、标志、名字等控制信息,44控制耦合举例A计算平均分或最高分B平均/最高成绩105控制耦合举例A计算平均分B平均/最高成绩45控制耦合举例读入分数输出结果计算平均分计算最高分平均/最高?调用逻辑性模块B时,须先传递控制信号(平均分/最高分),以选择所需的操作。控制模块必须知道被控模块的内部逻辑,增强了相互依赖。B106控制耦合举例读入分数输出结果计算平均分计算最高分平均/控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。去除模块间控制耦合的方法:(1)将被调用模块内的判定上移到调用模块中进行;(2)被调用模块分解成若干单一功能模块。107控制耦合增加了理解和编程的复杂性,调用模块47改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算最高分B2108改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算(5)外部耦合一组模块均与同一外部环境关联(例如,I/O模块与

温馨提示

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

评论

0/150

提交评论