常见的耦合与内聚课件_第1页
常见的耦合与内聚课件_第2页
常见的耦合与内聚课件_第3页
常见的耦合与内聚课件_第4页
常见的耦合与内聚课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

常见的耦合与内聚常见的耦合与内聚非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明内容耦合:当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过不正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。内容耦合:当一个模块直接修改或操作另一个模块的数据时,或一偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。通信内聚:如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。顺序内聚:如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行。功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能。过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次计算多个地点的日平均温度初始化变量sum并打开文件创建新的温度记录存储温度记录关闭文件并打印平均温度读取地点,时间和温度计算特定地点的日平均温度计算多地点日平均温度程序计算多个地点初始化变量创建新的温度记录存储温度记录关闭文件并答:从上图的层次图可能看出,这个程序的功能是计算机若干个指定地点的每日平均温度。变量sum保存某地一天之内在指定的时间取样点的温度之和。程序运行时首先初始化变量sum并打开文件,然后读取地点,时间和温度等原始数据,创建用于保存这些数据的温度记录,接下来计算特定地点的日平均温度,存储温度记录。重复调用“读取地点,时间和温度”,“创建新的温度记录”“计算机特定地点的日平均温度”和“存储温度记录”等模块直至计算机出并保存好所有指定地点的日平均温度。最后,打印平均温度并并关闭文件。从上述叙述可知,“计算多个地点的日平均温度”,“读取地点,时间和温度”,“创建新的温度记录”,“计算特定地点的日平均温度”和“存储温度记录”等5个模块,每个都完成一个单一的功能,模块内所有处理元素都为完成同一个功能服务,彼此结合得十分紧密,因此,这5个模块的内聚类型都是功能内聚。答:从上图的层次图可能看出,这个程序的功能是计算机若干个指定初看起来,由于初始化变量sum和打开文件这两个操作都是在程序运行的初始阶段完成的,“初始化变量sum并打开文件”这个模块的内聚类型似乎是时间内聚。但是,初始化变量sum是本程序特有的操作,而打开文件是硬件要求的操作,是任何使用文件的程序都包含的一个操作,并非本程序特有的操作。当可以分配两个或更多个不同级别的内聚类型给一个模块时,规则是分配最低级别的内聚类型给该模块。因此,“初始化变量sum并打开文件”这个模块的内聚类型是偶然内聚。同理,“关闭文件并打印平均温度”这个模块的内聚类型也是偶然内聚。初看起来,由于初始化变量sum和打开文件这两个操作都是在程序例2:分析下图,确定模块之间的耦合类型。pqutsr124356模块p,t和u更新同一个数据库例2:分析下图,确定模块之间的耦合类型。pqutsr1243在上图中已经给模块之间的接口编了号码,下表描述了模块间的接口。编号输入输出1飞机类型状态标志2飞机零件清单3功能代码4飞机零件清单5零件编号零件制造商6零件编号零件名称在上图中已经给模块之间的接口编了号码,下表描述了模块间的接口答:综合分析上图和上表所提供的信息可知各个模块之间的耦合情况。例如,当模块p调用模块q时(接口1),它传递了一个参数----飞机类型。当模块q把控制返还模块p时,它传回一个状态标志。某些模块之间的耦合类型是明显的,例如,模块p和q之间(接口1),模块r和t之间(接口5)及模块s和u之间(接口6)都是数据耦合,因为它们传递的都是一个简单变量。如果两个模块中的一个模块给另一个模块传递控制元素,也就是说,如果一个模块明显地控制另一个模块的逻辑,则它们之间具有控制耦合。例如,当给具有逻辑内聚的模块传递功能代码时就传递了控制元素。另一个控制耦合的例子是把控制开关作为一个参数传递。上图中的模块q调用模块r时(接口3)传递一个功能代码,因此,这两个模块之间是控制耦合。答:综合分析上图和上表所提供的信息可知各个模块之间的耦合情况上图右侧文字说明,模块p,t和u更新同一个数据库,因此,它们之间具有公共环境耦合。当模块p调用模块s时(接口2),如果模块s使用或更新模块p传递给它的零件清单中的所有元素,则模块p和s之间的耦合是数据耦合;但是,如果模块s只访问该清单中的一部分元素,则模块p和s之间的耦合是特征耦合。模块q和s之间(接口4)的耦合情况与此类似。由于上图与上表中给出的信息沿不足以准确地描述各个模块的功能,所以不能确定这两对模块之间的耦合是数据耦合还是特征耦合。上图右侧文字说明,模块p,t和u更新同一个数据库,因此,它们常见的耦合与内聚常见的耦合与内聚非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明内容耦合:当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过不正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。内容耦合:当一个模块直接修改或操作另一个模块的数据时,或一偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。通信内聚:如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。顺序内聚:如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行。功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能。过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次计算多个地点的日平均温度初始化变量sum并打开文件创建新的温度记录存储温度记录关闭文件并打印平均温度读取地点,时间和温度计算特定地点的日平均温度计算多地点日平均温度程序计算多个地点初始化变量创建新的温度记录存储温度记录关闭文件并答:从上图的层次图可能看出,这个程序的功能是计算机若干个指定地点的每日平均温度。变量sum保存某地一天之内在指定的时间取样点的温度之和。程序运行时首先初始化变量sum并打开文件,然后读取地点,时间和温度等原始数据,创建用于保存这些数据的温度记录,接下来计算特定地点的日平均温度,存储温度记录。重复调用“读取地点,时间和温度”,“创建新的温度记录”“计算机特定地点的日平均温度”和“存储温度记录”等模块直至计算机出并保存好所有指定地点的日平均温度。最后,打印平均温度并并关闭文件。从上述叙述可知,“计算多个地点的日平均温度”,“读取地点,时间和温度”,“创建新的温度记录”,“计算特定地点的日平均温度”和“存储温度记录”等5个模块,每个都完成一个单一的功能,模块内所有处理元素都为完成同一个功能服务,彼此结合得十分紧密,因此,这5个模块的内聚类型都是功能内聚。答:从上图的层次图可能看出,这个程序的功能是计算机若干个指定初看起来,由于初始化变量sum和打开文件这两个操作都是在程序运行的初始阶段完成的,“初始化变量sum并打开文件”这个模块的内聚类型似乎是时间内聚。但是,初始化变量sum是本程序特有的操作,而打开文件是硬件要求的操作,是任何使用文件的程序都包含的一个操作,并非本程序特有的操作。当可以分配两个或更多个不同级别的内聚类型给一个模块时,规则是分配最低级别的内聚类型给该模块。因此,“初始化变量sum并打开文件”这个模块的内聚类型是偶然内聚。同理,“关闭文件并打印平均温度”这个模块的内聚类型也是偶然内聚。初看起来,由于初始化变量sum和打开文件这两个操作都是在程序例2:分析下图,确定模块之间的耦合类型。pqutsr124356模块p,t和u更新同一个数据库例2:分析下图,确定模块之间的耦合类型。pqutsr1243在上图中已经给模块之间的接口编了号码,下表描述了模块间的接口。编号输入输出1飞机类型状态标志2飞机零件清单3功能代码4飞机零件清单5零件编号零件制造商6零件编号零件名称在上图中已经给模块之间的接口编了号码,下表描述了模块间的接口答:综合分析上图和上表所提供的信息可知各个模块之间的耦合情况。例如,当模块p调用模块q时(接口1),它传递了一个参数----飞机类型。当模块q把控制返还模块p时,它传回一个状态标志。某些模块之间的耦合类型是明显的,例如,模块p和q之间(接口1),模块r和t之间(接口5)及模块s和u之间(接口6)都是数据耦合,因为它们传递的都是一个简单变量。如果两个模块中的一个模块给另一个模块传递控制元素,也就是说,如果一个模块明显地控制另一个模块的逻辑,则它们之间具有控制耦合。例如,当给具有逻辑内聚的模块传递功能代码时就传递了控制元素。另一个控制耦合的例子是把控制开关作为一个参数传递。上图中的模块q调用模块r时(接口3)传递一个功能代码,因此,这两个模块之间是控制耦合。答:综合分析上图和上表所提

温馨提示

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

评论

0/150

提交评论