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