当前位置: 首页 > news >正文

【软件工程】内聚

概念

是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。

偶然凝聚

一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起。这种模块也称为巧合内聚,内聚程度最低。


逻辑凝聚

概念

逻辑内聚是指模块内各个元素之间的联系程度与它们在同一逻辑上有关。即模块内的各个元素都是为了完成同一逻辑而存在的。例如,一个判断模块内的各个元素都是为了完成同一逻辑而存在的。

判定依据:

模块内的各个元素是否都是为了完成同一逻辑而存在的。

综上所述,内聚性是软件设计中非常重要的一个概念,不同等级的内聚性可以帮助我们更好地设计模块,提高软件的可维护性和可重用性。在实际开发中,我们应该根据具体情况选择合适的内聚等级,以达到最优的设计效果。


时间凝聚

时间聚合原则

模块内部的各个组成部分所包含的处理动作必须在同一时间内执行。
时间状态聚合规则不受成员安全性影响。时间状态聚合规则不受属性安全性影响。

时间调整原则

意识到时间的存在。怎么才算意识到时间呢?给自己划分几个时间块。
合理分块,那个版块解决什么问题。
比如,我一天开始的时间,需要解决起床、收拾、吃饭、踩单车上班,大概2-3小时
足够了,就算有意外也能解决。
那我就把这段时间打包,分成上班前的一块,具体怎么弄随便,反正这个时间块内要
解决。
是要知道自己做的事,大概需要多少时间。这个实际就是你的时间明细,做一件事,
一定是先了解情况,才能做出正确判断。如果你都不知道,自己一天做了什么事,什么事
花费了多少时间,那你再牛的时间管理都不起作用。
其实,所谓没有时间,只要你看看自己的时间账本,就合理的规划管理方法了。所谓
管理,就是避免浪费,提高效率,就这么简单。
学会有选择的去做事。

很多时候,觉得时间不够用,是因为没有用在对的地方。时间管理最核心的一点,其实就是避免浪费,提高效率,这个很重要,就再啰嗦一遍。
当然,每次都做出正确的时间选择很难,但是有些事你必须去做,我们经常羡慕别人
厉害,他们为什么厉害,不就是去选择做了哪些你不喜欢的事。本质上大家都一样,都喜
欢玩,都喜欢拖延,但是总有一批人克服了自己,选择难做的事。
避免浪费,提高效率,用这8个字指导自己,你会发现,时间管理很简单,就是把时
间和任务做好匹配就行了。道理也很简单,你不是时时刻刻都精神饱满,也不是每时每刻
都斗志昂扬,所以我们也要灵活安排。
具体来说有3个原则帮你做出好选择:精力好的时候,做难的事。正常的事,看情况
安排,计划赶不上变化,学会灵活安排。如果你觉得很累,可以先休息一下,站起来走两
步。人没有状态的时候,坐在哪里硬熬只是浪费时间,你非要在困的时候,去做困难的事,
这个不是自找苦吃。最牛的计划,就是合理安排,这个没有人可以教,主要是你要找到自
己舒服又高效的状态。
不做计划,是因为计划很难实现,要做清单是因为人总是忘记,清单是为了提醒自己。
要想做好时间管理,要用清单来辅助自己。
我们大部分人的生活都是重复,每天起来,要做什么事,都已经成为习惯了,心理都
是门清。如果你还没有找到自己的节奏,可以用工具记录清单,当你熟悉以后,在心理做
清单就可以了。
今天我要去做什么,都有什么事,记在手机上,比如,我们要写周边,不写就请咖啡,
这个就可以设置一个提醒,有时候事不难,可能你只是忘记了。你一旦使用清单,你会发
现自己的效率居然提升了很多,不仅该做都会事完成了,还有空看看电视,你说这种好事
不试试吗?

过程内聚

概念

过程内聚是指模块内各个元素之间的联系程度与它们在同一过程中的执行有关。即模块内的各个元素都是为了完成同一过程而存在的。例如,一个登录模块内的各个元素都是为了完成登录过程而存在的。

