模块化
什么叫做模块化?
把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化
模块耦合
耦合(coupling)是对两个模块之间相互依赖程度的一种度量。模块间的依赖程度越大,则其耦合程度也就越大;反之,模块间的依赖程度越小,则其耦合程度也就越小。
模块间耦合类型
(1)内容耦合:一个模块直接修改或操作另一模块数据
(2)公共耦合:两个模块共同引用一个全局数据项
(3)控制耦合:一个模块向另一模块传递控制信号
(4)标记耦合:一个模块向两个模块传递一个公共参数
(5)数据耦合:模块之间通过参数来传递数据
模块内聚
内聚是指一个模块内部各成分之间相互关联程度的度量。也就是说,内聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。
内聚的类型
(1)偶然内聚:模块的各成分没有任何关系
(2)逻辑内聚:逻辑上相关的处理放在一起
(3)时间内聚:模块内的功能在同一时间完成
(4)过程内聚:模块内的处理以特定的次序执行
(5)通信内聚:操作同一数据集
(6)顺序内聚:一个成分的输出作为另一成分的输入
(7)功能内聚:模块的所有成分完成单一的功能
启发式规则
- 高内聚,低耦合
- 改进软件结构,提高软件独立性。模块分解
- 模块规模适中
- 力求深度、宽度、扇出、扇入适中
①深度:表示其控制的层数。
②宽度:同一层次上模块总数的最大值。
③扇出:一个模块直接控制的下级模块的数目。
④扇入:有多少个上级模块直接调用它。 - 尽量使模块的作用域在其控制域内
①模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合
②模块的作用域:受该模块内一个判断所影响的所有模块的集合 - 尽力降低模块接口的复杂度
- 力求模块功能可以预测