当前位置: 首页 > 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)的三维向量。该向量…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...