精华内容
下载资源
问答
  • 简述耦合与内聚
    千次阅读
    2018-04-15 20:26:11

      耦合与内聚是在软件工程中的概念。

    何为耦合?何为内聚?

      耦合是对指两个模块之间的关联程度,比如一个模块依赖另外一个模块,A依赖B,当缺少了B后A就无法正常工作了,这就是耦合。

      内聚是对功能而言的,就是说一个模块最好只做一件事情。比如:在一个类中,显示用函数display()方法来完成,

    赋值用set()方法来完成,这就是高内聚,就像现在说的匠人精神一样,专注与一件事。

      可见,一个程序要便于维护,最好的方式是“低耦合,高内聚”。


    更多相关内容
  • 耦合与内聚

    2021-03-10 10:29:36
    什么是内聚,什么是耦合 内聚:模块内相互作用的程度 耦合:模块间相互作用的程度 内聚 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 功能内聚 信息内聚 偶然内聚 定义:一个模块执行多个完全不相干的...

    模块的定义

    • 模块是一个词汇上邻接的程序语句序列,由边界元素限制范围,有一个聚合标识符

    什么是内聚,什么是耦合

    • 内聚:模块内相互作用的程度
    • 耦合:模块间相互作用的程度

    内聚

    • 偶然内聚
    • 逻辑内聚
    • 时间内聚
    • 过程内聚
    • 通信内聚
    • 功能内聚
    • 信息内聚

    偶然内聚

    • 定义:一个模块执行多个完全不相干的操作
    • 缺点:
      • 可维护性退化
      • 不可重用
    • 解决问题:将该模块划分为不同的模块,每个模块执行一个操作
    • 列子
    public interface Example {
        public void write();
        public void eat();
        public void print();
        public void fly();
    }
    

    逻辑内聚

    • 定义:当一个模块进行一系列相关的操作,每个操作由调用模块选择时,该模块就具有逻辑内聚
    • 缺点:
      • 接口难以理解(newAction(接口1, 接口2, 接口3, 接口4.........))
      • 多个功能之间可能会相互纠缠,维护起来难度相当大(比如下个例子中,key1 && key2 执行打印功能,在后期维护中要改为 key2 || key5 && key6执行打印。而这个条件又和其他的功能相关联)
      • 难以重用
    • 解决问题:将该模块划分为不同的模块,每个模块执行一个操作
    • 例子
        public void example(boolean key1, boolean key2, boolean key3, ...., boolean keyn){
            if (key1 && key2){
                // 打印
            }else if(key2 || key3 ) {
                // 关机
            }else if(keyn){
                // 暂停
            }
            .... 
        }

    时间内聚

    • 定义:当模块内部执行一系列与时间相关的操作时,该模块就具有时间内聚
    • 缺点:
      • 无法重用(一个时间顺序只能在一种场景下使用)
    • 例子
        public void example(){
            turnOn();
            loadFile();
            readFile();
            closeFile();
            turnOff();
        }

    过程内聚

    • 定义:当一个模块要执行一系列与产品要遵循的顺序有关的操作时,该模块就有过程内聚
    • 缺点:
      • 模块内部的操作之间关联弱(每个灯亮自己的,即使一个灯不亮了,也不影响其他灯亮)
      • 无法重用(这个顺序只能使用于该产品)
    • 例子
        public void example(){
            // 一个产品,如果出现故障,红绿黄灯依次亮起,
            if(故障了){
                turnOn("红");
                turnOn("绿");
                turnOn("黄");
            }
        }

    通信内聚

    • 定义:当模块要执行一系列与产品要遵循的顺序有关的操作时,并且所有操作都是在同一数据上进行,该模块就有通信内聚
    • 缺点:
      • 无法重用
        public void example(){
            Duck duck = new duck();
    // 以下的颜色设置必须按照这个顺序进行
            duck.setBodyColor("white");
            duck.setFootColor("yellow");
            duck.setEyeColor("dark");
        }

    功能内聚

    • 定义:只执行单一操作或只完成单一目标的模块具有功能内聚
    • 优点:
      • 可重用
      • 维护容易

    信息内聚

    • 定义:如果模块进行许多操作,每个都有各自的入口点,每个操作的代码相对独立,而且所有操作都在相同的数据结构上完成,则该模块具有信息内聚
    // 每个操作可单独调用,即有各自的入口
    // 每个操作相对独立
    // 所有的操作都是在同一栈上进行的
    public interface Stack {
        public void initialize();
    
        public void push();
    
        public void pop();
    
        public void destroy();
    }
    

    内容耦合

    • 定义:一个模块直接操作或读取另一模块内的数据,则它们是内容耦合

    公共耦合

    • 定义:两个模块都可以存取同一全局数据

    控制耦合

    • 定义:一个模块向另一个模块传递控制要素,则他们是控制耦合

    标记耦合

    • 定义:两个模块以数据结构作为传递要素,但数据结构中的成员并未全部使用,则它们是标记耦合

    数据耦合

    • 定义:两个模块的所有参数是同类数据项,则他们是数据耦合(即,标记传递的参数全部被使用了)

    展开全文
  • 耦合与内聚的分类

    千次阅读 2019-08-31 20:37:06
    一、内聚与耦合 作为一名程序员,想必从学习程序基础开始就听说过“高内聚、低耦合”,今天就从理论的角度来记录一下内聚与耦合。内聚:指的是一个模块内部各成分之间相关联程度的度量;耦合:指的是程序结构中...

    一、内聚与耦合

           作为一名程序员,想必从学习程序基础开始就听说过“高内聚、低耦合”,今天就从理论的角度来记录一下内聚与耦合。内聚:指的是一个模块内部各成分之间相关联程度的度量;耦合:指的是程序结构中各个模块之间相互关联的度量。在软件系统的划分模块时,应尽量做到高内聚,低耦合,提高模块的独立性。

     

    二、内聚的分类

    内聚可以分为以下七种类型,内聚性由高到低分别是:

    功能内聚:指模块内的所有元素共同作用完成一个功能,缺一不可。

    顺序内聚:指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一个功能元素的输入。

    通信内聚:指模块内所有处理元素都在同一个数据结构上。

    过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。

    瞬时内聚:把需要同时执行的任务或动作组合在一起(如初始化模块)。

    逻辑内聚:模块完成逻辑上相关的一组任务。

    偶然内聚:指一个模块内的各处理元素之间没有任何联系或有松散的联系。

     

    三、耦合的分类

    耦合可以分为以下七种类型,耦合性由高到底分别是:

    内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种耦合关系就是内容耦合。

    公共耦合:指一组模块访问一个公共数据环境,如全局数据结构。

    外部耦合:指一组模块访问一个公共变量,这里指基本数据类型而不是数据结构(或者说对象)。

    控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值选择执行模块内某一功能。那么也就是说,被调用的模块应具有多个功能。

    标记耦合:耦合模块之间以数据结构传递(比如在java程序中,传递的就是一个对象)。

    数据耦合:耦合模块之间有调用关系,传递的是简单数据类型的值(比如在java程序中,传递的就是一个基本数据类型的值)。

    无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。

    展开全文
  • 耦合与内聚的概念

    2021-02-01 10:24:24
    起因:模块独立性指每个模块只完成系统要求的独立子功能,并且其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。 耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种...

       起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。


           耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

           耦合性分类(低――高): 无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;内容耦合;

    1 无直接耦合:

    2 数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;

    3 标记耦合: 指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;

    4 控制耦合: 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;

    5 公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。

    6 内容耦合: 这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。

     

           内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
            内聚性分类(低――高): 偶然内聚;逻辑内聚;时间内聚;通信内聚;顺序内聚;功能内聚;

    1 偶然内聚: 指一个模块内的各处理元素之间没有任何联系。

    2 逻辑内聚: 指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

    3 时间内聚: 把需要同时执行的动作组合在一起形成的模块为时间内聚模块。

    4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。

    5 顺序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。

    6 功能内聚: 这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。与其他模块的耦合是最弱的。

     

           耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

    展开全文
  • 软考考点之耦合与内聚类型区分

    千次阅读 2019-10-09 10:58:44
    内聚耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,看类的内聚性是否高,耦合度是否低。 内聚关注模块内部的元素结合程度,耦合关注模块之间的依赖程度。 内聚性: 又称块内联系。...
  • 内聚耦合都是用来描述面相对象的专业名词。 耦合是指模块间的关联程度 内聚是指模块内元素间的关联程度 内聚的种类:关联程度从低到高排序 偶然内聚:没啥道理,出题人就想把两个元素说在一起,那就给这类按个名字...
  • 软件工程-耦合与内聚简单实例

    千次阅读 多人点赞 2021-11-21 19:46:23
    耦合与内聚简单实例
  • 内聚与耦合

    万次阅读 多人点赞 2019-05-16 14:52:21
    内聚耦合 什么是内聚内聚有多少种类别 什么是耦合耦合有多少种类别
  • 软件工程之模块的耦合与内聚

    千次阅读 2016-06-18 15:14:07
    那么模块化相对应的就是抽象化了,抽象化:软件系统进行模块设计时,可有不同的抽象层次。 模块(Module)一般具有如下三个基本属性: 功能:描述该模块实现什么功能; 逻辑:描述模块内部怎么做; 状态:该模块...
  • 模块耦合与模块内聚

    千次阅读 2019-06-05 21:59:13
    模块的独立程度可以由两个定性标准来度量,这两个标准分别称为耦合内聚耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。 1.耦合 耦合是对各个模块之间互连程度的...
  • 耦合与内聚的分类整理

    千次阅读 2013-03-25 17:12:02
    耦合的层次: 5.内容耦合Content Coupling:直接对内部数据或代码进行修改,如使用GOTO,或者直接访问另一个模块的内部数据 4.公共耦合Common Coupling:共享数据,使用全部变量 3.控制耦合Control ...
  • 软件工程--软件设计(耦合与内聚

    千次阅读 热门讨论 2019-01-23 20:43:32
    耦合内聚都是描述紧密程度度量情况 不同 耦合描述模块模块间的紧密程度 内聚描述模块内部的紧密程度 (可以参考他们的名字,内聚,内部,也就是模块内部) 耦合 非直接耦合: 两个模块间...
  • 所谓的内聚是指模块内的交互程度,内聚又分为一下几种 偶然性内聚:组件的部件是不相关的,只是简单地绑定成单个组件。  不足:程序的可读性和复用性差 逻辑性内聚:把相似的功能(类如输入,错误处理)放在一块,...
  • 一、耦合 简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。  有软硬件之间...
  • 耦合度就是某模块(类)其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准
  • 耦合内聚加实例

    千次阅读 2021-05-23 08:31:43
    基本信息耦合性(或称"耦合度")英文 : coupling耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,420
精华内容 30,568
关键字:

耦合与内聚