模块设计
- 保持规模的大小适中
- 尽可能减少调用的深度
- 扇入和扇出数量要适中
- 单入口,单出口
- 模块的作用域应该在模块内,作用域小于控制域
- 功能应该是可预测的
高内聚低耦合
聚合类型
- 功能内聚 完成单一功能,各个部分协同工作,缺一不可
- 顺序内聚 处理元素相关,而且必须顺序执行
- 通信内聚 一个模块的所有成分都操作同一数据集或生成同一数据集
- 过程内聚 处理元素相关,而且必须按特定的次序执行
- 顺时内聚(时间内聚) 所包含的任务必须在同一时间间隔内执行
- 逻辑内聚 完成逻辑上相关的一组任务
- 偶然内聚 完成一组没有关系或松散关系的任务
耦合类型
- 非直接耦合 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
- 数据耦合 一组模块借助参数表传递简单数据
- 标记耦合 一组模块通过参数表传递记录信息(数据结构)
- 控制耦合 模块之间传递的信息包括用于控制模块内部逻辑的信息
- 外部耦合 一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息
- 公共耦合 多个模块都访问同一个公共数据环境
- 内容耦合 一个模块直接访问另一个模块的内部数据