用户登录
用户注册

分享至

软件设计低耦合 软件工程中的五种耦合各举一个例子

  • 作者: gif每日一发
  • 来源: 51数据库
  • 2020-04-21

数据耦合

sum(int a,int b)

{int c;

c=a+b;

return(c);

}

main()

{int x,y;

.

.

.printf("x+y=%d",sum(x,y));

}

主函数与sum函数之间即为数据耦合关系

控制耦合

void output(flag)

{

if(flag)printf("OK!");

else printf("NO!");

}

main()

{int flag;

..

..

..

output(flag);

}

主函数与output函数之间即为控制耦合关系.

内容耦合

如goto语句

公共环境耦合

如FORTRAN语言中使用的common语句

什么叫程序模块设计要低耦合,高内聚?

就是每个模块和外界交互接口简单,内部功能完备

如何理解"高内聚,低耦合"的软件结构设计原则

高内聚,低耦合在软件工程里有,主要是说模快之间和模块内部之间的关系紧密程度

高内聚就是提高模快内部的关联程度,低耦合当然就是降低模快之间的关联程度

耦合性比较高的话,模块代码不易分离,是不好的编程模式

内聚是越高越好,内聚个人认为是只是实现一个功能,不是很多的功能

什么是高耦合低内聚?

高耦合低内聚:块间联系高,块内联系低。

其中内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

而耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

扩展资料:

程序开发中的低耦合高内聚

模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。

形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现什么功能的时候只需要加其他的类引入接口,就像电脑上的usb接口。

一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

在程序开发中,尽量做到低耦合高内聚,这样程序的维护成本以及可读性也会大大增强。

参考资料来源:百度百科-高内聚低耦合

高内聚、低耦合的含义是什么?如何提高代码的可重用性?

百科粘过来的,你看看:

基本解释

  高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

高内聚

  内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。   所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

低耦合

  耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 对于低耦合,粗浅的理解是:   一个完整的系统,模块与模块之间,尽可能的使其独立存在。   也就是说,让每个模块,尽可能的独立完成某个特定的子功能。   模块与模块之间的接口,尽量的少而简单。   如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。   这样有利于修改和组合。[1]

编辑本段为什么要追求高内聚和低耦合

  软件架构设计的目的简单说就是在保持软件内在联系的前提下,分解软件系统,降低软件系统开发的复杂性,而分解软件系统的基本方法无外乎分层和分割。但是在保持软件内在联系的前提下,如何分层分割系统,分层分割到什么样的粒度,并不是一件容易的事,这方面有各种各样的分解方法,比如:关注点分离,面向方面,面向对象,面向接口,面向服务,依赖注入,以及各种各样的设计原则等,而所有这些方法都基于高内聚,低耦合的原则。 高内聚和低耦合是相互矛盾的,分解粒度越粗的系统耦合性越低,分解粒度越细的系统内聚性越高,过度低耦合的软件系统,软件模块内部不可能高内聚,而过度高内聚的软件模块之间必然是高度依赖的,因此如何兼顾高内聚和低耦合是软件架构师功力的体现。   高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。[2]

耦合度的软件设计中概念

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。

内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味着弱内聚,强内聚常意味着弱耦合。 耦合度可分为七级。

a)非直接耦合:

两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的

b)数据耦合:

一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共数据结构或外部变量。

c)标记耦合:

如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。

d)控制耦合:

一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能

e)外部耦合:

一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息

f)公共耦合:

一组模块都访问同一个公共数据环境。该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

g)内容耦合:

一个模块直接修改另一个模块的数据,或直接转入另一个模块

内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

简述软件设计中内聚和耦合的概念

撇开通信、机械行业的耦合概念不提,单纯针对软件工程中的耦合概念,与之如影随形的另一个名词——内聚。

耦合:是对一个软件结构内各个模块之间相互依赖程度的度量;耦合的强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

内聚:则标志一个模块内各个元素彼此结合的紧密程度;内聚从功能角度衡量模块内的联系,好的内聚模块应当恰好做一件事。

需求的原则是:强内聚,弱耦合。然而在实际需求过程中,往往会因为技术驱动,导致需求间耦合很紧,不利于后期有效地迭代开发。有效的解决办法是按流程、和业务梳理需求。

实际中,任何一个软件都不可能完全做到弱耦合的。提倡弱耦合的最终目的是为了防止变更时牵扯过广,难以控制,以及后期的有效迭代开发。因此根据实际情况,灵活的控制耦合度才是根本。比如,变更可能性很小的需求,即便耦合度高一些,也是不会有太大影响。而变更系数较大的需求,在设计时则需重点关注耦合性的问题,防止牵一发动全身的情况发生。

在软件设计中,要尽量采用哪些耦合,不能使用那些耦合

高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

低耦合是指让每个模块尽可能的独立完成某个特定的子功能。

转载请注明出处51数据库 » 软件设计低耦合 软件工程中的五种耦合各举一个例子

软件
前端设计
程序设计
Java相关