判定依据:

模块内的各个元素是否都是为了完成同一过程而存在的。


通信内聚 

概念

通信内聚是指模块内各个元素之间的联系程度与它们共享某些数据有关。即模块内的各个元素都是为了共享某些数据而存在的。例如,一个打印模块内的各个元素都是为了共享打印数据而存在的。

判定依据:

模块内的各个元素是否都是为了共享某些数据而存在的。


顺序凝聚

概念

顺序内聚是指模块内各个元素之间的联系程度与它们在同一顺序下的执行有关。即模块内的各个元素都是按照一定的顺序执行的。例如,一个排序模块内的各个元素都是按照一定的顺序执行的。

判定依据:

模块内的各个元素是否都是按照一定的顺序执行的。

功能凝聚

概念

功能内聚是指模块内各个元素之间的联系程度与实现某一功能有关。即模块内的各个元素都是为了实现同一功能而存在的。

一个计算器模块内的各个元素都是为了实现计算功能而存在的。

判定依据:

模块内的各个元素是否都是为了实现同一功能而存在。

可维护性最好

相关文章:

【软件工程】内聚

概念 是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。 偶然凝聚 一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起。这种模块也称为…...

支持对接鸿蒙系统的无线模块及其常见应用介绍

近距离的无线通信得益于万物互联网的快速发展,基于集成部近距离无线连接,为固定和移动设备建立通信的蓝牙技术也已经广泛应用于汽车领域、工业生产及医疗领域。为协助物联网企业终端产品能快速接入鸿蒙生态系统,SKYLAB联手国产芯片厂家研发推…...

java项目打包运行报异常:Demo-1.0-SNAPSHOT.jar中没有主清单属性

检查后发现pom文件中有错误&#xff0c;需要添加build内容才能恢复正常。 添加下面文件后再次启动恢复正常。 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactI…...

nginx+keepalived实现负载均衡和高可用

环境准备 IPVIP环境客户端192.168.134.174Master192.168.134.170192.168.134.100需要配置nginx负载均衡Backup192.168.134.172192.168.134.100需要配置nginx负载均衡web1服务器192.168.134.171 web2服务器 192.168.134.173 1、首先安装nginx服务器&#xff08;此处采用yum安装…...

微信小程序实现图片多点裁剪

话不多说&#xff0c;直接上代码 1、页面布局 <view class"buttons" style"height: 50px;"><view class"upload btn" style"background-color: #d18118;"bindtap"uploadImage"> 上传图片 </view><vie…...

计算图片的均值和方差用图片的归一化取值

计算图片的均值和方差用图片的归一化取值 注意&#xff1a;使用这种方法的前提是进行了数据批量化操作&#xff0c;需要使用神经网络库&#xff0c;torch&#xff0c;DataLoader def getStat(data):print(len(data))loader torch.utils.data.DataLoader(data, batch_size1, …...

预测算法|改进粒子群算法优化极限学习机IDM-PSO-ELM

回归拟合&#xff1a; 分类 本文是作者的预测算法系列的第四篇&#xff0c;前面的文章中介绍了BP、SVM、RF及其优化&#xff0c;感兴趣的读者可以在作者往期文章中了解&#xff0c;这一篇将介绍——极限学习机 过去的几十年里基于梯度的学习方法被广泛用于训练神经网络&am…...

小黑子—JavaWeb:第六章 - Filter、Listener、AJAX与JSON

JavaWeb入门6.0 1. Filter1.1 Filter快速入门1.2 Filter执行流程1.3 Filter拦截路径配置1.4 Filter过滤器链1.5 案例登录验证 2. Listener2.1 ServletContextListener使用 3. AJAX3.1 AJAX 快速入门3.2 案例 验证用户名是否存在3.3 Axios 异步框架3.3.1 Axios 快速入门3.3.2 Ax…...

STM32 LL库开发

