简单的说一下 软件的 内聚性 和 耦合性
内聚性,又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。
耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现什么功能的时候只需要加其他的类引入接口,就像电脑上的usb接口。
内聚
内聚有如下种类,他们之间的内聚性由弱到强排列为偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
偶然内聚;逻辑内聚;时间内聚;通信内聚;顺序内聚;
功能内聚(低——高)1偶然内聚指一个模块内的各处理元素之间没有任何联系。 2逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。3时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。4通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。5顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。6功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。与其他模块的耦合是最弱的。耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础
耦合
耦合可以分为下列几种,他们之间的耦合度由高到低排列为内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。
无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;
内容耦合(低——高); 1无直接耦合;2数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;3标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址; 4控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。; 5公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。6内容耦合:这是最高程度的耦合,也是最差的耦合。
简单的说一下 软件的 内聚性 和 耦合性相关推荐
- 软件的内聚性和耦合性
来源:http://hi.baidu.com/rooot/blog/item/30db2308b5380ed763d98617.html 模块的独立程度是评价设计好坏的重要度量标准.衡量软件的模块独立 ...
- “内聚性”和“耦合性”
内聚性 又称块内联系 指***模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.*** 特性 内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标. 模块中组成元素结 ...
- 内聚性和耦合性的类型
内聚性 功能内聚.主要通过操作来体现.一个模块只完成一组特定操作并返回结果. 分层内聚.由包.构件.类来体现.高层能够访问低层的服务,但低层不能访问高层的服务. 通信内聚.访问相同数据的所有操作被定义 ...
- 软件设计之耦合性与内聚性的区别
耦合性 耦合性也叫块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量. 模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的 ...
- 软件设计:内聚性 耦合性 的总结
内聚性 内聚性,又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标.模块中组成元素结合的越紧 ...
- 程序的耦合性和内聚性
耦合性(Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度. 内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反 ...
- 【架构】软件代码的耦合性和内聚性,以几个简单小例子说明
1. 起因 这篇文章应该算作前两篇文章的后续思考. 在前两篇文章中,考虑到了分层的方法,参考了别人的代码架构. [架构]工程代码结构(附带NXP.ST官方demo) [架构]嵌入式软件架构设计 模块化 ...
- 中小企业用户如何选择简单进销存软件?
2019独角兽企业重金招聘Python工程师标准>>> 中小企业用户如何选择简单进销存软件? 中小企业应该怎样评估选择进销存软件的性价比,下面将简单的谈一谈自己的看法: 第一, 价格 ...
- Qt实现一个简单的编译器(软件生成器)
Qt实现一个简单的编译器(软件生成器) 本文章只记录如何用Qt实现一个简单编译器,即点击本软件中的按钮便可在另一目录中生成一个新的软件(与本软件不冲突). 文章目录 Qt实现一个简单的编译器(软件生成 ...
最新文章
- Delphi中使用IXMLHTTPRequest如何用POST方式提交带参
- 30+的程序猿,路在何方?
- LeetCode 51. N-Queens--回溯法 pyhon,java,c++解法
- 使用HTML5的classList属性操作CSS类
- RMAN backup validate database on databases in noarchivelog mode
- ORACLE创建用户,建表空间,授予权限
- HDU2015校赛 The Country List
- SAP Marketing Cloud里获取Contact Interaction的postman请求
- vsftpd 的配置项目
- python交并补_python两个列表求交、并、差
- JS获取元素的第一个子节点
- 通过代码自定义cell
- Java题库(为了这辈子能吃上俩个菜好好学Java)
- matlab绘制直方图并且在每个直方图上添加对应的数据
- 【技法操作】UI界面设计,用PS绘制定位app页面设计教程
- 公众号网课搜题系统-掘光者题库
- sonysrshg2 Android,Hear不go的索尼情怀——索尼蓝牙音箱SRS-HG2轻听
- 局域网中的IP是怎么确定和分配下来的
- VB连接Sql Server,Oracle,SyBase,Access数据库操作实例
- 上月最新面过美团大众点评拿到offer的最新面经来了(技术三面+HR)
热门文章
- mysql主从复制过滤_mysql主从配置及复制过滤
- 启动docker容器
- Linux C调用Python 函数
- 2022年博客新星排行榜 日榜 2023-01-01 博客新星榜
- 核查医药代表备案信息是否正确
- C++类与对象_简单练习题
- SAP POPI 报错ERROR: HTTP status code 200 ATTRIBUTE_WRONG_VALUE
- Focus事情,引起我的解题思路(Focus事件不起作用,与click,mousedown的事情)
- 联合阿里p8测试开发耗时一个月整理的全套从0开始到功能测试再到自动化测试再进阶测试开发学习路线图
- 计算机操作系统进程同步实验报告,操作系统进程同步和互斥的实验报告