内聚耦合软件工程

embedded/2025/1/16 17:09:29/

内聚是软件工程中用来描述一个模块内部各个元素彼此结合的紧密程度的度量指标。它对于模块的独立性和可维护性有着重要影响。

内聚的类型

内聚性可以从低到高分为以下几种类型:

1. 偶然内聚:模块内的各处理元素之间没有任何联系。这种内聚性最弱。

2. 逻辑内聚:模块内执行几个逻辑上相关的功能,通过参数确定该模块完成哪一个功能。

3. 时间内聚:把需要同时或顺序执行的动作组合在一起形成的模块为时间内聚模块。

4. 过程内聚:如果一个模块内的处理元素是相关的,而且必须以待定次序执行,则称为过程内聚。

5. 通信内聚:指模块内所有处理功能都通过使用公用数据发生关系。

6. 顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行。

7. 功能内聚:模块内所有元素共同完成一个功能,缺一不可,模块已不可再分。这是最强的内聚。

内聚性的设计原则

- 高内聚:在设计时应尽量追求高内聚,即模块的功能明确且单一。高内聚的模块独立性强,易于理解和维护。

- 低耦合:与高内聚相对应,低耦合指的是模块之间的依赖关系尽量少,这有助于减少修改一个模块对其他模块的影响,提高系统的可维护性。


http://www.ppmy.cn/embedded/154436.html

相关文章

[IGP]ospf ip frr 快速重路由技术

概念 OSPF的快速重路由(FRR)通常是通过使用LFA算法预先计算的备用路径来实现的。这些备用路径用于在发 生链路或节点故障时迅速切换流量,避免网络服务中断。LFA算法计算备份链路的基本思路:以可提供备份链路的邻居为根节点&#…

68_Redis数据结构-QuickList

1.QuickList介绍 虽然ZipList能够节省内存,但它要求申请的内存空间必须是连续的,当内存占用较高时,这会导致申请内存的效率变得很低。如何解决这一问题?我们可以考虑通过限制ZipList的长度和单个entry的大小来减轻对连续大块内存的需求,从而优化内存申请过程。 当需要存…

我在2025年自学网络安全(黑客)

当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。 代码解释 一、网络安全的基本概念 网络安全是一种保护:它涉及保护…

统计学习算法——逻辑斯谛回归

内容来自B站Up主:动画讲编程https://www.bilibili.com/video/BV1CR4y1L7RC、风中摇曳的小萝卜https://www.bilibili.com/video/BV17r4y137bW,仅为个人学习所用。 极大似然估计 几率、概率与似然 几率是指某个事件发生的可能性与不发生的可能性之比&am…

刷题记录 回溯算法-10:93. 复原 IP 地址

题目:93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址…

软件设计大致步骤

由于近期在做软件架构设计,这里总结下大致的设计流程 软件设计流程 1 首先要先写系统架构图,将该功能在整个系统的位置以及和大致的内部模块划分 2 然后写内部的结构图,讲内部的各个子系统,模块,组件之间的关系和调用…

SpringBoot之OriginTrackedPropertiesLoader类源码学习

源码解析 /*** 作用是从给定的资源(如文件或输入流)中加载 .properties 文件,* 并将属性键值对转换为带有来源信息(origin)的 OriginTrackedValue 对象。*/ public class OriginTrackedPropertiesLoader {private fin…

1,Linux环境变量基本定义(基于Ubuntu示例进行讲解)

linux环境变量的概念 Linux环境变量(准确说应该是shell变量),是直接存储在操作系统中的一组键值对(dict类型),用于配置系统和应用程序的操作行为。 【有经验的描述】:它们的工作原理很简单&am…