一般来说,模块之间的耦合有七种类型
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语句

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

  1. 图解模块间7种耦合关系

    一.高内聚与低耦合 高内聚与低耦合是每个软件开发者追求的目标,那么内聚和耦合分别是什么意思呢? 内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事.它描述的是模块内的功能联系. 耦合 ...

  2. 软件设计原则:内聚、耦合有哪几种类型?内聚度、耦合度如何比较?

    文章目录 前言 一.何为内聚? 1.1.7 种内聚类型及其描述 二.何为耦合? 2.1.7 种耦合类型及其描述 总结 前言 高内聚.低耦合是我们在软件设计过程中必须遵循的一个重要原则,在整个软件工程中 ...

  3. 软件设计之——“高内聚低耦合”

    耦合度 一.什么是耦合度 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 耦合度(Coupling)是对模块间关联程度的度量.耦合的强弱取决与模块间接口 ...

  4. 软件设计之——高内聚低耦合

    耦合度 一.什么是耦合度 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 耦合度(Coupling)是对模块间关联程度的度量.耦合的强弱取决与模块间接口 ...

  5. 耦合关系从强到弱顺序_图解7种耦合关系

    之前组内同学问我耦合的关系,我没给对方讲清楚,今天借这个机会来深入讲讲模块之间的耦合关系这个事情. 本文将用图文详细讲解七种耦合的不同之处. 高内聚与低耦合 高内聚与低耦合是每个软件开发者追求的目标, ...

  6. 耦合和内聚-图解7种耦合关系

    之前组内同学问我耦合的关系,我没给对方讲清楚,今天借这个机会来深入讲讲模块之间的耦合关系这个事情. 本文将用图文详细讲解七种耦合的不同之处. 高内聚与低耦合 高内聚与低耦合是每个软件开发者追求的目标, ...

  7. 软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式

    目录 1.软件开发设计指导思想: (1)可维护性Maintainability (2)可复用性Reusability (3)可扩展性Extensibility/Scalability (4)灵活性fl ...

  8. 画了张图,总结了机房里AAU、RRU以及各模块之间的走线关系和线束规格类型

    写在前面,以下为个人在接触基站工作后自己总结的内容,如有不对请多多指正.内容主要针对我画的这张图作出说明以及扩展,不深入研究机房里的其它布线图. 机房线缆种类及相关铺垫 首先来认识以下几种线缆,单位均 ...

  9. 彩虹挂号软件设计模块详细说明

    消息流程: Web控制器(WebController).预约挂号节点(AppointNode).挂号查询节点(QueryNode) 定义消息类别 MsgType 定义接收实体 MsgEntity 消息 ...

最新文章

  1. 妲己机器人需要什么条件才能使用_estar零封YTG:平头哥快乐电竞,只有妲己没亚瑟,差评...
  2. 技术交流论坛_天气预报|“第一届国家建筑工程与材料测试技术论坛”暨“第七届全国建筑材料测试技术”交流会...
  3. 用java程序设计一个快递_Java编程语言的优点快递
  4. 计算机应用基础word教程,计算机应用基础-文字处理word教程PPT课件.ppt
  5. 大数据_Flink_流式处理_简介_Flink的特点---Flink工作笔记0006
  6. Tensorflow高级封装
  7. java(15)-策略模式(Strategy Pattern)
  8. c#加mysql简单系统_visual studio2019连接MYSQL数据库详细教程(C#代码)
  9. 十、Oracle学习笔记:基本查询语句各子句用法
  10. 计算机关机快捷键是什么,win7关机快捷键是什么
  11. matlab 人群疏散,建筑物内的人员数量确定方法和人群疏散方法
  12. JavaScript设计模式 - 适配器模式
  13. inkscape裁剪
  14. 树莓派自动饮水机编程示例
  15. mac-系统升级到MacOS Mojave 10.14.1 后 ssh 登陆不了远程主机
  16. 来谈谈股民们的抄底问题,正确的短线交易是怎么玩的?活在市场里
  17. 统计函数耗费时间,简单的图像运算,定义感兴趣区域 第二章
  18. 敏捷观点和态度-《敏捷项目管理》读后感
  19. vue父传子mounted问题
  20. 计算机二级web题型及分值,2016年全国计算机二级《Web程序设计》考试大纲

热门文章

  1. 计算若干整数的和,这些整数都是小于1000的非负整数。
  2. c++ 的map、iterator用法
  3. 相关滤波目标跟踪学习笔记(三)——KCF算法公式理解
  4. plt.style.use设置背景样式
  5. GitHub 项目推荐:俄罗斯小游戏、Markdown 幻灯片、头像生成器、Logo 制作工具、坦克大战...
  6. CorelDRAW X7中相机滤镜呈现出的复古照片效果
  7. HDG2L-IOT-EU V2.2核心板 wifi STA模式测试
  8. pitu: 属于程序员的开源命令行P图工具
  9. vue Excel文件上传
  10. retinanet 部署_RetinaNet: Focal loss在目标检测网络中的应用