模块独立
模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量模块独立程度的标准有两个:耦合性和内聚性。
-
耦合
耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合去取决于各个模块之间接口的复杂程度、调用模块的方式以及通过通过接口的信息类型等。一般模块之间可能的耦合方式有7中类型。
- 无直接耦合。指两个模块之间没有直接的关系,它们分别从属于不同模块的控制和调用,他们之间不传递任何信息。因此, 模块之间耦合性最弱,模块独立性最高。
- 数据耦合。指两个模块之间有直接调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
- 如:简单数据变量,不是控制参数、公共数据结构或外部变量
- 标记耦合。指两个模块之间传递的是数据结构。
- 如:通过含有表字段的结构体,传递表记录信息。
- 控制耦合。指一个模块调用另一个模块时,传递的是控制变量。被调用模块通过该控制变量的值有选择的执行模块内的某一功能。因此,被调用模块应具有多个功能,哪个功能起作用受调用模块控制。
- 如:开关、标志、名字等控制信息
- 外部耦合。模块之间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。
- 如:访问同一全局简单变量、而不是统一全局数据结构
- 公共耦合。指通过一个公共数据相互作用的那些模块间的耦合。
- 如:访问同一个公共数据环境,可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
- 内容耦合。如发生以下情形,两个模块之间就发生了内容耦合:
- 当一个模块直接调用另一个模块的的内部数据;
- 通过非正常入口转入另一个模块内部时;
- 两个模块有一部分程序代码重合(只可能出现在汇编语言中);
- 一个模块有多个入口。
-
内聚
内聚是对一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事。一般模块的内聚性分为7种类型。
-
偶然内聚(巧合内聚)。只一个模块内的各处理元素之间没有任何联系。
-
逻辑内聚。指模块内执行若干个逻辑上相似的功能,通过参数确定模块完成哪一个功能。
- 缺点:增强了耦合程度(控制耦合),不宜修改、效率低。
-
时间内据。把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。
- 通常要求所有功能必须在同一时间段内执行,如初始化模块和终止模块。
-
过程内聚。指一个模块完成多个任务。这些任务必须按指定的过程执行。
-
通信内聚。指模块内的所有处理元素都在一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
- 通常,通信内聚模块是通过数据流图来定义的。
-
顺序内聚。只一个模块内的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
-
功能内聚。这是最强的内聚,指模块内的所有元素共同作用完成一个功能,缺一不可。
-
耦合性和内聚性是模块独立性的两个定性标准,在将软件系统划分模块时,应尽量做到高内聚、低耦合,提高模块的独立性。
标签:功能,调用,之间,独立,模块,内聚,耦合 From: https://www.cnblogs.com/fanzehao/p/16885489.html