软考高级架构师:AI通俗讲解功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚

本文主要是介绍软考高级架构师:AI通俗讲解功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内聚性是软件工程中的一个重要概念,它描述了一个模块内部各个元素之间的紧密程度。内聚性强的模块意味着模块内部的功能紧密相关,这通常能提高模块的可重用性和可维护性。内聚性可以分为多种类型,每种类型都有其特点和适用场景。

1. 功能内聚(Functional Cohesion)

功能内聚是最理想的内聚类型,它指模块内的所有元素都共同完成一个单一的功能。可以想象成一个咖啡机,它的设计目的就是为了冲泡咖啡,所有部件都是为了这一功能服务的。

2. 顺序内聚(Sequential Cohesion)

顺序内聚发生在一个模块中的元素输出是另一个元素的输入。比如,在汽车制造线上,一个工位负责安装轮胎,然后下一个工位是进行轮胎检验的,每个工位的任务都是顺序进行的。

3. 通信内聚(Communicational Cohesion)

通信内聚是指模块中的组件是为了操作同一数据集(例如数据库表)而工作的。例如,一个财务软件模块,它可以包括计算税收、生成财务报表等功能,这些功能都在处理同一批财务数据。

4. 过程内聚(Procedural Cohesion)

过程内聚是指模块中的元素是为了完成某个特定的过程而聚集的,但这些过程并非形成单一的功能。例如,一个文档处理模块可能会包括打开文件、格式化文本和打印文件的功能,这些功能都是按顺序执行的,但并不是为了完成一个独立的功能。

5. 时间内聚(Temporal Cohesion)

时间内聚是指模块中的功能是基于它们在同一时间执行的事实组合的。例如,程序启动时需要执行的一系列初始化功能,如配置内存、加载用户设置等,都是因为它们在相同的时期(启动时)执行。

6. 逻辑内聚(Logical Cohesion)

逻辑内聚是指模块中的元素聚合在一起是因为它们逻辑上类似,通常通过一个控制逻辑(如if-else结构)来选择执行哪个功能。比如,一个应用程序可以有一个打印模块,用于打印文本文件、图像或PDF,用户选择什么文件类型,就执行相应的打印任务。

7. 偶然内聚(Coincidental Cohesion)

偶然内聚是最低级的内聚形式,指模块中的元素毫无逻辑地放在一起。这就像是一个工具箱,里面既有锤子也有螺丝刀和胶带,这些工具之间没有直接的关系,只是碰巧放在一起。

总结来说,理想的内聚类型是功能内聚,因为它确保模块高度集中于执行单一任务,易于理解和维护。而偶然内聚则应该尽量避免,因为它使模块变得杂乱无章,难以维护和扩展。

这篇关于软考高级架构师:AI通俗讲解功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取