内聚度和耦合度的概念

内聚度——

内聚度是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。内聚度按其高低

程度可分为7级,内聚度越高越好。

1 内聚度简介

2 等级划分

内聚度简介

内聚度是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。

等级划分编辑

内聚度按其高低程度可分为7级,内聚度越高越好。

1.最差的称为偶然内聚(coincidental cohesion)。所谓偶然性内聚是指一个模块内各成分为完成一组功能而组合在

一起,它们相互之间即使有关系,也很松散。常见的偶然性内聚情形是,当程序员写完一个程序后发现有一组语句多

处出现,于是为节省内存便将这组语句单独组成一个模块。如果一个模块完成的诸任务逻辑上相关(例如,一个模块

产生所有与类型无关的输入),则称之为逻辑性内聚(logical cohesion)。如果一个模块包含的诸任务必须在同一时

间段内执行(例如,一个初始化模块),则称之为时间性内聚(temporal cohesion)。

上述三种内聚形式通常认为是低级内聚,

2.中级内聚形式有两种,即过程性内聚(procedural cohesion)和通信性内聚(communicational cohesion)。模块的

过程性内聚度是指,模块内成分彼此相关,并且必须按特定的次序执行;模块的通信性内聚度是指,模块中各成分

都将对数据结构的同一区域进行操作,以达到通信的目的。

3.高级内聚度也有两种形式,即顺序性内聚(sequential cohesion)和功能性内聚(functional cohesion)。如果一个

模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,则称为顺序内聚;如果模块内所有成分形成一个

整体,完成单个功能,则称为功能内聚,功能内聚是最高程度的内聚形式。

设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性

耦合度—–

耦合度顾名思义,就是两者之间的密切关系程度,也可以理解为互相依赖的程度。
处理机中概念
处理机之间连接的紧密程度,可用处理机之间的距离及相互连接的信号线数目表示计算机网络与多机系统在耦合程度上
有明显差别:多机系统是紧耦合系统,计算机网络属于松耦合系统。
紧耦合多机系统又称为直接耦合系统,是指各处理机之间通过互联网共享内存。紧耦合多机系统由P台处理机、m个存储
器模块、d个I/O通道和3个互联网网络构成。处理机-存储器网络实现处理机与各存储模块的连接。处理机中断信号网络
实现多处理机之间的互联。处理机-I/O互联网络实现处理机与外设的连接。每个处理机可自带局部存储器,也可自带cac
he。存储器模块可采用流水工作方式。紧耦合多机系统多用于并行作业中的多任务,一般处理机是同构的。SMP(symmet
rical multi-processing)属于紧耦合多机系统。
松耦合多机系统又称为间接耦合系统,是指各处理机间通过共享I/O子系统、通道或通信线路实现机间通信,不共享内存
。松耦合多处理机由P个处理机、1个通道、1个仲裁开关和消息传送系统构成。每个处理机带有一个局部存储器和一组I/
O设备。在仲裁开关的通道中有高速通信存储,用来缓冲传送的信息块。松散耦合多处理机适合粗粒度的并行计算。MPP
(massive parallel processing)属于松耦合多机系统
软件设计中概念
基本概念
软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。
耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面
传送数据的多少。
模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,
同时表明其独立性越差。
降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计
顺利进行。
内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味着弱内聚,强内聚常意味着弱耦合。
等级划分
耦合度可分为七级。
a)非直接耦合:
两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的
b)数据耦合:
一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共
数据结构或外部变量。
c)标记耦合:
如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。
d)控制耦合:
一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能
e)外部耦合:
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息
f)公共耦合:
一组模块都访问同一个公共数据环境。该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
g)内容耦合:
一个模块直接修改另一个模块的数据,或直接转入另一个模块
内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低到高的次序依此为:偶然
内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

    原文作者:Q小样
    原文地址: https://blog.csdn.net/qq_33286818/article/details/52846919
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