计算机的模块的内聚程度和模块间的耦合程度是什么啊!
2012-02-10 15:42
561 查看
这个一般是程序模块里面的一个概念,高内聚,低耦合,这样的代码写出来执行率要高些,如果耦合的多了,就相当人际关系复杂,不好处理,大致你可以这么理解一下,记住高内聚,低耦合就好了
提问人的追问 2010-01-20 11:17
内聚指得是什么?耦合又是指什么?
回答人的补充 2010-01-20 11:26
摘自: http://baike.baidu.com/view/156245.htm?fr=ala0_1_1
内聚度是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度.
内聚度按其高低程度可分为7级,内聚度越高越好。最差的称为偶然内聚(coincidental cohesion)。所谓偶然性内聚是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。常见的偶然性内聚情形是,当程序员写完一个程序后发现有一组语句多处出现,于是为节省内存便将这组语句单独组成一个模块。如果一个模块完成的诸任务逻辑上相关(例如,一个模块产生所有与类型无关的输入),则称之为逻辑性内聚(logical cohesion)。如果一个模块包含的诸任务必须在同一时间段内执行(例如,一个初始化模块),则称之为时间性内聚(temporal
cohesion)。
上述三种内聚形式通常认为是低级内聚,
中级内聚形式有两种,即过程性内聚(procedural cohesion)和通信性内聚(communicational cohension)。模块的过程性内聚度是指,模块内成分彼此相关,并且必须按特定的次序执行;模块的通信性内聚度是指,模块中各成分都将对数据结构的同一区域进行操作,以达到通信的目的。
高级内聚度也有两种形式,即顺序性内聚(sequential cohesion)和功能性内聚(functional cohesion)。如果一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,则称为顺序内聚;如果模块内所有成分形成一个整体,完成单个功能,则称为功能内聚,功能内聚是最高程度的内聚形式。
耦合强度,依赖于以下几个因素:
(1)一个模块对另一个模块的调用;
(2)一个模块向另一个模块传递的数据量;
(3)一个模块施加到另一个模块的控制的多少;
(4)模块之间接口的复杂程度。
简单地说,软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。
有软硬件之间的耦合,还有软件各模块之间的耦合。
耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.一般模块之间可能的连接方式有七种,耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
耦合是对一个软件结构内各个模块之间互连程度的度量。
1. 什么是内聚?什么是耦合?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述
的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决
于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
2. 内聚分为哪几类?耦合分为哪几类?
内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1) 偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同
的功能,这种模块称为巧合强度模块。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模
块参数来确定该模块应完成哪一种功能
(3) 时间内聚
(4) 过程内聚
(5) 通信内聚
(6) 顺序内聚
(7) 功能内聚
耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:
(1) 内容耦合
(2) 公共耦合
(3) 外部耦合
(4) 控制耦合
(5) 标记耦合
(6) 数据耦合
(7) 非直接耦合
3.什么是时间内聚?什么是公共耦合?
时间内聚。这种模块顺序完成一类相关功能,比如初始化模块,它顺序为变量置初值。
如一组模块都访问同一全局数据结构,则称之为公共耦合