软件工程中的耦合和内聚

2024-04-19 18:20
文章标签 耦合 软件工程 内聚

本文主要是介绍软件工程中的耦合和内聚,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

耦合

在软件工程中,耦合是一个重要的概念,用于描述模块或组件之间的相互依赖程度。

从非直接耦合到内容耦合的耦合性依次升高,所以非直接耦合是我们最想见到的结果,内容耦合是我们最不想见到的结果。

  • 非直接耦合
  • 数据耦合
  • 标记耦合
  • 控制耦合
  • 特征耦合
  • 公共耦合
  • 内容耦合

非直接耦合

两个模块之间没有直接关系, 它们之间的联系完全是通过主模块的控制和调用实现的,这种被称为非直接耦合

数据耦合

如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。

标记耦合

如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合。(和数据耦合类似,但是它传递的是一个对象,或一个数据结构,而数据耦合传递的只是数值)

控制耦合

如果一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能,这种耦合为控制耦合。

特征耦合

特征耦合是指两个都与同一个数据结构有关的模块发生的耦合。

公共耦合

若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

内容耦合

如果发生下列情形,两个模块之间就发生了内容耦合。

  1. 一个模块直接访问另一个模块的内部数据;
  2. 一个模块不通过正常入口转到另一模块内部;
  3. 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
  4. 一个模块有多个入口。

内聚

功能内聚是我们需要的,偶然内聚是我们最不希望看到的。

  • 偶然内聚
  • 逻辑内聚
  • 时间内聚
  • 过程内聚
  • 通信内聚
  • 顺序内聚
  • 功能内聚

偶然内聚

指一个模块内的各处理元素之间没有任何联系。

逻辑内聚

指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚

把需要同时执行的动作组合在一起形成的模块。

过程内聚

指一个模块完成多个任务,这些任务必须按指定的次序执行。

通信内聚

指模块内的所有处理元素都在同一数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。

顺序内聚

指一个模块中的各个处理元素都密切相关于同一各功能且必须顺序执行,前一个功能元素的输出就是下一个功能的输入。

功能内聚

指模块内的所有元素共同作用完成一个功能,缺一不可。

这篇关于软件工程中的耦合和内聚的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918249

相关文章

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

【软件工程】软件开发模型

三、瀑布模型  四、几种软件开发模型的主要特点 题目 判断题 选择题 小结

第一章 软件工程的概述简记

第一章  软件工程的概述         *软件的概念:软件(Software)是一系列按照特定顺序组织的计算机数据和指令的集合。         软件的分类:(5大类)                   *1.基于软件功能划分                                  1)系统软件

软件工程技术专业软件开发综合实训室解决方案

一、行业背景与前景分析 1.1 软件工程技术专业就业前景 近年来,中国的软件行业取得了显著的成就,即便在全球经济受到新冠疫情冲击的情况下,仍保持了强劲的增长势头。据工业和信息化部发布的数据,2021年我国软件和信息技术服务业的业务收入达到85371亿元人民币,同比增长18.3%,远超同期国内生产总值的增长率。这一成就不仅体现了中国软件行业的韧性和发展潜力,也为未来的持续增长奠定了坚实的基

《软件工程导论》(第6版)第12章 面向对象实现 复习笔记

第12章 面向对象实现 一、面向对象实现概述 1.主要任务 (1)把面向对象设计结果翻译成用某种程序语言书写的面向对象程序。 (2)测试并调试面向对象的程序。 2.面向对象程序质量的影响因素 (1)面向对象设计的质量; (2)采用的程序语言的特点; (3)程序设计风格。 3.保证软件可靠性的方法 保证软件可靠性的主要措施是软件测试。面向对象测试的目标是用尽可能低的测试成本发现尽

file | 某文件夹【解耦合】下的文件查找功能实现及功能单元测试

文件查找工具 概要思路OS模块 --- 学习版os.getcwd()os.path.dirname(os.getcwd())os.path.dirname() 和 os.path.basename() OS模块 — 实战版单元测试解耦合 概要 梳理业务主逻辑: 查看存放被采集JSON数据的文件夹内的文件列表【所有 包含文件夹下的文件夹下的文件】 这是本节内容聚焦的点和My

分支线定向耦合器宽带化设计和ADS仿真

分支线定向耦合器宽带化设计和ADS仿真 工程下载链接:分支线定向耦合器宽带化设计和ADS仿真-ADS工程文件 之前经常分析分支线定向耦合器,例如在15、ADS使用记录之耦合器设计和基于AWR的微带线分支线耦合器设计-从原理到版图中都有涉及,但是由于其基本电路结构中包含大量的四分之一波长线,其实际上是窄带的结构: 但是,我们经常可能需要用到宽带的分支线定向耦合器(例如在LMBA等架构中)。那

【软件工程】第一章软件工程引论

【软件工程】第一章软件工程引论 文章目录 【软件工程】第一章软件工程引论1. 什么是软件1.1 软件的定义1.2 软件特征1.3 挑战与危机 2. 什么是工程2.1 什么是工程2.2 怎么做工程 3. 什么是软件工程3.1 软件工程的提出3.2 软件工程的经典定义3.3 软件工程设计的知识域3.4 系统工程3.5 软件工程的全流程 4. AI时代的软件工程4.1 智能软件工程4.2 大模型

《软件工程导论》(第6版)第9章 面向对象方法学引论 复习笔记

第9章 面向对象方法学引论 一、面向对象方法学概述 1.要点 面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。 (1)基本原则 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,使描述问题的问题空间(问题域)与实现解法的解空间(求解域)在结构上尽可能一致。 (2

奇妙的波与热!基于伏图的微波致热耦合仿真

在涉及微波致热的设备和系统中,仿真可在设计阶段对结构、材料及参数进行评估与优化,同时助力研究人员深入理解微波与物质相互作用及热传递物理过程。如在微波炉设计过程中,仿真能确定最佳腔体尺寸、食物尺寸和微波馈入口位置,实现高效均匀加热;在相控阵天线设计中,可优化散热结构,确保天线性能稳定;在射频波导加热电介质仿真中,可观察电磁场分布及能量吸收转化过程,为改进工艺和材料提供理论依据。 微波致热耦合是一种