深度、宽度、扇出和扇入要适当如果深度过大则说明有的控制模块可能简单了。
如果宽度过大则说明系统的控制过于集中。
而扇出过大则意味着功能模块过于复杂,需要控制和协调过多的下级模块,这时应适当地增加中间层次,扇出太小则可以把下级模块进一步分解成若干个子功能模块,或者合并到上级功能模块中去。
一个功能模块的扇入是表明有多少个上级功能模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。
4.要使模块的作用范围保持在该模块的控制范围内功能模块的作用范围是指受该功能模块内一个判定影响的所有功能模块的集合。
功能模块的控制范围是指这个功能模块本身以及所有直接或间接从属于它的功能模块的集合。
在一个设计得很好的系统中,所有受判定影响的功能模块应该都从属于作出判定的那个功能模块,局限于做出判定的那个功能模块本身及它的直接下级模块。
对于那些不满足这一条件的软件结构修改的办法是:将判定点上移或者将那些在作用范围内但是不在控制范围内的功能模块移植到控制范围内。
5.应减少功能模块的接口的复杂性和冗余度,并改善一致性A61L-A61L-A61L-功能模块接口复杂是软件发生错误的一个主要原因。
应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。
6.设计成单入口、单出口的功能模块,避免病态连接要防止内容耦合性,如果功能模块都是从顶部入口、从底部出口的话,这样的软件也更易于理解和易于维护。
病态连接关系是指从中部进入或访问一个模块。
7.模块的功能可预测如果一个功能模块可以当做一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。
而那些具有内部记忆的功能模块则可能是不可预知的,因为它可能记了某个内部标志并且利用这个标志去选择处理方案。
由于这个标志对上级功能模块来说是看不见的,因而可能引起混乱。
A61L-0001-0086