耦合和内聚
来源:互联网 发布:希尔瓦娜斯 知乎 编辑:程序博客网 时间:2024/04/29 13:11
1.什么是内聚?什么是耦合?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
2.内聚分为哪几类?耦合分为哪几类?
内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1)偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。
(2)逻辑内聚。这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能
几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
(3)时间内聚
如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
(4)过程内聚
(5)通信内聚
如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
(6)顺序内聚
顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
(7)功能内聚
内聚是程序处理过程中相关紧密程度的度量,功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割
/*********************************************我是小小分割线*****************************************/
耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:
(1)内容耦合
是指一个模块依赖另一个模块的内部作业(例如,访问另一个模块的局域变量),因此修改第二个模块处理的数据(位置、形态、时序)也就影响了第一个模块。
(2)公共耦合
若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
(3)外部耦合
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
(4)控制耦合
如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能
(5)标记耦合
标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.
(6)数据耦合
(7)非直接耦合
两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
- 内聚和耦合
- 内聚和耦合
- 耦合和内聚
- 耦合和内聚
- 内聚和耦合
- 耦合和内聚
- 内聚和耦合
- 软件工程--------耦合和内聚
- 内聚和耦合的意思
- 关于软件工程中的耦合和内聚
- 模块的耦合和内聚
- 内聚和耦合的介绍
- 模块的内聚和耦合
- 内聚与耦合
- 内聚与耦合
- 内聚与耦合
- 耦合 与 内聚
- 耦合 与 内聚
- 2014专题训练之动态规划总结
- 投影矩阵的推导(Deriving Projection Matrices)
- 在UBUNTU 13.1 中使用五笔拼音混合输入法
- matlab调用c++涉及到的mex文件
- SQL查询表中最后5条记录
- 耦合和内聚
- python 中文乱码 问题深入分析
- odex 转换为 dex
- zoj 3772 Calculate the Function 线段树+矩阵
- iWatch将至!苹果WWDC14将于六月二号开场
- java设计模式之模板方法模式Template method
- bitset类学习(补充)
- wifi 基础知识
- tomcat相关