内聚种类

内聚有如下的种类,它们之间的内聚度由弱到强排列如下:

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

(2) 逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能

(3) 时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。 
  (4)
过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。简单的说就是如果一个模块内的处理元素是相关的,而且必须以特定次序执行则称为过程内聚。
  (5)
通信内聚:指模块内所有处理元素都在同一个数据结构上操作或所有处理功能都通过公用数据而发生关联(有时称之为信息内聚)。即指模块内各个组成部分都使用相同的数据数据或产生相同的数据结构。
  (6)
顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常前一个处理元素的输出时后一个处理元素的输入。

例如某模块完成工业产值求值的功能,前一个功能元素求总产值,后一个功能元素求平均产值,显然该模块内两部分紧密关联。

顺序内聚的内聚度比较高,但缺点是不如功能内聚易于维护。

(7) 功能内聚:模块内所有元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,模块已不可再分。即模块仅包括为完成某个功能所必须的所有成分,这些成分紧密联系、缺一不可。

功能内聚是最强的内聚,其优点是它的功能明确。判断一个模块是否功能内聚,一般从模块名称就能看出。如果模块名称只有一个动词和一个特定的目标(单数名词),一般来说就是功能内聚,如:“计算水费”、“计算产值”等模块。功能内聚一般出现在软件结构图的较低层次上。

功能内聚模块的一个重要特点是:他是一个“暗盒”,对于该模块的调用者来说,只需要知道这个模块能做什么,而不需要知道这个模块是如何做的。

总结:在模块划分是,要遵循“一个模块,一个功能”的原则,尽可能使模块达到功能内聚。

高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

上海动软网络科技有限公司

启发企业潜能

微信:Dynstec

微博:http://weibo.com/Dynstec

官网:http://www.dynstec.com/

联系&投稿:[email protected]

时间: 2024-11-08 03:30:06

内聚种类的相关文章

浅谈面向对象开发原则:高内聚,低耦合

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低. 每一个类完成特定的独立的功能,这个就是高内聚.耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展. 类之间的设置应该要低耦合,但是每个类应该要高内聚.耦合是类之间相互依赖的尺度.如果每个对象都有引用其它所有的对象,那么就有高耦合,这是不合乎要求的

代码赋值 高内聚 低耦合

约定大于规则:字段.方法.空间名称.大小写一直.什么方法是公用的. "公文管理"系统字段命名:hpId  hpID 有的页面大写,有的小写,导致提取公共js是,有时无法获取对象. "公文管理"系统数据库设计:    wf_transform表设计时,虽然每个流程有其特有的字段,但是设计之初,应该讲公共字段设置到统一位置,前几列,并预留空余,这样写存储过程需要用到当前流程的某些字段时,不用挨个判断 modelid的值. "公共方法": 公共方法应该

第六周作业----内聚耦合

一.内聚. 内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标.模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高.理想的内聚性要求模块的功能应明确.单一,即一个模块只做一件事情. 内聚有如下的种类,它们之间的内聚度由弱到强排列如下: (1) 偶然内聚:一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起.这种模块也称为巧合内聚,内聚程度最低. (2) 逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种

JAVA : 关于高内聚与低耦合

高内聚与低耦合的概念说实话,对本人来说每次提起来总是有些模糊,下午看了一些博主的文章,感觉清晰了一些,在此记录一下个人的理解. 首先感谢几位老哥的文章,如下: https://blog.csdn.net/qq_39521554/article/details/79489180 https://www.cnblogs.com/corvoh/p/5747856.html https://blog.csdn.net/kingscoming/article/details/78836229 内聚: 每个

耦合与内聚分类

耦合部分 耦合可以分为以下几种,它们之间的耦合度由高到低排列如下: (1) 内容耦合:一个模块直接访问另一模块的内容,则称这两个模块为内容耦合.若在程序中出现下列情况之一,则说明两个模块之间发生了内容耦合: 1. 一个模块直接访问另一个模块的内部数据.2. 一个模块不通过正常入口而直接转入到另一个模块的内部.3. 两个模块有一部分代码重叠(该部分代码具有一定的独立功能).4. 一个模块有多个入口. 内容耦合可能在汇编语言中出现.大多数高级语言都已设计成不允许出现内容耦合.这种耦合的耦合性最强,模

关于“内聚和耦合”

内聚就是一个模块内各个元素彼此结合的紧密程度. 耦合就是一个软件结构内各个模块之间彼此结合的紧密程度. 内聚类型: 1.偶然内聚 模块的各成分之间没有关联,只是把分散的功能合并在一起. 2.逻辑内聚 逻辑上相关的功能被放在同一模块中. 3.时间内聚 模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素才有关联. 4.过程内聚 模块内部的处理成分是相关的,而且这些处理必须以特定的次序进行执行. 5.通信内聚 模块的所有成分都操作同一数据集或生成同一数据集. 6.顺序内聚 模块的各个成分和

咖啡种类华润紫竹毓婷品牌获2013中国创新营销案例奖你知道这些健紫竹药业3

[怎样减少腹胀气]1.少量多餐.2.彻底咀嚼食物,帮助消化.3.坐直吃.4.避免碳酸饮料.5.避免高脂食物,因消化的慢,食物会徘徊在结肠而肠道细菌会产生更多的气体.6.每天运动,维持健康的肠道功能.7.避免会胀气的食物.8.薄荷,洋甘菊,或茴香茶,可助缓解腹胀. 华润紫竹毓婷品牌获"2013中国创新营销案例奖" [水果要吃对时间]1.早上最宜:苹果.梨.葡萄.人的胃肠经过一夜休息之后,适合食用酸性不太强.涩味不太浓的水果.2.餐前别吃:圣女果.橘子.山楂.香蕉.柿子.有一些水果是不可以

Java锁的种类以及辨析

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑. 1.自旋锁 2.自旋锁的其他种类 3.阻塞锁 4.可重入锁 5.读写锁 6.互斥锁 7.悲观锁 8.乐观锁 9.公平锁 10.非公平锁 11.偏向锁 12.对象锁 13.线程锁 14.锁粗化 15.轻量级锁 16.锁消除

poj 2492 a bug's life 简单种类并查集

题意大致为找同性恋的虫子.... 这个比食物链要简单些.思路完全一致,利用取余操作实现关系之间的递推. 个人感觉利用向量,模和投影可能可以实现具有更加复杂关系的并查集. 1 #include<cstdio> 2 using namespace std; 3 const int MAXN=50010; 4 int fa[MAXN]; 5 int rel[MAXN]; // 0代表同类,1代表吃fa[i],2代表被吃 6 void _set(int n) 7 { 8 for(int i=1;i&l