2、 模块的内聚
模块的内聚反映模块内部联系的紧密程度。高内聚性的好处是 可以提高程序的可靠性。
有一个调查表明,50%的强内聚性子程序是没有错误的,而只 有 18%的弱内聚性子程序才是无错的,弱内聚性子程序的出错机 会要比强内聚性出错机会高 6 倍,而修正成本则要高 19 倍。 •模块的组合形式
功能\顺序\通信\过程\暂时\逻辑\偶然组合 •模块组合形式的判断 •模块组合形式的比较
else printf(“no!”); } main() { int flag;
output(flag); }
公共耦合
如果两个或多个模块都和同一个公用数据域有关 1)系统可理解性降低(模块间存在错综复杂的连系) (2)系统可维护性差(修改变量名或属性困难) (3)系统可靠性差(公共数据区及全程变量无保护措施)
–反之,低内聚一般会带来紧耦合 松耦合
作为软件设计的军规之一。各部分的关联越少意味着你在测 试,集成,维护的时候可以轻松不止一点点。 高内聚
也就是说一个类特别是一个方法应该专注于一件事。
作用范围与控制范围
• 一个判断的作用范围是所有这样的模块的集 合,这些模块内含有依赖于这个判断结果的 处理。或称影响范围。
数据耦合
sum(int a,int b) {int c; c=a+b; return(c); } main() { int x,y; printf(“x+y=%d”,sum(x,y))}
控制耦合
模块之间交换信息中包含有控制信息(有时控制信息以数 据的形式出现)
void output(flag) {if (flag) printf(“ok!”);
(2) 强调采用模块化的设计方法,并有一组基本设计策略 (3) 采用结构图作为模块设计的工具。