一、STM32开发方式 标准库开发&#xff1a;Standard Peripheral Libraries&#xff0c;STDHAL库开发&#xff1a;Hardware Abstraction Layer&#xff0c;硬件抽象层LL库开发&#xff1a;Low-layer&#xff0c;底层库 二、HAL库与LL库开发对比 ST在推行HAL库的时候&#xff0c;…...

标记垃圾,有三种色彩:四千长文带你深入了解三色标记算法

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…...

277/300 React+react-router-dom+Vite 二级页面刷新时,白屏问题解决

&#xff08;一&#xff09;方案 BrowserRouter 换为 HashRouter &#xff08;二&#xff09;代码 import routes from ./routes import {ReactElement, Suspense} from react import {createHashRouter, Navigate} from react-router-dom // 生成路由数据 const generateR…...

如何做线上监控

1、背景 软件的质量是需要全生命周期进行关注的,在生产环境下QA的活动就是测试右移,测试右移最关键的手段就是线上监控,也是至关重要的一个环节,可以通过技术的手段,提前感知到线上问题和风险,先于用户提前发现问题,提升服务可感知性,从而降低客户投诉。 2、通用原则…...

饥荒开服教程——游戏

饥荒开服教程——游戏 1. 开服环境2. 开服步骤2.1 创建集群2.2 安装服务端2.3 上传mod2.4 启动脚本2.5 上传地图2.6 设置访问令牌2.7 修改配置 3. 服务器命令3.1 关闭服务器3.2 回档 记录一些在饥荒联机版开服中遇到过的问题。 参考&#xff1a;3分钟创建你的饥荒联机专属服务…...

查询 npm/yarn 安装依赖的全局路径及路径修改

一、NPM 1.查询 npm 安装依赖的全局路径 npm prefix -g 2. 修改 npm 全局安装位置 npm config set prefix "D:\nodejs\node_modules\npm\node_modules" 3. 修改 npm 全局 cache 位置 npm config set cache "D:\nodejs\node_modules\npm\cache" 4. np…...

掌握Python的X篇_35_用Python为美女打码_图像库Pillow

本篇将会介绍python中的一个图像库Pillow。 文章目录 1. Pillow与PIL的关系2. 调整大小3. 加滤镜4. 剪裁5. 生成验证码 1. Pillow与PIL的关系 我们在网上搜python的图像库的话&#xff0c;可能搜到的时PIL。实际上之前python发展的时候就是PIL&#xff0c;这个库比较好用&…...

SpringBoot 异步、邮件任务

异步任务 创建一个Hello项目 创建一个类AsyncService 异步处理还是非常常用的&#xff0c;比如我们在网站上发送邮件&#xff0c;后台会去发送邮件&#xff0c;此时前台会造成响应不动&#xff0c;直到邮件发送完毕&#xff0c;响应才会成功&#xff0c;所以我们一般会采用多线…...

【LeetCode】45. 跳跃游戏 II - 贪婪算法

目录标题 2023-8-11 09:49:25 45. 跳跃游戏 II 2023-8-11 09:49:25 自己没做出来&#xff0c;废物Orz class Solution {public int jump(int[] nums) {int length nums.length;int end 0;int maxPosition 0;int steps 0;for (int i 0; i < length - 1; i) {maxPosit…...

[C初阶笔记]P1

什么是C语言 1、机器语言&#xff08;二进制&#xff09;>汇编语言&#xff08;助记符&#xff09;>高级语言&#xff08;C、C等&#xff09; 2、c语言擅长底层软件开发&#xff08;操作系统、驱动程序&#xff09;&#xff0c;并不意味着不能开发其他。 C语言更贴近操作…...

外企面试题

Interview Prepare is there anyone we can talk to for a character reference? yes, I have some teammate can help to provide related working information. why did you leave/quit your last job? I got blocked on my last job. I found I cant learn new things fr…...

【目标检测系列】YOLOV1解读

