`
心动音符
  • 浏览: 337019 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

什么是内聚?什么是耦合?

阅读更多
什么是内聚?什么是耦合?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述
的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决
于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
2. 内聚分为哪几类?耦合分为哪几类?
      内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1) 偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同
的功能,这种模块称为巧合强度模块。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模
块参数来确定该模块应完成哪一种功能
(3) 时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
(4) 过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
(5) 通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
(6) 顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。
(7) 功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:
(1) 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
一个模块直接访问另一个模块的内部数据
一个模块不通过正常入口转到另一模块内部;
两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
一个模块有多个入口。
(2) 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
(3) 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
(4) 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合
(5) 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;也就是地址传递。
(6) 数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,相当于高级语言的值传递。
(7) 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
耦合强度,依赖于以下几个因素:
(1)一个模块对另一个模块的调用;
(2)一个模块向另一个模块传递的数据量;
(3)一个模块施加到另一个模块的控制的多少;
(4)模块之间接口的复杂程度。

分享到:
评论

相关推荐

    软件开发中的问题:什么是高内聚、低耦合?

    ### 软件开发中的问题:什么是高内聚、低耦合? 在软件工程领域,模块化设计是一种常见的策略,旨在提高代码的可维护性和可重用性。在这个过程中,“高内聚、低耦合”成为了衡量模块设计优劣的重要标准之一。下面将...

    高内聚低耦合

    #### 什么是低耦合? 低耦合是指不同模块之间的依赖程度较低。在一个系统中,如果各个模块之间的联系过于紧密,则可能导致“牵一发而动全身”的局面,即对一个模块的改动可能会影响到多个其他模块。低耦合的设计则...

    耦合内聚.doc

    耦合与内聚是软件设计中的两个重要概念,它们直接影响到软件的质量、可维护性和可扩展性。耦合描述的是系统中不同模块之间的相互依赖程度,而内聚则衡量一个模块内部元素之间的关联强度和单一性。以下是关于耦合和内...

    spring 底耦合高内聚

    spring 底耦合高内聚

    强内聚松耦合与测试的关系

    ### 强内聚松耦合的概念与重要性 在软件工程和系统设计领域,强内聚松耦合是两个至关重要的概念,它们不仅对代码质量和系统可维护性有着深远的影响,而且与软件测试密切相关。 #### 强内聚(Strong Cohesion) 强...

    图解高内聚与低耦合.docx

    ### 图解高内聚与低耦合 #### 模块的概念 模块是在软件工程中用于组织和管理代码的一种方式,其基本思想是从逻辑上将系统分解成更小、更易于管理的部分。通过这种方式,可以将复杂的系统问题拆解成一系列相对简单的...

    android高内聚低耦合任务事件总线框架

    在Android开发中,高内聚低耦合是一个重要的设计原则,它能提升代码的质量和可维护性。"android高内聚低耦合任务事件总线框架"是指利用事件总线(Event Bus)模式来实现应用组件间的通信,同时遵循高内聚和低耦合的...

    大牛思想(高内聚低耦合).pdf

    大牛思想(高内聚低耦合).pdf

    耦合内聚.zip

    在软件工程领域,耦合和内聚是衡量模块质量的两个关键指标,它们对系统设计的可维护性、可扩展性和可读性有着深远影响。本文将深入探讨这两个概念,并结合"耦合内聚.zip"中的文档内容进行详细阐述。 首先,耦合...

    高内聚低耦合理解

    高内聚低耦合理解,系统的文字帮助你更快速的理解

    论文:高内聚低耦合软件架构的构建_程春蕊

    《高内聚低耦合软件架构的构建》这篇论文深入探讨了软件工程中的核心设计理念——高内聚与低耦合,这是构建高质量、可维护、易于扩展的软件系统的重要原则。高内聚指的是模块内部元素之间的紧密关联,而低耦合则意味...

    一个学生管理系统的demo 高内聚 低耦合

    《学生管理系统Demo:高内聚与低耦合的实践》 在软件工程中,高内聚和低耦合是衡量系统设计质量的重要原则。本文将深入探讨如何在C#环境中,通过一个学生管理系统的示例(demo)来实现这两个概念,并分析其中的关键...

    模块独立思维导图-耦合、内聚的种类

    ### 模块独立思维导图-耦合、内聚的种类 #### 一、概述 在软件工程领域中,为了确保软件系统具有良好的可维护性和可扩展性,开发者需要重视模块设计的质量。其中,模块独立性是衡量软件设计好坏的重要标准之一。...

    专业技能指导作业-高耦合低内聚.docx

    "软件工程高耦合低内聚知识点总结" 软件质量概念是指软件系统或系统中的软件部分的质量,既满足用户需求,也包括功能需求和性能需求的程度。软件质量应该从功能、易用性、外观、性能、可靠性、稳定性、安全性等方面...

    检测JavaScript类的内聚耦合Code Smell.pdf

    JavaScript 类的内聚耦合Code Smell检测是软件质量保证的重要方面,因为它涉及到代码的可读性、可维护性和整体设计质量。本文介绍了一种名为JS4C的检测方法,专门针对JavaScript类中的FE(Feature Envy)、DC(Data ...

    (优化2)android高内聚低耦合任务事件总线框架

    在Android开发中,高内聚低耦合是一个重要的设计原则,它能提升代码的质量和可维护性。"(优化2)android高内聚低耦合任务事件总线框架"这个标题暗示了我们要讨论的是如何利用事件总线来优化任务处理,以实现更好的...

    22丨理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”? 1

    "高内聚、松耦合"是软件设计中的核心理念,旨在提高代码的可读性和可维护性。高内聚指的是将相关性强的功能聚合在一个模块、类或函数中,使得这些功能紧密联系,减少不必要的相互干扰。这样做的好处是当需要修改某个...

    高内聚低耦合原则_动力节点Java学院整理

    高内聚低耦合原则 高内聚低耦合原则是软件设计和编码质量评价的一个重要标准。耦合度是衡量模块(类)之间关联、感知和依赖的程度,也是衡量代码独立性的一个指标。降低耦合度可以减少模块间的影响,防止对某一模块...

Global site tag (gtag.js) - Google Analytics