搬砖方法论:内聚、耦合强度排序表

内聚强度

内聚类型(由高到低) 描述
功能内聚(Functional cohesion,最高) 完成一个单一功能,各个部分协同工作,缺一不可
依序内聚性/顺序内聚(Sequential cohesion) 处理元素相关,而且必须顺序执行。一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入
通信内聚/信息内聚(Communicational cohesion) 如果一个模块的所有成分都操作同一数据集或生成同一数据集。模块完成多个功能,各个功能都在同一数据结构上操作,这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个通讯内聚的模块
过程内聚Procedural cohesion 构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
瞬时内聚/时间内聚Temporal cohesion 如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
逻辑内聚Logical cohesion 几个逻辑上相关的功能被放在同一模块中。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
偶然内聚(巧合内聚)Coincidental cohesion 如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。

耦合强度

耦合类型(由低到高) 描述
非直接耦合/讯息耦合(message coupling,是无耦合之外,耦合度最低的耦合) 可以借由以下二个方式达成:状态的去中心化(例如在对象中),组件间利用传入值或消息传递 (计算器科学)来通信。
资料耦合/数据耦合(data coupling) 是指模块借由传入值共享数据,每一个数据都是最基本的数据,而且只分享这些数据(例如传递一个整数给计算平方根的函数))。
特征耦合/标记耦合(stamp coupling) 也称为数据结构耦合,是指几个模块共享一个复杂的数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址
控制耦合(control coupling) 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能
外部耦合(external coupling) 发生在二个模组共用一个外加的资料格式、通讯协定或是设备界面,基本上和模组和外部工具及设备的沟通有关。
共用耦合/公共耦合(common coupling) 也称为全局耦合(global coupling.)指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程度随耦合模块的个数增加而增加。
内容耦合(content coupling,耦合度最高) 也称为病态耦合(pathological coupling)当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。

更多文章详见:www.aihailan.com/blog

发表评论