前言 从R-CNN到Fast-RCNN&#xff0c;之前的目标检测工作都是分成两阶段&#xff0c;先提供位置信息在进行目标分类&#xff0c;精度很高但无法满足实时检测的要求。 而YoLo将目标检测看作回归问题&#xff0c;输入为一张图片&#xff0c;输出为S*S*(5*BC)的三维向量。该向量…...

3步解锁网易云音乐加密歌曲:NCMDump解密全攻略

3步解锁网易云音乐加密歌曲&#xff1a;NCMDump解密全攻略 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的VIP歌曲只能在特定客户端播放而烦恼吗&#xff1f;NCMDump正是为你解决这一困扰的终极工具&#xff…...

网盘直链下载助手:八大主流云盘高速下载的终极解决方案

网盘直链下载助手&#xff1a;八大主流云盘高速下载的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

某宝登录密码加密逆向实战——从password2到st码的完整流程解析

1. 淘宝登录加密机制概述 淘宝作为国内最大的电商平台&#xff0c;其登录系统采用了多重安全防护措施。其中password2参数是整个登录流程中最关键的加密环节&#xff0c;它通过RSA算法对用户明文密码进行非对称加密。这种设计能有效防止密码在传输过程中被截获&#xff0c;即使…...

生成式AI搜索优化失效真相:从BERT重排到MUM升级,3层语义理解断层如何精准修复?

第一章&#xff1a;生成式AI应用搜索优化策略 2026奇点智能技术大会(https://ml-summit.org) 在生成式AI应用快速落地的背景下&#xff0c;传统搜索引擎对AI原生内容&#xff08;如LLM生成文本、合成图像元数据、多模态响应日志&#xff09;的索引与排序能力已显著滞后。优化…...

方向向量在游戏开发中如何应用,高数下空间几何到底有什么用处

数学概念程序员应用领域核心作用方向向量计算机图形学、游戏开发、机器人学、计算机视觉、物理引擎描述物体朝向、光线方向、运动方向&#xff0c;是空间变换和计算的基础。空间几何&#xff08;直线/平面方程&#xff09;3D建模、碰撞检测、路径规划、增强现实(AR)、虚拟现实(…...

突破性VPS系统切换方案:5分钟实现全平台迁移

突破性VPS系统切换方案&#xff1a;5分钟实现全平台迁移 【免费下载链接】reinstall 一键DD/重装脚本 (One-click reinstall OS on VPS) 项目地址: https://gitcode.com/GitHub_Trending/re/reinstall 在数字化时代&#xff0c;VPS&#xff08;虚拟专用服务器&#xff0…...

Python实战:三种GUI库打造可玩性五子棋(附完整源码)

1. 为什么用Python开发五子棋 五子棋作为经典策略游戏&#xff0c;用Python实现不仅能巩固编程基础&#xff0c;还能深入理解游戏逻辑与GUI交互。我最初选择用Python开发五子棋&#xff0c;就是看中它快速验证想法的特性——短短几十行代码就能看到棋子落在棋盘上的效果&#x…...

STM32F407实战避坑指南(一)

1. GPIO配置中的那些"坑" 第一次用STM32F407点灯的时候&#xff0c;我信心满满地照着手册写好了GPIO配置代码&#xff0c;结果灯死活不亮。后来才发现&#xff0c;原来GPIO的时钟使能位写错了位置。这种低级错误在新手阶段特别常见&#xff0c;今天就和大家分享几个G…...

Matlab图形属性深度联动:除了xlim,你还需要了解这些控制坐标轴的‘隐藏’属性

Matlab图形属性深度联动&#xff1a;坐标轴控制的底层逻辑与高阶技巧 第一次用xlim([0 10])时&#xff0c;我天真地以为这行代码只是简单地截取了图形的一部分。直到某天深夜调试GUI时&#xff0c;偶然发现修改XTick属性竟然触发了XLim的自动调整&#xff0c;才意识到Matlab的图…...

Oracle密码过期的处理方法

1、问题描述2、解决方法2.1、以SYSDBA身份登陆sqlplus sys/sysorcl as sysdba2.2、修改账号的密码alter user 账号 identified by "密码";...