耦合与内聚

2010-04-19  张东升 

         耦合性是程序结构中各个模块间相互关系的度量,它取决于模块间接口的复杂程度、调用模块的方式。模块间可能的链接方式有七种,按耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
         耦合的强度依赖于下面的四个标准:
        ( 1)一个模块对另一个模块的调用;
  (2)一个模块向另一个模块传递的数据量;
  (3)一个模块施加到另一个模块的控制的多少;
  (4)模块之间接口的复杂程度。
         模块间的耦合越高,维护起来就越困难,好的模块划分应该做到高内聚低耦合。
         与耦合不同,内聚是从功能角度来度量模块间的联系,一个好的内聚模块应当只做一件事情。
         内聚同样分为七类,由弱到强:
        (1) 偶然内聚:模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同
  的功能,这种模块称为巧合强度模块。
         (2)逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模
  块参数来确定该模块应完成哪一种功能
        (3)时间内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
  (4)过程内聚。如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。
  (5)通信内聚。如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
  (6)顺序内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
  (7)功能内聚。模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。

552°/5488 人阅读/4 条评论 发表评论

李敏  2010-04-19

都快忘了,这还是大学时学的软件工程知识吧


焦爱玲  2010-04-19

学习了...


夏庆京  2010-04-19

如何量化两个模块的耦合程度?有什么工具优化么?


张东升  2010-04-20

夏庆京: 如何量化两个模块的耦合程度?有什么工具优化么?
这个就不清楚了,工具怕是没有吧,应该依据耦合强度所依赖的四个标准进行分析


登录 后发表评论