`
nanjingjiangbiao_T
  • 浏览: 2668372 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

模块划分

 
阅读更多

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

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

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


耦合性,也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。

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

比如说:物品是一个模块,用户物品是一个模块,用户金钱是一个模块那么这三个模块之间应该是没有任何联系的,而模块内的功能应该是紧密联系的。

比如用户物品模块,此模块内有为用户加物品减物品的功能,这两个功能应是紧密联系的,因为他们使用了他们之间共同拥有的变量或数据。



2. 内聚分为哪几类?耦合分为哪几类?

内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1) 偶然内聚:模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。
(2) 逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能
(3) 时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
(4) 过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
(5) 通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
(6) 顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。
(7) 功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:
(1) 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
一个模块直接访问另一个模块的内部数据
一个模块不通过正常入口转到另一模块内部;
两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
一个模块有多个入口。
(2) 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
(3) 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
(4) 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合
(5) 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;也就是地址传递。
(6) 数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,相当于高级语言的值传递。
(7) 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。


耦合强度,依赖于以下几个因素:
(1)一个模块对另一个模块的调用;
(2)一个模块向另一个模块传递的数据量;
(3)一个模块施加到另一个模块的控制的多少;
(4)模块之间接口的复杂程度。

转载声明: 本文转自 http://blog.sina.com.cn/s/blog_61b570ab0100ggil.html (新浪博客)



分享到:
评论

相关推荐

    系统模块划分(样例)

    系统模块划分(样例) 系统模块划分是软件开发中的一种常见的设计方法,它将整个系统分解成多个较小的模块,以便于更好地管理和维护系统。本文将对系统模块划分进行详细的介绍,并提供一个实例来说明如何对系统进行...

    【转载】Maven 模块划分

    本文将深入探讨Maven中的模块划分,以及如何有效地组织和管理大型项目。我们将会分析"app-parent"这一特定的压缩包文件名,理解其背后的含义,并学习如何利用Maven进行模块化的项目构建。 在Maven中,模块(Module...

    模块划分_模块划分_jumpjrs_

    模块划分是软件设计中的一个重要概念,它涉及到程序结构的组织和优化。在“模块划分_jumpjrs_”这个主题中,我们主要关注如何有效地将软件系统拆分成一系列可管理的、独立的模块,以实现更好的代码复用、可维护性和...

    五子棋游戏的模块划分

    五子棋游戏的模块划分

    芯片设计模块划分原则

    ### 芯片设计模块划分原则详解 在芯片设计领域,模块划分是一项至关重要的工作,它不仅直接影响到项目的协同设计效率,还决定了设计的综合、实现时间,甚至最终产品的性能和成本。以下是对芯片设计中模块划分原则的...

    软件无线电中用于重构的模块划分研究

    针对软件无线电中用于重构的模块划分多依靠经验进行,合理性难以评估的问题,提出一种功能分解和结构聚类相结合的模块划分方法,在功能域基于功能树进行分解和映射,在结构域进行动态模糊聚类。采用该方法对QPSK解调...

    明德扬FPGA模块划分方法

    明德扬提出的FPGA模块划分方法提供了一种结构化的思路,不仅仅关注于单个模块的设计,更加强调了在模块划分完成后,如何明确模块的端口以及模块间的通信机制,确保数据流的正确性。为了更好地理解这一方法,我们将其...

    软件模块划分原则.doc

    软件模块划分是软件设计中的关键步骤,它关乎到系统的可读性、可维护性、开发效率和整体稳定性。在互联网行业中,软件模块划分的原则和方法对于构建高效、灵活且易于扩展的系统至关重要。 首先,模块划分的主要好处...

    基于DSM模型的智能配送系统功能模块划分研究.pdf

    基于DSM模型的智能配送系统功能模块划分研究 智能配送系统是现代物流行业的必然结果,随着智慧物流的快速发展,迫切需要设计出高效的智能配送信息系统平台。功能模块层作为配送系统的核心,其功能最终要经过各个...

    JS 模块 划分 框架

    例如,AngularJS 使用模块(ng.module)来组织应用,React 通过 JSX 的组件化实现模块化,Vue.js 则通过组件和单文件组件(SFC)实现模块划分。 在小型项目中,选择轻量级的框架如 React 或 Vue 可以简化开发流程,...

    网上论坛功能模块划分

    网上论坛功能模块划分 网上论坛作为一个集社交、分享、交流于一体的网络平台,需要具有完善的功能模块来满足用户的需求。下面,我们将详细介绍网上论坛的功能模块划分。 用户管理模块 用户管理模块是网上论坛的...

    企业人力资源管理系统功能模块划分

    ### 企业人力资源管理系统功能模块划分 #### 概述 企业人力资源管理系统(Human Resource Management System,简称HRMS)是企业管理中不可或缺的一部分,它通过信息化手段帮助企业管理人力资源,提高工作效率,...

    论文研究-多约束条件下定制产品模块划分方法.pdf

    为解决定制设计过程中模块划分问题,提出多约束条件下模块划分方法,该方法以功能域、结构域、用户需求域为多约束条件,提出产品定制模块多约束划分准则,构建产品零部件功能关联性矩阵、结构性关联矩阵以及用户需求...

    HR人力资源管理系统模块划分.docx

    "HR人力资源管理系统模块划分" HR人力资源管理系统模块划分是企业人力资源管理的重要组成部分,旨在帮助企业更好地管理人力资源,提高企业的整体效率和竞争力。该系统模块划分为七大模块:岗位规划、人员管理、考勤...

    三维CAD模型模块划分的蚁群聚类图分割方法.pdf

    在三维CAD模型模块划分的应用中,蚁群聚类算法通常被用来对模型的组成部分进行聚类分析,使得模型能够被分割成若干个既保持各自独立性又相互间有一定联系的模块。此方法有助于简化模型处理的复杂性,提高模块划分的...

    模块划分_琚泽谦1

    模块划分是软件开发中的重要步骤,它将大型复杂的系统分解为多个可管理的小模块,便于团队协作、代码维护和功能扩展。在给定的项目中,模块划分遵循了一种清晰的层次结构,主要分为六个大模块:data、database、game...

    网络游戏-对重构基因组尺度代谢网络进行模块划分的方法.zip

    网络游戏中的“对重构基因组尺度代谢网络进行模块划分的方法”涉及了多个复杂的生物学概念和技术,这些技术和方法对于揭示微生物群落功能、疾病机制以及生物工程的应用具有重要意义。 首先,我们要理解什么是基因组...

    软件模块划分原则.pdf

    软件模块划分原则.pdf

    HR人力资源管理系统模块划分.doc

    HR人力资源管理系统模块划分 本文将对HR人力资源管理系统的模块划分进行详细介绍,覆盖岗位规划、人员管理、考勤管理、薪资管理、招聘管理等主要模块。 岗位规划模块 岗位规划模块旨在完善组织机构与岗位信息,...

Global site tag (gtag.js) - Google Analytics