关于软件工程中的耦合和内聚
2010-01-26 11:01
423 查看
撇开通信、机械行业的耦合概念不提,单纯针对软件工程中的耦合概念,与之如影随形的另一个名词——内聚。
耦合:是对一个软件结构内各个模块之间相互依赖程度的度量;耦合的强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
内聚:则标志一个模块内各个元素彼此结合的紧密程度;内聚从功能角度衡量模块内的联系,好的内聚模块应当恰好做一件事。
需求的原则是:强内聚,弱耦合。然而在实际需求过程中,往往会因为技术驱动,导致需求间耦合很紧,不利于后期有效地迭代开发。有效的解决办法是按流程、和业务梳理需求。
实际中,任何一个软件都不可能完全做到弱耦合的。提倡弱耦合的最终目的是为了防止变更时牵扯过广,难以控制,以及后期的有效迭代开发。因此根据实际情况,灵活的控制耦合度才是根本。比如,变更可能性很小的需求,即便耦合度高一些,也是不会有太大影响。而变更系数较大的需求,在设计时则需重点关注耦合性的问题,防止牵一发动全身的情况发生。
耦合:是对一个软件结构内各个模块之间相互依赖程度的度量;耦合的强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
内聚:则标志一个模块内各个元素彼此结合的紧密程度;内聚从功能角度衡量模块内的联系,好的内聚模块应当恰好做一件事。
需求的原则是:强内聚,弱耦合。然而在实际需求过程中,往往会因为技术驱动,导致需求间耦合很紧,不利于后期有效地迭代开发。有效的解决办法是按流程、和业务梳理需求。
实际中,任何一个软件都不可能完全做到弱耦合的。提倡弱耦合的最终目的是为了防止变更时牵扯过广,难以控制,以及后期的有效迭代开发。因此根据实际情况,灵活的控制耦合度才是根本。比如,变更可能性很小的需求,即便耦合度高一些,也是不会有太大影响。而变更系数较大的需求,在设计时则需重点关注耦合性的问题,防止牵一发动全身的情况发生。
相关文章推荐
- 软件工程中的耦合与内聚
- 关于JAVA 封装性 以及高内聚,低耦合的理解
- 软件工程-耦合内聚
- 关于模块化设计的内聚和耦合的个人理解
- 软件工程--------耦合和内聚
- 软件工程中的高内聚低耦合
- 【软件工程】模块分解之内聚和耦合
- Java程序设计关于低耦合与高内聚理念
- 软件工程中的内聚与耦合
- 软件工程之耦合与内聚
- 软件工程之模块的耦合与内聚
- 关于“高内聚,低耦合”的笔记
- 关于 iOS 开发中,代码如何做到高内聚,低耦合,MVC 三层分离的小感悟
- 关于耦合内聚的概念
- Java关于低耦合与高内聚理念
- 关于“内聚和耦合”
- [目录]耦合与内聚的应用
- [转]什么是高内聚、低耦合
- [软件工程]关于“学生毕业论文选题”的需求描述
- java多聚合,少继承,低耦合,高内聚