软件工程导论 5.2.5 耦合内聚小结
模块的独立程度可以由两个定性标准度量,分别称为耦合与内聚。
1.耦合
耦合衡量不同模块彼此之间的互相依赖的紧密程度。
耦合分为以下几类:
数据耦合:两个模块间彼此通过参数交换信息,交换的信息仅仅是数据。这是一种低耦合。
控制耦合:交换的信息包含控制信息。是一种中等程度的耦合。
公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。
内容耦合:一个模块访问另一个模块的内部数据
或 一个模块不通过正常入口而转到另一个模块的内部
或 两个模块有一部分代码重叠
或 一个模块有多个入口
应避免使用内容耦合,尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围。
2.内聚
内聚衡量一个模块内各个元素彼此间结合的紧密程度。
内聚分为以下几类:
偶然内聚:各个元素没有实质性联系。
逻辑内聚:不同功能混在一起,合用部分程序代码。
时间关系
过程内聚:模块内必须以特定次序执行。
通信内聚:所有元素都使用同一个输入数据产生同一个输出数据。
顺序内聚:处理必须顺序执行。
功能内聚:所有元素处理属于一个整体,完成一个单一的功能。
给上述内聚的优劣评分 功能内聚 10分时间内聚 3分
顺序内聚9分逻辑内聚1分
通信内聚7分偶然内聚0 分
过程内聚5分
【软件工程导论 5.2.5 耦合内聚小结】在软件工程中,重要的是设计时力争做到高内聚,低耦合,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。
推荐阅读
- 软件设计师考试|软件设计师考试 | 第五章 软件工程基础知识 | 需求分析
- 使用虚幻引擎中的C++导论
- 软件工程|UTM(流量统计和分析基础)
- [Coursera 计算导论与C语言基础] 第十周作业(下)
- 数学思维导论(一) Introduction to Mathematical Thinking 什么是数学(为什么要学习数学?)
- 算法导论学习笔记——2.3.1分治法——习题2-4逆序对数
- 算法导论学习笔记——动态规划
- 软件工程|四叶草团队介绍
- 软件工程毕业,在北京工作两年后再来理解《人月神话》
- 你是不是被所谓的软件工程误导了