分别描述的是模块内部特征,和模块外部引用关系。

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。

内聚是就其中任何一个模块的内部特征而言的。

耦合是就多个模块组成的系统中各个模块的关联关系而言的。

高内聚是说模块内部要高度聚合,低耦合是说模块与模块之间的藕合度要尽量低。前者是说模块内部的关系,后者是说模块与模块间的关系。

起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。
     耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
 

耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
 
    有个例子很容易明白:一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。
一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。

最新文章

  1. 以最简单方式学习Linux
  2. CSS水平垂直居中的方法
  3. 关于lazyload插件的一些笔记
  4. 演示Android百度地图操作功能
  5. codeforces 500A. New Year Transportation
  6. mongoose学习笔记1--基础知识1
  7. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera
  8. word转pdf字体格式变乱的问题
  9. 使用gson解析,生成Json
  10. 【WP之一】]独立存储
  11. 在ASP.NET MVC中验证checkbox 必须选中 (Validation of required checkbox in Asp.Net MVC)
  12. HW5.31
  13. 在树莓派上部署asp.net
  14. Web开发安全小贴士
  15. Spring 学习笔记(七)—— 切入点表达式
  16. win 10 dpi:150% 与 win 7 dpi:150% 的不同之处
  17. Algorithm 学习环境准备
  18. archlinux 下使用 aria2+uget 作为下载工具
  19. 单片机小白应该如何学习stm32的一些实践心得!
  20. Practical Node.js (2018版) 第9章: 使用WebSocket建立实时程序,原生的WebSocket使用介绍,Socket.IO的基本使用介绍。

热门文章

  1. 蓝桥杯 算法训练 ALGO-156 表达式计算
  2. 机器学习:集成学习(OOB 和 关于 Bagging 的更多讨论)
  3. MongoTemplate聚合操作
  4. 创建github怎样管理
  5. windows下python访问ipv6报错
  6. [Chapter 3 Process]Practice 3.2 Including the initial parent process, how many processes are created by the program shown in Figure?
  7. QT5提示can not find -lGL的解决方法
  8. eclipse安卓模拟器Failed to install on device 'emulator-5554': timeout处理方案
  9. jumpserver跳板机的搭建
  10. spring读取classpath目录下的配置文件通过表达式去注入属性值.txt