程序代码模块的内聚与耦合和测试的关系
上一篇 /
下一篇 2006-12-11 15:49:39
E"Al A:Trz0 首先我们引出内聚与耦合的两个概念.内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求高内聚,低耦合。
zYA
F"e051Testing软件测试网[k?
b2VYcF1Y51Testing软件测试网/K3F C \7~
OZ
y(Y
内聚按强度从低到高有以下几种类型:
!N
u0e TnF$L0
qA+MK1pDW5l0
LiXY.jA1M|y5Yg0(1)偶然内聚。如果一个模块的各成分之间毫无关系,则称为偶然内聚。51Testing软件测试网~2I'L4ET9Hr
(2)逻辑内聚。几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。51Testing软件测试网 z4S9i*l*h4Vu-B Pb
(3)时间内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。51Testing软件测试网&_NA%aq:qS
(4)过程内聚。如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。51Testing软件测试网/XO,f'j [}(t@,BG3D(z
(5)通信内聚。如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
6]7W*Y,Dy,J&R0(6)顺序内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。