【软件设计】模块设计耦合的其中类型

news/2024/11/8 0:29:59/

一.什么是高内聚、低耦合?

        在结构化分析与模块设计方法中,模块化是一个很重要的概念,它是将一个待开发的软件分解成为若干个小的模块,每个模块可以独立地开发、测试。使得复杂问题的“分而治之”,令程序的结构清晰、易于测试与修改。而模块的独立性通常要求每个模块能尽可能完成一个相对独立的子功能,并且与其他模块少点联系,软件设计上用耦合(模块之间联系的紧密程度)内聚(模块内部各元素之间联系的紧密程度)两个标准来衡量,所以设计的目标就是高内聚、低耦合

二.耦合的七种类型

        模块的耦合性类型通常分为7 种,根据耦合度从低到高排序,如图下所示:

         非直接耦合最为简单,就是一个拥有着独立思维做好自己少别管别人的好模块:

        数据耦合可以理解为通过传送数据变量来进行数据传递,例如一些简单的int、float之类的变量:

         而标记耦合则是通过一些数据结构进行模块间的数据传递,例如结构体、链表等等:

         模块之间传递信息中包含用于控制模块内部的信息被称为控制耦合,例如模块A中的if语句需要模块B来决定究竟走哪边,有种生死大权仍由别人决定的感觉:

         外部耦合为多个模块共同访问相同的全局变量:

         公共耦合则是多个模块共同访问一些全局数据结构,类似结构体之类的:

        内容耦合属于你中有我,我中有你,模块A可以通过走后门将数据传递给模块B,不按正常步骤来,也可以是模块与模块之间有代码重叠等等:

 


http://www.ppmy.cn/news/404057.html

相关文章

今日头条后端面经总结(2018.12月)(转自牛客网)

面经(后端): 一 操作系统中的进程和线程还有虚拟存储。计算机网络TCP和UDP仔细看一下,也不要放过滑动窗口; 还有计算机网络体系结构各层都要熟悉。lambda表达式spring智力题,比如两炷香还有两瓶水的那种(不知道为什么…

面试大总结

WebProblem 一、网页布局 一、HTML面试题 DOCTYPE的作用是什么? 声明一般位于文档的第一行,它的作用主要是告诉浏览器以什么样的模式来解析文档。一般指定了之后会以标准模式来进行文档解析,否则就以兼容模式进行解析。在标准模式下&#x…

蚂蚁暂停上市分析

Jack Ma在上海金融峰会上的发言确实有点飘了,为了给蚂蚁上市造势而付出了代价。 想着前几天各大券商机构都在捧蚂蚁集团,把金融科技说得多牛,结果ZF监管出来以后又开始嫌弃蚂蚁集团了。这过山车做得一会儿天上,一会儿地下&#xf…

这家160年历史“玻璃厂”,居然帮助乔布斯和爱迪生登上神坛?丨科技拾遗

热点追踪 / 深度探讨 / 实地探访 / 商务合作 说起康宁,相信大家会第一时间想到我们所熟知的手机玻璃外屏—— 康宁大猩猩玻璃。2007年,乔布斯为了给即将发布的iPhone寻找一块新的外屏玻璃,一通电话就打到了康宁公司CEO维克斯(Wend…

算法学习笔记:简单数据结构及排序算法

原学习视频跳转地址:https://www.bilibili.com/video/BV13g41157hK?p2 本文为自学视频整理的简单笔记 目录 排序冒泡排序选择排序插入排序归并排序(递归实现)快速排序堆结构堆排序计数排序桶排序基数排序(LSD)排序算…

分享一道与二进制相关的题目

在和谢然老师学习的过程中,遇到一个很有意思的题目。在这里分享一下。 金块题目:a为b工作7天,报酬是一个金块。a要求每天都能拿到自己的报酬。那么b如何用最少的切割成本,实现a的要求? 大家可以先独立考虑一会&#…

暴跌不期而至

‍‍ 原标题:当你还在用ChatGPT瞎聊时,有人早已用AIGC赚到了数百万美元 * * * 隔夜比特币表现平稳,仍在23k上方震荡。就在发文的一刹那,暴跌不期而至。比特币极速下挫至22k。 * * * AIGC 是 AI Generated Content(AI&a…

android自定义轮播,Android实现自定义轮播图片控件示例

要完成一个轮播图片,首先想到的应该是使用ViewPager来实现。ViewPager已经有了滑动的功能,我们只要让它自己滚动。再加上下方的小圆点就行了。所以我们本次的自定义控件就是由ViewPager和LinearLayout叠加起来组成的。 直接先上效果图: 创建一…