软件设计模块之间7种耦合关系

2023-11-08

一般来说,模块之间的耦合有七种类型
1、根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合
2、两个模块之间没有直接关系, 它们之间的联系完全是通过主模块的控制和调用实现的,这种耦合为 非直接耦合
3、如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合
4、如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合
5、如果一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能,这种耦合为控制耦合
6、一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为外部耦合
7、若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合
8、若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则两个模块之间就发生了内容耦合

以下是模块7种耦合度,写程序提倡模块间耦合低越低越好。通俗点来说,也就是模块之间越不相关越好。
在这里插入图片描述

数据耦合

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语句

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件设计模块之间7种耦合关系 的相关文章

  • 专利申请过程中出现的20种状态,你都知道吗

    转自 https zhuanlan zhihu com p 32940506 专利申请过程中出现的20种状态 你都知道吗 从专利申请到专利驳回或者授权 会出现以下状态 归结起来 有以下一些 1 等待申请费 此状态表示 专利局已经受理该专利
  • java 读写中文文本

    读取中文文本 要设置gbk格式 该格式中文可以识别 英文也可以 reader new InputStreamReader new FileInputStream filename gbk 拓展 分词 分词时候 读取中文文本 TokenStr

随机推荐

  • java 实现常用后端分页

    背景说明 在实际开发中 基于数据库表结构进行SQL查询 如果要对结果进行分页 可以借助一些工具类 如 基于Mybatis的 工具类 PageHelper 但是 有时分页的对象是经过一些业务逻辑处理的列表 如 两个列表取了交集后 或者按照一定
  • 基于鸿蒙js框架实现的wearable五子棋软件

    我基于鸿蒙js框架开发了一个运行于wearable设备的五子棋软件 主要供大家交流学习使用 软件主要由三个page组成 主要逻辑在index中 其余用来显示输赢 鸿蒙os每个page都由一个css 一个js 一个hml组成 hml编程方式与
  • 配置pycharm解释器

    之前学习的时候下载的社区版本的pycharm 配置的解释器是conda3 8 过了好久以为电脑i没有python 所以又下载了python3 9 最近实习社区版本已经不足以满足日常工作 所以就下载了专业版本 但是配置出现了问题我以前的路径识
  • 通过一个无人机代码例程学会ardunio

    第一部分 关于接线 1 首选在接收机的任意一个空置插口引出一个vcc和GND 直接连接arduino 5v 和GND 这时你的arduino就和飞机连成了一套系统 可以共同工作了 2 接下来把接收机供给飞控的四根信号线从飞控上卸下 连接在a
  • Arthas 3.5.0版本发布,支持反编译打印行号和统一鉴权

    Arthas是Alibaba开源的Java诊断工具 深受开发者喜爱 Github https github com alibaba arthas 文档 https arthas aliyun com doc Arthas 最新发布了 3 5
  • Android 读取系统属性详解

    一 背景介绍 Android 系统属性主要有两种 SettingsProvider 和 SystemProperties 二 SettingsProvider详解 2 1 关于Android 设置 里的一些属性可以直接通过settings命
  • cookie

    package com kuang servlet import javax servlet ServletException import javax servlet http Cookie import javax servlet ht
  • 使用VS2010的nmake命令编译MakeFile流程

    使用 nmake的makefile是可以是用vs的nmake命令编译的 具体编译步骤如下 1 添加nmake和cl目录到环境变量 我的电脑 gt 属性 gt 高级系统设置 gt 环境变量 gt 系统变量 双击path 如下图所示 根据vs2
  • 【计算机科学】【2020.01】基于Python的能耗预测深度学习方法

    在一个我们除了增加日常生活用电而无所事事的社会里 能源消耗和相应的管理是一个重大问题 电力需求预测是电力系统运营商在电网管理中的重要组成部分 由于设计和确定合适的可再生能源系统和储能规模 预测特定家庭每日能源消耗的重要性也与最终用户有关 本
  • SQL的常用命令

    来都来了点一个赞在走吧 名称 作用 语法 avg 返回数值列的平均值 select avg column name from table name between 选取介于两个值之间的数据范围内的 值可以是数值文本或者日期 select c
  • 如何 接收消息服务器url,(读书笔记)网络是怎样连接的——浏览器生成消息...

    概览 本次探索之旅从用户在浏览器中输入网址 URL 开始 生成HTTP请求消息 浏览器的工作会从对用户输入的网址进行解析开始 浏览器如何解析网址是我们的第一个看点 然后浏览器会根据网址的含义来生成请求消息 而请求消息实际的样子就是我们的第二
  • 【Wiener、Weibull】来剩余寿命预测方法Wiener过程以及Weibull过程

    目录 1 软件版本 2 本算法理论知识 1 剩余寿命预测概述 2 Gamma过程 3 Wiener过程 4 Weibull过程
  • Java复制文件夹及文件到指定位置

    Java实现复制文件夹及文件 思路 1 首先创建一个复制文件夹的方法 复制文件夹并做判断 2 其次是创建一个复制文件夹中文件的方法 首先复制文件夹 判断是否是文件夹 再判断是否存在 不存在的要创建 复制文件夹 param file 原文件夹
  • wazuh-app RESTful API归纳总结

    Active Response 动态入侵规避 指定终端 发送可执行命令 进行终端控制或检测 PUT active response agent id Agent 模块 agent的添加与删除 POST agents POST agents
  • 怎么把图片转换成表格?这三种办法值得收藏

    不知道大家有没有遇到过 领导或者同事需要你帮忙处理excel 但却是用截图的方式发送过来的 如果我们根据图片重新制作一份excel 实在是有些费时费力 其实我们可以使用一些软件 就能够实现图片转excel 那怎么把手机图片转excel表格呢
  • 2022年陕西省中等职业学校技能大赛网络搭建与应用赛项《 服务器配置及应用竞赛报告单 》

    2022年陕西省中等职业学校技能大赛 网络搭建与应用赛项 服务器配置及应用竞赛报告单 网络搭建与应用赛项执委会及专家组 2022年5月20月
  • 爬虫 — Js 逆向案例三凡科网登录

    目标网站 https i fkw com ta 3 需求 找到密码加密的过程 进行加密 案例分析 1 抓到向服务器发请求的数据包 输入错误的账号和密码 测试密码可以输入123456 如果发现加密后的密码为 e10adc3949ba59abb
  • 顺序表中的查找,插入,删除操作

    已知一个顺序表L 其中的元素递增有序排列 1 查找第一个值等于e的元素 并返回其下标 int findElem Sqlist L int e int i for i 0 i
  • 闭环系统的零极点图判定稳定性_控制系统的稳性分析.ppt

    控制系统的稳性分析 当特征方程的根均为负实根或实部为负的共轭复根时 系统稳定 先假设K的大致范围 利用roots 函数计算这些K值下特征方程的根 然后判断根的位置以确定系统稳定时K的取值范围 程序如下 k 0 0 01 100 for in
  • 软件设计模块之间7种耦合关系

    一般来说 模块之间的耦合有七种类型 1 根据耦合性从低到高为非直接耦合 数据耦合 标记耦合 控制耦合 外部耦合 公共耦合和内容耦合 2 两个模块之间没有直接关系 它们之间的联系完全是通过主模块的控制和调用实现的 这种耦合为 非直接耦合 3