启发式规则 - wolai 笔记

1.改进软件结构提高模块独立性

初步结构分解或合并,降低耦合提高内聚。

2.模块规模应该适中

  • 过大分解不充分,但进一步分解不应降低模块独立性。
  • 过小开销大于有效操作,模块数目过多系统接口复杂。
  • 通常语句行数在50~100(一页纸),最多不超过500行。

3.深度、宽度、扇出和扇入应适当

3.1深度

软件结构控制层数,标志一系统大小和复杂程度

3.2宽度

软件结构同一层模块数最大值,越大系统越复杂

3.3扇出

一模块直接控制(调用)模块数,过大,模块复杂,过小(如1)不好。3-9。

3.4扇入

有多少上级模块直接调用它,越大共享该模块上级模块越多。

3.5扇出扇入不合适改善

加入中间层
示例:

4.模块作用域应在控制域内

作用域:受该模块内判定影响的所有模块集合。
控制域:模块本身及所有直接或间接从属它的模块集合。
若模块作用域不在控制域内,会增大模块间控制耦合。
示例:D模块的判定条件谓语E模块内,作用域不在控制域之内
改善一:控制域扩大,判定条件上移
改善二:将作用域不在控制域内的模块下移

5.降低模块接口复杂程度

模块接口复杂是软件发生错误一主要原因。应使信息传递简单且和模块功能一致。

6.设计单入口、单出口模块

避免内容耦合。

7.模块功能可预测

输入数据相同,产生同样输出。模块功能防止过分受限。
不可预测模块:以前的标记不可知
过份受限模块


Comment