分享

软件工程中的耦合

 旭龙 2012-05-26
软件工程中的耦合:
  简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。 
  就是依赖性,相关性吧!!! 
  有软硬件之间的耦合,还有软件各模块之间的耦合。 
  耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.一般模块之间可能的连接方式有七种,耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
  耦合是对一个软件结构内各个模块之间互连程度的度量。
  内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
  1. 什么是内聚?什么是耦合? 
  内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。 
  2. 内聚分为哪几类?耦合分为哪几类? 
  内聚有如下的种类,它们之间的内聚度由弱到强排列如下: 
  (1) 偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。 
  (2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能 
  (3) 时间内聚 
  (4) 过程内聚 
  (5) 通信内聚 
  (6) 顺序内聚 
  (7) 功能内聚 
  耦合可以分为以下几种,它们之间的耦合度由高到低排列如下: 
  (1) 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
             1. 一个模块直接访问另一个模块的内部数据; 
             2. 一个模块不通过正常入口转到另一模块内部; 
             3.两个模块有一部分程序代码重迭(只可能出现在汇编语言中); 
             4.一个模块有多个入口。 
  (2) 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
  (3) 外部耦合: 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
  (4) 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。 
  (5) 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。 
  (6) 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。 
  (7) 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多