2012年(5)
分类: C/C++
2012-05-28 14:33:57
内聚:是指在一个子程序中,各种操作联系的程度。
1.可取的内聚性:
1)功能内聚性。最好的内聚性,程序仅执行一种功能。
2)顺序内聚性。子程序内包含按特定顺序执行、逐步分享数据而行成一个完整功能的操作。如文件的几种操作。
3)通讯内聚性。两个操作含有相同数据但又相互不存在联系。
4)临时内聚性。由于同时执行原因而放到一个子程序。
2.不可取的内聚性:
1)过程内聚性。子程序的操作按一特定顺序执行,而相互之间不共享数据。
2)逻辑内聚性。子程序含有几个操作,而个操作通过控制标志进行选择。
3)偶然内聚性。子程序操作间无任何联系。
耦合:所谓耦合性指的是两个子程序之间联系的紧密程度。耦合性与内聚性是不同的。内聚性是指一个子程序的内部各部分之间的联系程度,而耦合指的是子程序之间的联系程度。
耦合标准:
1)耦合规模。所谓耦合规模是指两个子程序之间联系的数量多少。
2)密切性。密切性指的是两个子程序之间联系的直接程度。
3)可见性。可见性是指两个子程序之间联系的显著程度。
4)灵活性。灵活性是指改变两个子程序之间联系的容易程度。
耦合层次:
1)简单数据耦合。如果两个子程序之间传递的数据是非结构化的,并且全部都是通过参数表进行的,这通常称“正常耦合”。
2) 数据结构耦合。如果在两个程序之间传递的数据是结构化的,并且是通过参数表实现传递的,它们之间就是数据结构耦合的。
3)控制耦合。如果一个子程序通过传入另一个子程序的数据通知它该作什么,那么这两个子
程序就是控制耦合的。它往往与逻辑内聚性联在一起。
4)全局数据耦合。如果两个子程序使用同一个全局数据,那它就是全局数据耦合的。可接受的。
5)不合理耦合(pathological)。如果一个子程序使用了另外一个子程序中代码,或者它改变了
其中的局部变量,那么它们就是不合理耦合的。这种耦合也称之为“内容耦合”。